先看全局:从简单到复杂
Agent 模式不是越复杂越高级。一个可靠的系统,通常从单次调用开始,逐步增加工具、流程、并行、评估和自主性。
这张图的读法很简单:越往右,系统越能处理开放问题,但也越需要成本控制、状态管理、日志、评估和安全护栏。新手做第一个项目时,通常停在“工具调用”或“提示链”就够了。
基础构件:增强型 LLM
任何 Agent 系统的基础,都是一个配备了额外能力的 LLM:
| 构件 | 作用 | 常见实现 |
|---|---|---|
| Retrieval | 找到外部知识和上下文 | Web search、RAG、数据库查询 |
| Tools | 对外部世界采取行动 | 函数调用、MCP Server、Shell、业务 API |
| Memory | 保留任务状态和偏好 | 会话状态、用户记忆、项目文档 |
| Checks | 判断是否继续或停下 | 测试、规则、人工确认、guardrail |
如果只有模型,没有工具和反馈,通常只是“会聊天的应用”;有了工具、状态和检查点,才开始接近 Agentic System。
五个常见工作流模式
1. 提示链(Prompt Chaining)
把任务拆成固定步骤,前一步输出给下一步。
Input -> Draft -> Check -> Rewrite -> Final
适合:写作、翻译、报告生成、固定格式转换。
判断标准:如果你能提前写出 3-5 个稳定步骤,就先用提示链。
2. 路由(Routing)
先判断输入类型,再分发到不同流程。
Input -> Classifier -> Support / Refund / Technical / Sales
适合:客服、内容审核、不同模型分流。
判断标准:如果不同问题需要不同提示词、工具或权限,就需要路由。
3. 并行化(Parallelization)
同时运行多个子任务,再汇总结果。
Input -> Split -> Worker A + Worker B + Worker C -> Merge
适合:多角度审查、并行资料收集、多个维度评分。
判断标准:如果子任务互不依赖,或者你需要多路投票提高置信度,就可以并行。
4. 编排者-执行者(Orchestrator-Workers)
一个中心模型动态拆任务,再派给多个 worker。
Goal -> Orchestrator -> Worker tasks -> Synthesis -> Result
适合:代码修改、多源研究、复杂项目任务。
判断标准:如果你不知道要改几个文件、查几个来源、跑几轮测试,就让编排者动态拆分。
5. 评估者-优化者(Evaluator-Optimizer)
一个模型生成,另一个模型评估并给反馈,循环改进。
Generate -> Evaluate -> Improve -> Evaluate -> Final
适合:翻译、长文打磨、搜索报告、代码审查。
判断标准:如果“好坏标准”可以说清楚,而且多轮改进确实会变好,就值得用。
完全自主 Agent 什么时候出现
当任务路径无法预先确定时,才需要更自主的 Agent:
User goal -> Agent loop -> Tool result -> Agent decision -> ... -> Done
典型场景包括:
- 代码 Agent 处理一个真实 issue:读文件、改代码、跑测试、修失败。
- 研究 Agent 围绕一个问题多轮搜索、筛选、交叉验证。
- 电脑使用 Agent 根据屏幕反馈完成一串操作。
注意:完全自主不等于完全放权。越自主,越需要停止条件、人工检查点、审计日志和沙箱环境。
新手选模式的决策表
| 你的任务 | 优先模式 | 不要急着用 |
|---|---|---|
| 一步能答完 | 单次 LLM 调用 | Agent 框架 |
| 固定步骤清楚 | 提示链 | 多 Agent 团队 |
| 输入类型差异大 | 路由 | 复杂状态机 |
| 需要多角度检查 | 并行化或评估者-优化者 | 全自动 Agent |
| 子任务数量无法预估 | 编排者-执行者 | 手写死流程 |
| 要在外部系统持续行动 | Agent 循环 + 权限护栏 | 无检查点放权 |
工具设计原则:ACI 比提示词还重要
ACI(Agent-Computer Interface)可以理解成“Agent 使用电脑和工具的界面”。工具定义得不好,模型再强也会犯错。
设计工具时优先做到:
- 描述清楚:工具做什么、不做什么、什么时候该用。
- 参数直白:字段名像给初级开发者看的文档。
- 边界明确:删除、发送、支付、写入生产数据必须有确认。
- 容易验证:工具返回结果要能被下一步判断,不要只返回“成功”。
- 真实测试:用典型任务观察 Agent 是否会误用工具。
框架和 API 怎么选
Anthropic 的建议仍然值得新手记住:先用最简单的方法,理解底层模式后再引入框架。
| 起点 | 适合你如果... |
|---|---|
| 直接调用 API | 任务简单、想理解底层循环、需要极少依赖 |
| OpenAI / Claude Agent SDK | 想快速获得工具调用、状态、handoff、权限等能力 |
| LangGraph | 需要可控的状态机、长流程、人机协作 |
| CrewAI / AG2 | 想表达多角色协作、对话式或团队式任务 |
| Google ADK | 要做生产级、多语言、多工具、可评估和可部署的 Agent |