Appearance
何时使用 Agent
一句话原则:Agent 是为了解决"连开发者都不知道最优路径是什么"的问题。如果开发者能提前写出确定的步骤,就不需要 Agent。
决策流程
text
┌─────────────────────┐
│ 收到任务 │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ 能否画出完整流程图? │
└──────────┬──────────┘
│
┌────────────────┼────────────────┐
│ │ │
能 不能 │
│ │ │
▼ ▼ │
┌──────────────┐ ┌──────────────────┐ │
│ 使用 Workflow │ │需要动态推理或 │ │
│ │ │工具组合? │ │
└──────────────┘ └────────┬─────────┘ │
│ │
┌────────────┼─────────────┐ │
│ │ │ │
不需要 需要 │ │
│ │ │ │
▼ ▼ │ │
┌──────────────┐ ┌──────────────────┐│
│ 使用 Workflow │ │ 对延迟/成本 ││
│ │ │ 容忍度如何? ││
└──────────────┘ └────────┬─────────┘│
│ │
┌────────────┼────────┐ │
│ │ │ │
低容忍 可接受 │ │
│ │ │ │
▼ ▼ │ │
┌──────────────┐ ┌──────────┐ │ │
│混合架构 │ │使用 Agent│ │ │
│Workflow+Agent│ └──────────┘ │ │
└──────────────┘ │ │
│ │
▼ ▼
(路径收敛)典型场景判断
适合 Workflow 的场景
- 任务可预测 —— 能提前写出完整的步骤序列
- 确定性要求高 —— 需要每次执行结果完全一致(审计、合规)
- 延迟敏感 —— 用户期望在几百毫秒内得到响应
- 高频调用 —— 按 Token 收费会产生巨额费用
- 安全边界严格 —— 不能有任何"自由发挥"的空间
适合 Agent 的场景
- 步骤无法预设 —— 连开发者都不知道最优路径
- 需要动态推理 —— 涉及细微判断、异常处理、上下文敏感决策
- 多工具组合 —— 需要跨领域调用多种工具协作
- 意图模糊 —— 用户问题涉及多个不相关的子任务
案例分析
客服场景
| 情况 | 方案 | 原因 |
|---|---|---|
| "订单 12345 什么时候发货?" | Workflow | 固定步骤:识别订单号 → 查数据库 → 返回状态 |
| "帮我改地址,再推荐那边的天气和餐厅" | Agent | 多步骤、跨领域(订单 + 天气 + 餐饮)、意图模糊 |
编程场景
| 情况 | 方案 | 原因 |
|---|---|---|
| 代码补全、语法检查 | Workflow | 确定性输入输出 |
| 根据 PR 描述解决 GitHub Issue | Agent | 需理解代码库、自主规划修改方案、多文件编辑 |
混合架构
实践中,混合架构往往是最佳选择:用 Workflow 处理 90% 的固定流程,只在关键决策点调用 Agent。
text
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ 用户请求 │ → │ Workflow 处理 │ → │ Agent 决策点 │ → ...
│ │ │ (确定性路径) │ │ (歧义消解) │
└──────────────┘ └──────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Workflow 完成 │
│ (后续处理) │
└──────────────┘记忆口诀
- 如果你能画出一个完整的流程图,就不要用 Agent
- 不要因为"Agent 很酷"就用 Agent。先问自己:"这个问题能用 3 行 if-else 解决吗?"
- Agent 是最后的选择,而不是默认选项
