845 字
约 2 分钟
7
S20-J03 · Agent:Function Calling 与工作流

适用读者:想从"单次问答"走到"能自己动手"的人。
前置:S20-B01、S19-B02。
覆盖旧文:2309(565) 2176(233) 2114(183) = 981 点。
覆盖扩展:E-S20-008(Agent 循环与终止条件)。
上一篇:S20-J02 · 上下文与记忆:token 预算与管理
下一篇:S20-J04 · 微调与意图识别。


1. 一句话结论

Agent = 模型 + 工具 + 循环。它和"写长提示词"的差别就在那个循环:模型看完工具结果,再决定下一步。

用户请求 → 模型决定调用哪个工具 → 执行 → 结果回填 → 模型再判断 → … → 终止

2. 循环的五个要素(E-S20-008)

要素 作用 缺了会怎样
工具定义(schema) 告诉模型能调什么 模型乱编参数
终止条件 何时停 无限循环/烧钱
最大步数 硬上限 同上
状态(记忆) 多步上下文 每步都重来
错误回传 工具失败也要告诉模型 模型重复失败

"为什么必须有最大步数":模型可能陷入"调用—失败—再调用"的循环——这是真实存在的失控模式。


3. Function Calling 的本质

事实 说明
模型不执行工具 只输出"要调用什么 + 参数"
执行在你的代码里 你做校验、鉴权、限流
结果是文本 回填后模型继续推理

安全边界:工具参数必须校验——模型可能生成越权参数(如 userId 被别人猜中)。这与 S17-B04 的"鉴权放网关还是服务"是同一类判断。


4. Agent vs 工作流

形态 谁决定流程 适合
工作流(固定编排) 你 步骤稳定、要求可控
Agent(模型自主) 模型 步骤不确定、探索型
混合 你定主干、模型填细节 多数生产系统

判据:"这条流程的步骤每次都一样吗?" 一样 → 工作流(更可控、更便宜);不一样 → Agent。

"为什么不都用 Agent":不可预测 + 成本高 + 难测试——生产上多数是"工作流为主、Agent 兜底"。


5. 五个误区

误区 真相
"Agent 能自己完成一切" 需要工具与终止约束
"模型会替我执行工具" 只输出调用意图
"工具参数不用校验" 会越权/注入
"步数不设上限也行" 会失控
"Agent 一定比工作流好" 可控性差

6. 自检

  1. Agent 与"长提示词"的核心差别?
  2. 循环五要素?
  3. Function Calling 到底谁执行?
  4. 工具参数为什么必须校验?
  5. 什么时候该用工作流而不是 Agent?

7. 下一篇

S20-J04 · 微调与意图识别:BERT/LoRA/双模型路由

Agent 讲完,下一篇讲"什么时候该训模型而不是写提示"。


本篇属于系列《S20 · AI 应用与工程》。旧文来源:A-2309/2176/2114;扩展点 E-S20-008。

S20-J03 · Agent:Function Calling 与工作流
https://www.clxhxhhr.top/posts/5470/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。