AI Agents 聚焦于构建 AI 智能体:工具使用、链式调用、记忆,以及基于大语言模型的自主工作流。当用户提到“AI agent”“agent development”“tool use”等关键词时,可参考本技能内容。
一、什么是 AI 智能体 AI 智能体是连接了工具并在循环中运行的 LLM。由 LLM 决定做什么、调用工具、观察结果,然后重复,直到任务完成。没有循环和工具,它只是聊天机器人。
二、核心智能体循环 每个智能体遵循以下模式:
- OBSERVE(观察)——接收输入(用户消息或工具结果)
- THINK(思考)——LLM 推理下一步做什么
- ACT(行动)——调用工具或返回最终答案
- OBSERVE(观察)——获取工具结果,回到第 2 步 当 LLM 决定不再需要工具调用并返回最终响应时,循环终止。最大迭代次数限制可防止循环失控。
三、工具/函数调用 资料给出 OpenAI 与 Anthropic 两种格式。OpenAI 使用 tools 数组,每项含 type: "function" 与 function(name、description、parameters)。Anthropic 格式中工具含 name、description、input_schema。模型返回 tool_use 块(Anthropic)或 tool_calls 数组(OpenAI),由你的代码执行工具并把结果作为下一条消息回传。
四、ReAct 模式(推理 + 行动) ReAct 将推理痕迹与行动交错。LLM 在每次工具调用前显式写出其思考,使决策过程可被检视,例如:Thought → Action → Observation → Thought → Answer。使用现代工具调用 API 时,ReAct 会自然发生——模型在文本输出中推理,并以结构化块发出工具调用,不再需要从原始文本中解析“Action:”字符串。
五、最小智能体实现 资料提供 Python 与 TypeScript 两个最小示例,均不使用框架,仅使用 API 调用和工具分发表。Python 示例使用 anthropic 客户端,定义 read_file、write_file 工具与 dispatch 字典,通过 max_iterations=10 循环调用 messages.create,收集 tool_use 块、执行工具、回传 tool_results,出错时返回 is_error: True。TypeScript 示例使用 @anthropic-ai/sdk,定义 search_web 工具与 executeTool 函数,同样以循环执行工具并回传结果。
六、记忆模式
- 对话历史(短期):每次 API 调用传入完整消息数组,最简单,但长对话会触及上下文窗口限制。
- 摘要(中期):对话过长时,保留系统提示与最近几轮交流,中间部分替换为另一次 LLM 调用生成的摘要。
- 向量存储检索(长期):将过往交互或文档存为嵌入,每次 LLM 调用前检索 top-k 相关片段注入提示,可用 Pinecone、ChromaDB、pgvector、Qdrant 等向量数据库。
七、多智能体模式
- 监督者:一个协调智能体把子任务委派给专家智能体并综合其输出。
- 辩论/批评:两个智能体互审。A 起草,B 批评,A 修改;以更多 API 调用换来更高质量。
- 流水线:智能体顺序串联,1 研究、2 写作、3 审阅,每个只看上一阶段输出。
- 并行扇出:路由器把独立子任务同时发给多个智能体,再合并结果。
八、常用工具 资料列出常见工具及用途:网络搜索(获取当前信息)、代码执行沙箱(运行 Python/JS 验证答案)、文件读写(持久化工作产物)、Shell 命令(系统操作、git、构建)、API 调用 HTTP(与外部服务交互)、数据库查询(读写结构化数据)、浏览器自动化(抓取、填表)。工具描述应简洁具体,含糊描述会导致模型误用工具。
九、错误处理与重试 捕获工具错误并作为错误消息返回给 LLM(is_error: true),模型常能自我纠正;对瞬态失败(限流、网络错误)用指数退避重试;设置最大迭代限制(通常 10–20)防止死循环;执行前校验工具输入;对单个工具调用设置超时,避免挂起请求拖住整个智能体。
十、Token 管理 从 API 响应元数据(usage.input_tokens、usage.output_tokens)跟踪 Token 用量;接近上下文窗口限制时裁剪历史,保留系统提示、最近消息与旧消息摘要;对重复前缀使用提示缓存(Anthropic)或缓存补全(OpenAI)以降低长对话成本;限制工具输出大小,回传前截断大文件或 API 响应;按任务选择模型,简单工具分派用小而便宜的模型,复杂推理步骤用更大模型。
十一、防护栏
- 输入校验:在用户输入到达智能体前校验,检查提示注入、超长输入与不允许内容。
- 输出过滤:在返回用户或执行危险操作前检查智能体输出,示例给出 BLOCKED_COMMANDS 与 validate_tool_call 用于拦截 run_shell 中的危险命令。
- 人在回路:对高风险操作(发邮件、付款、修改生产数据)暂停并请求人工批准;若用户拒绝,向 LLM 返回拒绝消息。
十二、框架概览 资料列出:LangChain(Python/JS,生态大、集成多)、LangGraph(Python/JS,有状态、基于图的智能体工作流)、CrewAI(Python,多智能体、基于角色协作)、AutoGen(Python,多智能体对话模式)、Claude Agent SDK(Python,轻量 Claude 智能体循环)、Vercel AI SDK(TypeScript,流式优先、React 集成)、Mastra(TypeScript,内置记忆/工具的智能体框架)。建议先不用框架,当需要自行重复实现的功能(状态持久化、复杂路由、内置工具库)时再引入;框架会带来抽象层,增加调试难度。
十三、评估 测试智能体比测试确定性代码更难。策略包括:对单个工具做单元测试;黄金路径测试,定义输入/预期输出对并检查最终答案正确(允许中间步骤差异);工具调用断言,验证调用了正确工具且顺序合理;对抗性输入,用混乱、模糊或对抗提示验证防护栏有效;成本跟踪,记录每个测试用例的 Token 用量,突然增长 10 倍可能意味着智能体效率回退;人工评估,对开放式任务由人工从正确性、有用性与安全性打分。资料给出 test_research_agent 示例,断言结果包含“13”或“14”。
十四、常见智能体模式
- 研究智能体:工具为网络搜索、URL 读取、笔记;搜索信息、读页面、抽事实、编报告,适用于市场调研、文献综述、竞品分析。
- 编码智能体:工具为文件读写、Shell 执行、网络搜索;读现有代码、规划改动、写代码、跑测试并迭代修复;关键设计是沙箱化执行环境。
- 数据分析智能体:工具为代码执行(Python + pandas/numpy)、文件读取、图表生成;加载数据、探索、统计分析与可视化;提供预装数据科学库的 Python 沙箱。
- 客户支持智能体:工具为知识库搜索、工单系统 API、升级;检索文档、回答问题,置信度低或需人工判断时升级。
- 工作流自动化智能体:工具为邮件、日历、项目管理 API;执行多步业务流程(安排会议、发跟进、更新任务);有外部副作用的操作始终使用人在回路。
安装方式与收费信息暂未提供。