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. 自检

  1. 四要素分别是什么?
  2. Agent 与多轮对话的界线?
  3. 为什么"成本不确定"是核心风险?
  4. 最小结构里四个关键位置?
  5. 什么时候不该用 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/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。