Agent
Agent
一句话定义:Agent 是能够围绕目标自主规划、调用工具、观察结果并持续推进任务的 AI 系统。
核心理解:
- 普通大模型更像“问答器”,主要根据输入生成一次回答。
- Agent 更像“执行者”,它会把目标拆成多个步骤,并在执行过程中根据反馈调整下一步。
- Agent 通常具备记忆、规划、工具调用、环境观察和多轮决策能力。
典型流程:
- 用户给出目标,例如“帮我分析这个项目的登录流程”。
- Agent 理解目标并制定初步计划。
- Agent 调用工具读取代码、搜索文件、运行命令或访问外部服务。
- Agent 根据工具返回结果继续推理。
- Agent 输出结论,必要时还会修改代码、验证结果或生成报告。
常见对比:
- LLM:负责理解、推理和生成内容。
- Agent:在 LLM 之上增加目标、工具、记忆和执行流程。
- Workflow:流程通常是预先固定的。
- Agent:流程可以根据中间结果动态变化。
Function tool
一句话定义:Function tool 是提供给模型调用的外部函数,用来扩展模型和真实世界交互的能力。
核心理解:
- 模型本身不能直接查数据库、读文件、发请求或执行命令。
- Function tool 把这些能力包装成结构化函数,模型只需要决定“什么时候调用”和“传什么参数”。
- 工具返回结果后,模型再基于结果继续推理或回答。
典型例子:
getWeather({ city: '上海' })
searchDocs({ keyword: 'RAG' })
runCommand({ command: 'pnpm test' })
ts典型流程:
- 用户提出问题。
- 模型判断仅靠已有上下文无法完成。
- 模型选择合适的 function tool。
- 模型生成结构化参数并调用工具。
- 工具返回结果。
- 模型结合结果生成最终回答。
容易混淆的点:
- Function tool 是单个工具能力。
- Agent 是使用这些工具完成目标的整体系统。
- MCP 可以作为工具接入的协议标准,但 Function tool 更偏向具体可调用的函数形式。
Re-Act
一句话定义:Re-Act 是一种让模型在“推理”和“行动”之间循环的 Agent 执行模式。
核心理解:
- Re-Act = Reasoning + Acting。
- Reasoning 表示模型先思考当前状态和下一步。
- Acting 表示模型调用工具或执行动作。
- Observation 表示模型观察工具返回结果,再决定后续步骤。
典型循环:
Thought:我需要先了解项目结构。
Action:调用文件搜索工具。
Observation:发现登录逻辑在 src/auth 目录。
Thought:下一步需要阅读登录入口文件。
Action:读取 src/auth/login.ts。
Observation:发现 token 写入 cookie。
text核心价值:
- 让模型不再一次性给出答案,而是边执行边修正。
- 适合搜索、调试、代码分析、资料检索等多步骤任务。
- 中间过程更可观察,也更容易定位模型在哪一步出错。
容易混淆的点:
- Chain of Thought 更强调内部推理过程。
- Re-Act 不只推理,还会把推理结果转化成工具调用。
- Re-Act 是 Agent 的一种实现模式,不等同于 Agent 本身。
MCP
一句话定义:MCP 是 Model Context Protocol,用来标准化模型和外部工具、数据源之间的连接方式。
核心理解:
- MCP 可以理解为 AI 应用的“工具接入协议”。
- 它让模型应用用统一方式连接文件系统、数据库、GitHub、浏览器、内部系统等外部能力。
- 没有 MCP 时,不同工具往往需要各自写一套接入逻辑。
- 有了 MCP 后,工具服务可以按统一协议暴露能力,客户端也可以按统一方式调用。
它解决的问题:
- 工具接入方式不统一。
- 上下文来源分散。
- 不同 AI 应用之间难以复用同一套工具。
- 外部系统能力很难以标准方式暴露给模型。
典型组成:
- MCP Client:模型应用侧,用来连接 MCP 服务。
- MCP Server:工具或数据源侧,负责暴露能力。
- Tools:可被模型调用的动作,例如搜索文件、查 issue、读数据库。
- Resources:可被模型读取的上下文资源,例如文档、文件、数据表。
容易混淆的点:
- MCP 是协议,不是某一个具体工具。
- Function tool 是模型可调用的函数形式。
- MCP 可以用来提供 Function tool,但 MCP 本身还可以暴露资源和其他上下文能力。
RAG
一句话定义:RAG 是检索增强生成,让模型先查资料,再基于资料回答问题。
核心理解:
- RAG = Retrieval-Augmented Generation。
- Retrieval 表示从知识库、文档、数据库或向量库中检索相关内容。
- Generation 表示模型基于检索到的内容生成回答。
- 它解决的是模型知识过期、缺少私有知识、容易幻觉的问题。
典型流程:
- 用户提出问题。
- 系统把问题转成检索查询,必要时生成 embedding。
- 从文档库或向量数据库中检索相关片段。
- 把检索结果和用户问题一起放进 prompt。
- 模型基于检索内容生成答案。
适用场景:
- 企业内部知识库问答。
- 项目文档问答。
- 代码库理解。
- 客服知识库。
- 法规、合同、论文等资料型问答。
和微调的区别:
- RAG 适合补充事实性知识,知识更新成本低,只需要更新知识库。
- 微调更适合改变模型风格、格式偏好或特定任务能力。
- RAG 不会改变模型参数。
- 微调会改变模型参数。
常见问题:
- 检索不到相关内容,回答质量会下降。
- 检索片段太长或太杂,会干扰模型。
- 文档切分、embedding 模型、召回策略和重排序都会影响效果。
SKILL
一句话定义:Skill 是给 Agent 使用的专项能力包,通常包含任务说明、操作流程、工具脚本和验证标准。
核心理解:
- Skill 不是单个函数,而是一套面向特定任务的工作方法。
- 它告诉 Agent 在某类任务中应该怎么做、用什么工具、遵守什么约束。
- Skill 可以让 Agent 在处理专业任务时更稳定,也更符合业务或工程规范。
典型例子:
- 写 PowerPoint 的 Skill。
- 处理 Excel 的 Skill。
- 做 GitHub PR review 的 Skill。
- 使用某个 SDK 开发功能的 Skill。
- 编辑 Word 文档的 Skill。
Skill 中可能包含:
- 什么时候应该使用这个 Skill。
- 推荐的执行流程。
- 可复用脚本。
- 模板文件或示例资源。
- 验证方式。
- 注意事项和边界条件。
容易混淆的点:
- Tool 更偏向一个可调用动作。
- Skill 更偏向一套任务流程和经验。
- Agent 可以根据任务选择合适的 Skill,再在 Skill 指导下调用工具。
Harness Engineering
一句话定义:Harness Engineering 是为 Agent 搭建运行框架、工具环境、权限边界和反馈机制的工程实践。
核心理解:
- Harness 可以理解为承载 Agent 运行的“外壳”或“执行环境”。
- 它负责把模型、工具、上下文、权限、日志、用户交互和验证流程组织起来。
- 好的 Harness 能让 Agent 更稳定、安全、可控地完成真实任务。
它通常关注:
- 模型如何接收上下文。
- 工具如何注册和调用。
- 工具结果如何返回给模型。
- 文件、网络、命令等权限如何控制。
- 任务状态如何保存。
- 错误如何恢复。
- 用户确认如何插入执行流程。
- 日志和执行轨迹如何记录。
和 Prompt Engineering 的区别:
- Prompt Engineering 更关注如何写好输入,让模型给出更好的输出。
- Harness Engineering 更关注模型运行时的系统环境和执行闭环。
- Prompt 影响模型怎么想。
- Harness 影响模型怎么做、能做什么、做错了如何恢复。
可以这样类比:
- LLM 是大脑。
- Tool 是手。
- Memory 是笔记本。
- Skill 是专项操作手册。
- Harness 是让这些部分协同工作的身体、工作台和安全边界。