EdgeOne Makers 从入门到精通
附录

§06 工具调用:把能力拆成工具

6月前我做摄影师智能体那阵,一开始把经验全塞进 Prompt。结果上下文爆了,模型还用错。我白忙活一阵。我后来才学会拆工具。

06.1 别把知识塞进 Prompt

摄影师智能体的作者讲得很对:摄影知识别写进系统提示。系统提示适合定义角色和规则,不适合承载大量经验资料。

塞多了,上下文越来越长,模型还不一定用对。

06.2 拆成三类工具

摄影师智能体拆了三类工具:

  • 摄影经验工具:返回构图、参数、后期建议。
  • 实时天气工具:查天气、云量、日出日落。
  • 说明书检索工具:从相机说明书找菜单路径和原文。

工具调用时,前端能用流式事件展示状态:"正在查实时天气"。用户等待时不空白。

06.3 一个隐蔽的好设计

Makers 模板有个约定:文件名带下划线的,不暴露为公开路由。

# _knowledge.py 是内部知识模块,用户访问不到
# 放核心经验、场景规则、参数建议
agents/_knowledge.py

这个设计很实用。你的核心经验放在 _knowledge.py,不会被用户直接访问,也不影响对外接口结构。

维度 写进 Prompt 拆成工具 + 文件 标叔的结论
上下文 越来越长 按需读取 工具胜
维护 改提示很乱 改一个文件 文件胜
安全 经验外泄风险 下划线隔离 文件胜
核心建议
经验先沉淀成文件,再让工具读。

MVP 阶段不用先搭向量库。加个 _knowledge.py 就够轻量。

06.4 回顾

工具是 Agent 的"手脚"。拆得好,Agent 才不空谈。下一章,讲怎么看清它到底干了什么。