06. Agent 与工具调用
1. Agent 是什么
Agent 是一个由模型驱动、能读取状态并调用工具的循环:观察 → 判断 → 调用 → 获取结果 → 继续或结束。它不是“更聪明的聊天框”,而是一种带权限和失败路径的工作流。
2. 工具契约
每个工具都应声明名称、参数 schema、权限、超时、幂等性、错误格式和审计字段。服务端重新校验参数,不信任模型生成的 JSON。读工具与写工具分离,高风险写操作需要人工确认。
3. 确定性优先
固定步骤、有限分支的任务用普通工作流;只有需要动态选择工具、澄清或多步检索时才引入 Agent。设置最大步数、总耗时、token 预算和循环检测。工具失败要让模型知道失败原因,不能伪造成功结果。
4. 记忆与上下文
短期记忆保存当前任务;长期记忆必须有来源、权限、更新时间和删除策略。把所有历史对话塞入 prompt 会增加成本和隐私风险,应该摘要、检索和分层保存。
5. 安全
提示注入可能来自用户,也可能来自网页、PDF 和工具结果。外部内容只能作为数据,不能升级为系统指令。工具 URL、文件路径、SQL、命令和权限都要白名单和服务端校验。
学习任务
- 写一个只读天气或知识库 Agent,最大步数设为 3。
- 给写入工具加入人工确认和幂等 key。
- 构造一条来自检索文档的提示注入,验证系统指令不被覆盖。
评论
正在加载评论…