自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 Agent 的上下文窗口不够用怎么办?上下文压缩与裁剪实践

Agent项目中的上下文问题并非仅靠增大模型窗口就能解决。上下文包含系统指令、工具定义、历史对话、RAG片段、工具结果等,累积后易导致性能下降、信息失真与成本增加。应通过上下文工程实现高效管理:合理分配Token预算,区分内容优先级(关键状态结构化保存、历史压缩摘要、外部资料按需检索),避免盲目删除或重复摘要。推荐策略包括滑动窗口、结构化状态替代聊天记录、RAG检索、工具结果投影、角色化上下文传递及阶段清理。压缩需校验关键事实与引用准确性,最终目标是在有限上下文中确保模型获取最相关、可信的信息。

2026-10-29 14:27:55 312

原创 Human-in-the-loop 到底怎么设计?Agent人工审批、暂停与恢复一篇讲清

Human-in-the-loop(HITL)并非简单添加“确认”按钮,而是关键决策点暂停执行,让授权人审批、修改或接管,并确保决定可落地。真正HITL需具备可中断、可决策、可恢复三要素:流程在高风险操作前暂停,人工可批准、编辑、拒绝或补充信息,系统持久化状态并幂等恢复。介入点应聚焦任务起点、高风险动作、信息缺失、结果冲突及交付前,避免过度审批导致疲劳。核心是状态管理、权限校验与明确的后续路线,而非仅依赖人工。

2026-10-24 10:21:11 163

原创 MCP 和 A2A 到底有什么区别?

MCP:Agent怎样使用外部能力A2A:Agent怎样与独立Agent协作但真正做架构设计时,还要再问一句:这里真的存在需要标准化的跨系统边界吗?如果只是同一个进程里的几个工作流节点,不需要为了概念完整而强行上 A2A;如果只是调用一个结构化 API,也不需要把它包装成 Agent。协议的价值不在于让架构图多两个缩写,而在于降低不同系统之间长期协作的成本。

2026-10-23 14:48:46 171

原创 Function Calling、Tool Calling 和 MCP 到底有什么区别?

FunctionCalling是模型以结构化方式请求调用函数的机制,由应用执行真实逻辑;ToolCalling是模型使用外部能力的统称,包含FunctionCalling等多种实现;MCP是连接AI客户端与外部工具、资源的开放协议,实现能力发现与复用。三者不在同一层级,不互斥:模型负责选择工具并生成参数,应用或MCPServer执行动作,权限与安全仍需独立控制。合理组合使用,才能构建可靠、可复用的Agent系统。

2026-10-22 19:36:08 116

原创 Agent 评测到底怎么做?别再只看最终答案

Agent项目评测不能仅靠“最终回答是否正确”,而需分层验证:任务结果是否真实达成(如数据库变更、测试通过)、关键决策是否合规(工具选择、参数准确)、内容质量是否达标(事实支持、表达清晰)、运行是否稳定可控(成功率、成本、人工介入率)。应构建包含任务、轨迹、结果与多类评分器的评测体系,避免单一准确率误导。真正可靠的Agent需能持续回答“哪里失败”“改进是否有效”“旧功能是否退步”三个核心问题。

2026-10-20 09:23:05 310

原创 Agent 评测到底怎么做?

Agent项目评测远超传统“准确率”范畴,需从四层展开:任务结果是否真实达成(外部环境验证)、关键决策是否合规、回答质量是否达标、运行成本与稳定性如何。应区分transcript与outcome,结合代码校验、模型评分与人工评审三类评分器,关注工具选择、参数正确、证据支持等细粒度指标,并通过多轮测试、回归评估与真实失败案例构建可复现的评测体系。真正可靠的Agent,不仅“说对”,更要“做对”。

2026-10-14 10:54:08 128

原创 什么是 Harness Engineering?为什么 Agent 时代不能只会写 Prompt

HarnessEngineering是大模型Agent开发中的关键工程实践,指设计、实现并优化Agent运行系统(如上下文管理、工具调用、状态持久化、权限控制、失败恢复与可观测性),确保Agent能长期稳定执行复杂任务。它超越了传统PromptEngineering,强调“模型之外”的系统能力——让Agent不仅会思考,更懂得如何可靠地工作。真正决定Agent成败的,是其运行环境与工程架构。

2026-10-13 09:18:58 368

原创 AI生成报告如何做到可追溯?

大模型报告常因文字流畅而掩盖事实漏洞。真正可靠的结论需依赖可追溯的证据链:每条事实必须附带来源页面、原文摘录、发布时间、主体与维度等结构化信息,并经读取、登记、审核全流程验证。仅靠链接或摘要不足以支撑可信结论,必须杜绝“搜索摘要即事实”“总结丢失来源”“写作临时补料”等陷阱。通过标准化Evidence记录、去重机制与分层报告(事实/分析/待核验),确保错误可发现、结论可复核、未知可承认。最终,专业报告的价值不在于表达流畅,而在于每一步都有据可查。

2026-10-12 09:11:33 316

原创 Agent、工作流和多智能体到底有什么区别?一篇讲清核心概念

本文厘清了Agent、工作流与多智能体的核心区别:大模型仅完成输入输出,而Agent具备“观察-判断-行动”循环,能自主决策;工作流是预设的执行路径,强调步骤与依赖;多智能体则通过分工协作提升复杂任务处理能力。三者并非对立,而是可组合使用——简单任务用单次调用,需动态决策时引入Agent,复杂流程用工作流控制,明确分工时才启用多智能体。关键在于根据任务复杂度选择合适架构,避免盲目堆砌概念。

2026-10-11 09:29:57 610

原创 多智能体工作流如何拆分?一次12个Agent节点的架构实践

本文分享了构建多智能体系统时从“单Agent全包”到“12节点工作流”的反思。核心观点:节点数量不重要,关键在于每个节点是否具备清晰职责、输入输出与验收标准。通过四阶段设计(规划、并行研究、分析与验证、报告生成),结合人类审核与状态分离(Message/State/Evidence),实现可追溯、可验证的可靠流程。强调“责任边界”而非简单拆分,避免无效成本。最终指出:多智能体的本质是系统化分工,而非角色堆叠。

2026-10-11 09:11:54 381

原创 2026年的AI Agent,正在从“会调用工具”走向“能长期工作”

2026年,大厂Agent更新聚焦长期稳定运行,从“模型调用工具”转向构建可恢复、可审计的运行时系统。OpenAI、Google、Anthropic等推动长会话管理、多Agent并行、MCP标准化连接与环境Hooks,强化状态持久化、权限控制、成本与审计机制。开发者需掌握任务编排、状态机设计、工具治理与Human-in-the-loop流程,工程能力成为落地关键。未来价值不在于炫技演示,而在于能否在真实业务中持续、可靠、安全地完成复杂任务。

2026-10-10 10:27:06 760

原创 Agent为什么会陷入循环?

本文分享了在开发多智能体竞品分析系统时,因Agent任务闭环缺失导致的“看似工作、实则未完成”问题。作者指出,仅提供工具不足以确保任务成功,关键在于明确工具调用顺序、错误分类、状态持久化与流程边界控制。通过将流程拆分为12个职责单一的节点,引入状态机管理、有界补查机制和人工审核节点,有效避免了工具循环与工作流死循环。强调:模型擅长理解与推理,但任务终点、重试策略、证据验证等应由规则与代码约束,而非依赖Prompt。最终,系统稳定性不靠模型能力,而取决于清晰的状态、边界与人工确认机制。

2026-10-10 10:18:08 401

原创 Agent为什么会选错工具?Function Calling与参数校验实践

本文系统分析了Agent在调用工具时失败的深层原因,指出问题根源不在于模型理解能力,而在于缺乏明确的执行边界。文章提出从工具命名、描述、参数校验、注册表管理到高风险操作人工确认等16个关键改进点,强调应构建“大模型理解意图 + 后端代码约束执行”的可靠架构,通过Schema、Pydantic校验、参数归一化与白名单机制,实现工具调用的准确性、安全性和可追溯性,最终提升Agent系统的稳定性与可信度。

2026-10-08 14:40:30 284

原创 向量检索结果不准确怎么办?从Embedding到RRF混合检索

本文剖析RAG系统中“向量检索返回Top-K却无法生成正确答案”的根源,指出向量检索擅长语义相似性,但难以捕捉精确实体、版本号与关系。提出混合检索方案:融合向量、关键词与图谱检索,通过RRF(倒数排名融合)统一排序,避免量纲冲突;结合去重与Rerank精排,提升证据召回与相关性。强调优化应从数据链路入手,而非仅调整Prompt。最终结论:RAG效果取决于正确证据是否被召回并进入上下文,而非单纯依赖向量数据库。

2026-10-08 14:37:18 475

原创 一个RAG系统是怎样运行的:从文档分块到大模型回答

本文基于MediGraph项目实践,系统阐述RAG系统从文档入库到可追溯回答的完整流程。针对大模型幻觉、知识滞后与来源不可靠问题,提出“检索增强生成”方案:通过文档解析、智能分块、向量化存储与精准检索,结合带来源约束的Prompt设计,确保答案可验证、可审计。强调知识库质量、分块策略与检索有效性是RAG成败关键,倡导以证据链为核心,避免盲目调优。

2026-10-06 20:09:54 347

原创 Java线程池:彻底搞懂核心参数、阻塞队列和拒绝策略的工作原理

线程池是一种复用线程的机制,类比银行窗口管理:固定窗口(核心线程)常开,临时窗口(最大线程)按需开启,等候区(阻塞队列)排队,满员时触发拒绝策略。核心参数包括线程数、队列类型和拒绝处理方式。队列分为固定型、弹性型、无队列和优先级型。拒绝策略有直接拒绝、调用者执行、静默丢弃和丢弃旧任务四种。合理配置线程池能高效处理任务,避免资源浪费,就像优化银行服务流程。

2026-01-26 15:08:12 926

原创 多线程编程

多线程编程就像团队协作:通过分工合作提高效率(如厨房多人同时备餐),但需要合理管理。线程是共享资源的"员工",进程是独立运行的"公司"。多线程能提升响应速度(如餐厅服务)和处理效率(如快递分拣),但线程数并非越多越好。常见问题包括数据竞争(需加锁)、死锁(按顺序获取资源)和通信问题(等待-通知机制)。最佳实践包括使用线程池、原子操作管理共享资源、明确分工等。关键要协调好线程间的协作与竞争关系,才能发挥多线程的最大效益。

2026-01-20 17:09:51 646

原创 Java线程池详解:核心参数与工作原理

在 Java 中最常用的是int corePoolSize, // 核心线程数int maximumPoolSize, // 最大线程数long keepAliveTime, // 非核心线程空闲存活时间TimeUnit unit, // 存活时间单位BlockingQueue<Runnable> workQueue, // 等待队列ThreadFactory threadFactory, // 线程工厂RejectedExecutionHandler handler // 拒绝策略。

2025-07-28 18:37:13 793

原创 LeetCode: 429 N叉树的层序遍历

在树结构的算法题中,“层序遍历”是一种非常基础且实用的遍历方式,尤其适合用于 BFS(广度优先搜索)相关的题目。本篇文章将详细讲解一道 LeetCode 上的典型问题 —— N 叉树的层序遍历,包括题意、思路、代码实现和优化建议。

2025-07-28 18:16:19 436

原创 LeetCode 148 排序链表解析:高效归并排序实现

该解法利用分治思想,通过递归将链表不断分割、排序再合并,高效实现了 O(n log n) 的排序。快慢指针找中点与哑节点简化合并操作是处理链表问题的经典技巧。归并排序因其稳定性和适配链表结构的特性,成为解决此类问题的首选方案。

2025-07-11 12:58:38 385

原创 LeetCode算法题:电话号码的字母组合

本题通过回溯算法(Backtracking)高效地生成所有可能的字母组合。回溯算法利用递归的思想,在逐步构建字母组合的过程中,保持对状态的控制,直到所有可能的组合都生成完毕。该算法的时间复杂度较高,但适用于这类需要生成所有组合或排列的问题。

2025-05-12 14:05:55 1199

原创 Java 中常见的数据结构及其常用 API

本文总结了 Java 中常见的数据结构及其常用 API,帮助开发者在写算法时能够快速选择合适的数据结构和操作。通过使用合适的 API,可以有效减少计算复杂度,并提高代码的执行效率。

2025-05-08 14:40:04 1476

原创 Redis 基本数据类型解析

Redis 提供了多种高效的数据类型,每种类型都适用于不同的应用场景。通过灵活运用这些数据类型,开发者能够在处理高并发、大规模数据时,充分发挥 Redis 的性能优势。无论是简单的缓存需求,还是复杂的排行榜、地理位置服务、实时统计等功能,Redis 都能为你提供极大的支持。

2025-05-08 09:35:43 1106

原创 Python 中的数据结构介绍

Python 提供了多种数据结构,每种数据结构在不同的场景下都有其独特的优势。掌握这些基础数据结构,有助于我们编写更加高效和易维护的代码。列表(List):有序、可变、允许重复元素,适合存储有序数据。元组(Tuple):有序、不可变、允许重复元素,适合存储不需要修改的数据。集合(Set):无序、唯一,适合去重和集合运算。字典(Dictionary):无序、键值对,适合存储需要快速查找的数据。队列(Queue)和栈(Stack):适用于需要按特定顺序处理数据的场景。

2025-05-06 17:15:23 809

原创 Leetcode算法题:字符串转换整数(atoi)

本题的关键是如何正确地处理前导空格、符号、数字部分的解析以及溢出检测。通过分步实现每个功能,我们确保了代码的清晰和准确性,同时也考虑了所有可能的边界情况,如溢出、无效字符等。

2025-04-28 09:58:53 764

原创 Java中Map集合的常用方法

Map是一个强大且灵活的数据结构,可以高效地处理键值对的数据。通过不同的实现类,我们可以根据需求选择最适合的Map类型。在实际开发中,理解和使用Map的各种方法能够帮助我们更加高效地管理和操作数据。

2025-04-24 09:41:11 748

原创 深入了解 MySQL 锁机制

MySQL作为一个常用的关系型数据库系统,其事务处理能力强大,并提供了丰富的锁机制以保障数据的一致性和并发操作的有效性。在多用户并发操作的环境中,锁是控制资源访问的重要工具。本文将详细介绍MySQL中锁的分类及其具体应用,包括乐观锁、悲观锁、全局锁、表锁、行锁等内容。

2025-03-31 10:34:56 1242

原创 深入理解Java IO流:概念、用途与高效使用

在计算机科学中,IO流(Input/Output Stream)是数据传输的基础机制之一。它用于实现程序与外部设备(如磁盘、网络、控制台等)之间的数据交换。IO流通过抽象的方式,让程序可以读写数据,而无需关心底层实现的具体细节。无论是从硬盘中读取文件,还是从网络上接收数据,IO流都发挥着至关重要的作用。输入流和输出流。输入流负责从外部设备读取数据,而输出流则负责将数据写入到外部设备中。IO流是Java中非常重要的一个概念,它让程序能够与外部设备进行数据交换。

2025-03-23 10:06:56 1217

原创 Elasticsearch 介绍:分布式搜索与分析引擎

是一个开源的、基于 Apache Lucene 构建的全文搜索引擎。它提供了高效的搜索功能,并且非常适合处理大量数据,尤其是在需要快速搜索和分析的场景下。它广泛应用于日志管理、实时数据分析、全文搜索等领域。作为一个分布式系统,Elasticsearch 能够处理大规模数据集,支持水平扩展,具有高可用性和容错能力。通过对数据进行分片和复制,Elasticsearch 可以确保高效的数据存储和快速的查询响应。Elasticsearch 是一个强大而灵活的搜索和分析引擎,适用于多种数据密集型应用场景。

2025-03-19 15:47:59 1517

原创 Java 多线程编程简介

线程是程序执行的最小单位,是操作系统进行调度和管理的基本单元。一个程序可以包含多个线程,多个线程可以共享同一个内存空间,协作完成任务。在 Java 中,线程通过Thread类或实现Runnable接口来创建。Java 的多线程编程为开发者提供了强大的并发处理能力。在多核处理器的时代,合理使用多线程可以显著提高程序的执行效率。在开发过程中,除了基本的线程创建和同步方法外,使用线程池和高阶并发工具类也能帮助开发者更高效地管理多线程任务。

2025-03-18 22:03:11 820

原创 Java Stream 流的介绍

在 Java 8 中,引入了 Stream API,它为处理集合(如ListSet等)提供了一种更简洁、声明式的方式。Stream 流的设计目标是支持对数据集合的高效操作,尤其是能够进行链式操作、并行处理等,极大地提升了代码的可读性和可维护性。本文将介绍 Java Stream 流的基础概念、常用操作以及如何利用 Stream 进行集合数据处理。Stream 是 Java 8 引入的一个新的类,它代表了一个可以支持聚合操作的数据源(如集合、数组等),通过它我们可以以声明式的方式进行数据处理。

2025-03-18 10:46:24 1452

原创 MyBatis 学习经验分享

MyBatis 是一个灵活且功能强大的框架,它让开发者可以自由地控制 SQL 语句,避免了全自动 ORM 的限制。在学习过程中,我建议先掌握基础的配置、SQL 映射,然后逐步深入到动态 SQL、事务管理和缓存等高级特性。通过实践中的不断摸索,逐步熟悉 MyBatis 的用法,可以提高开发效率并确保代码的高效和可维护性。

2025-03-16 10:46:39 2673

原创 OneHot编码与OrdinalEncoder编码的区别与应用解析

OneHot编码是一种将每个类别特征转换为二进制向量的方式。每个类别值被表示为一个长度为类别数的向量,其中只有对应类别的位置为1,其他位置为0。红色 -> [1, 0, 0]绿色 -> [0, 1, 0]蓝色 -> [0, 0, 1]OrdinalEncoder编码用于将具有顺序关系的类别变量转换为整数值。它通过将类别值映射到一个数字标识符上来表示类别之间的有序关系。通常,这些数字是从0开始的整数。低 -> 0中 -> 1高 -> 2。

2025-03-13 20:10:11 1014

原创 KNN算法简明解析与实战示例

KNN算法非常直观,通过计算距离并选择最邻近的K个数据点进行预测。对于分类问题,它使用投票机制来决定类别;对于回归问题,它通过计算邻居的平均值来进行预测。在实际应用中,K值的选择和距离度量的选择都会影响KNN的表现。

2025-03-12 16:29:45 1027

原创 深入了解Nginx:高性能Web服务器与反向代理的应用指南

Nginx的性能、灵活性和广泛的功能使它成为现代Web架构中的一个重要工具。无论是用作静态文件服务器、反向代理、负载均衡器还是进行HTTPS加密,Nginx都能提供出色的性能和可靠性。

2025-03-11 16:21:59 521

原创 全面解析Tomcat:简介、安装与配置指南

Tomcat 是一个开源的 Java Servlet 容器,由 Apache 软件基金会开发和维护。它实现了 Java EE(现 Jakarta EE)规范中的 Servlet 和 JSP(JavaServer Pages)技术,是 Web 应用程序中常用的服务器之一。Tomcat 通常用于开发和运行基于 Java 的 Web 应用,它以轻量级和高性能著称,适合中小型项目的部署,也可以与其他 Web 服务器(如 Apache HTTP Server)配合使用。

2025-03-10 15:57:32 2579

原创 深入了解 Docker:容器化技术的核心概念与实践应用

Docker 是基于容器技术的,它为开发者提供了一个轻量级的、便捷的方式来打包应用程序及其依赖,避免了传统虚拟化技术中的性能开销。Docker 容器在一个共享的操作系统内核上运行,比虚拟机更加高效。每个容器都相互独立,但可以通过网络、存储等进行互动。容器不仅仅是封装应用程序的运行环境,还可以实现持续集成、持续部署(CI/CD)以及大规模的分布式应用管理。由于其隔离性和可移植性,Docker 已成为现代软件开发中不可或缺的一部分。

2025-03-09 13:12:48 1400

原创 Nacos注册中心:微服务架构的核心组件

它集成了服务注册与发现、配置中心、动态DNS服务、健康检查等功能,支持多种主流的微服务框架(如Spring Cloud、Dubbo、Kubernetes等),已成为现代分布式系统的基础设施之一。:核心模块包括Nacos Core(服务治理)、Config Service(配置管理)、Naming Service(服务发现)等。:微服务启动时,将自己的元数据(如IP、端口、服务名、健康状态等)注册到Nacos服务器。:商品服务、订单服务、支付服务注册到Nacos,消费者通过服务名调用。

2025-03-08 10:47:18 1235

原创 Spring Cloud Gateway:微服务架构的智能路由与过滤网关

Spring Cloud Gateway 是一个 API 网关,提供了一种统一的方式来处理 HTTP 请求,并将其路由到相应的微服务。它不仅能够为微服务架构提供路由功能,还支持动态配置、断路器、限流等常见的网关功能。通过 Spring Cloud Gateway,可以轻松地将外部请求转发到不同的微服务,而无需暴露微服务的内部实现。基于反应式编程:Spring Cloud Gateway 使用 Project Reactor 和 WebFlux,具备高效的响应能力,支持非阻塞 I/O。灵活的路由功能。

2025-03-07 12:49:40 1148

原创 Redis使用介绍

Redis(Remote Dictionary Server)是一个开源的高性能键值对存储数据库,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。由于其高效的内存存储和丰富的数据结构,Redis广泛应用于缓存、会话管理、消息队列、排行榜等场景。作为一种内存数据库,Redis能够在内存中进行高速读写操作,因此比传统的基于磁盘存储的数据库(如MySQL、PostgreSQL)要快得多。此外,Redis还支持持久化,可以将数据保存到硬盘中,防止系统重启或崩溃时数据丢失。

2025-03-06 08:54:41 666

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除