819 字
约 2 分钟
11
S21-B01 · Agent 是什么:定义、能力全景与第一个 Agent
适用读者:想搞清"Agent 和多轮对话"差别的人。本系列第一篇。
前置:S20-J03(Agent 与工具调用)。
覆盖旧文:704(445) 705(287) 703(226) 706(441) 2136(229) 1987(353) = 1,981 点。
覆盖扩展:E-S21-001(Agent 四要素)、E-S21-002(与多轮对话的界线)。
下一篇:S21-B02 · ReAct 与规划。
1. 一句话结论
Agent = 目标 + 工具 + 循环 + 状态。少了"循环"就只是多轮对话;少了"状态"就只是单次函数调用。
| 形态 | 有循环? | 有工具? | 记住历史? |
|---|---|---|---|
| 单轮问答 | ❌ | ❌ | ❌ |
| 多轮对话 | ❌(每次独立) | 部分 | ✅(靠上下文) |
| Agent | ✅ | ✅ | ✅(显式状态) |
2. 四要素(E-S21-001)
| 要素 | 作用 | 缺了会怎样 |
|---|---|---|
| 目标 | 终止判据 | 不知道何时停 |
| 工具 | 与外部交互 | 只能空谈 |
| 循环 | 观察→决策→行动 | 一次失败就结束 |
| 状态 | 跨步记忆 | 每步重新推理(浪费) |
判据:"它需要"看到结果再决定下一步"吗?" 需要 → 是 Agent;不需要 → 工作流足够(S21-J03)。
3. 与多轮对话的界线(E-S21-002)
多轮对话:用户说一句,模型回一句,历史靠上下文拼接。
Agent:模型自己决定"下一步做什么",包括决定"调用哪个工具、是否继续"。
| 特征 | 多轮对话 | Agent |
|---|---|---|
| 谁决定下一步 | 用户 | 模型 |
| 失败处理 | 用户重问 | 模型重试/换策略 |
| 成本 | 每轮固定 | 不确定(可能循环) |
"成本不确定"是 Agent 的核心风险——所以必须有步数上限(B02、J01)。
4. 第一个 Agent 的最小结构
state = {"goal": goal, "history": []}
for step in range(MAX_STEPS): # ← 必须有上限
action = llm.decide(state) # 观察→决策
if action.type == "finish": # ← 终止判据
return action.answer
result = tools[action.name](**action.args) # 行动
state["history"].append((action, result)) # 状态更新
return escalate_to_human(state) # ← 兜底
四个 ← 就是四要素:上限(循环)、终止(目标)、工具表(工具)、history(状态)。
5. 五个误区
| 误区 | 真相 |
|---|---|
| "Agent 就是更长的提示词" | 差别在循环与状态 |
| "Agent 能自己学会新工具" | 工具是预先注册的 |
| "步数不设上限也行" | 会无限重试烧钱(B02 实测) |
| "Agent 一定比工作流强" | 可控性差、成本高 |
| "多轮对话就是 Agent" | 决策权在用户,不在模型 |
6. 自检
- 四要素分别是什么?
- Agent 与多轮对话的界线?
- 为什么"成本不确定"是核心风险?
- 最小结构里四个关键位置?
- 什么时候不该用 Agent?
7. 下一篇
S21-B02 · ReAct 与规划:从 CoT 到 Plan-and-Execute
定义讲完,下一篇讲"怎么让 Agent 思考"——以及"不设上限会烧掉多少钱"(实测)。
本篇属于系列《S21 · Agent 工程与 MCP》。旧文来源:A-704/705/703/706/2136/1987;扩展点 E-S21-001/002。
S21-B01 · Agent 是什么:定义、能力全景与第一个 Agent
https://www.clxhxhhr.top/posts/5479/ 评论
0 条
还没有评论,先写一条吧。