OpenClaw 专题第五期 Prompt、Agent 与工具调用
-
Prompt
-
Tool Calling
-
角色定义
-
语气风格
-
安全规则
-
业务背景
-
输出格式
-
工具使用规范
-
各种注意事项
-
失败处理方式
-
一堆案例
-
长期有效的系统规则
-
当前任务的临时约束
-
某个 Agent 的特殊职责
-
某次调试时加的补丁说明
-
某个渠道的回复风格要求
-
不同层次的信息混在一起
-
很难维护
-
很难复用
-
很难灰度升级
-
很难知道哪句规则在起作用
-
当前任务状态
-
当前用户权限
-
工具定义
-
最近执行结果
-
当前业务实体 ID
-
你是一个执行型 Agent,不要编造执行结果
-
高风险动作不能擅自执行
-
输出应尽量清晰、可验证
-
不泄露内部敏感信息
-
工具调用失败时要如实说明
-
企业 IM 里回复简洁一点
-
邮件里可以更正式、更完整
-
群聊场景下避免暴露不该公开的信息
-
卡片回复时优先结构化输出
-
你是审批协同 Agent,只负责发起审批、跟进和同步结果
-
你不是最终审批决策者
-
你可以给建议,但不能替用户批准
-
你是周报审计 Agent,负责检查提交情况并输出结果
-
你不负责生成周报内容本身
-
当前目标是检查本周周报提交情况
-
本轮允许使用周报审计工具和通知工具
-
如果发现未提交人员,输出名单并提醒
-
可维护
-
可复用
-
可灰度
-
可审计
-
不同 Agent 可共享平台规则,但保留个性边界
-
角色职责
-
行为边界
-
风格要求
-
推理原则
-
工具使用原则
-
错误处理原则
-
输出格式要求
-
风险控制规则
-
倾向于策略性
-
偏自然语言约束
-
适合模型理解
-
不是高精度结构化事实
-
当前任务状态
-
当前用户权限
-
当前会话标识
-
工具参数 schema
-
当前审批单号
-
当前目录 ID
-
最近工具执行返回值
-
精确配置项
-
Prompt 负责“怎么做”
-
上下文状态负责“现在是什么”
-
它负责什么
-
它不负责什么
-
它能访问哪些上下文
-
它能调用哪些工具
-
它在什么场景下被触发
-
它和其他 Agent 如何协作
-
周报审计
-
简单问答助手
-
某个固定业务查询
-
某个单流程执行器
-
实现简单
-
上下文统一
-
调试方便
-
容易越长越胖
-
角色边界不清
-
功能越来越杂
-
主控 Agent
-
需求分析 Agent
-
审批协同 Agent
-
人才搜寻 Agent
-
简历评估 Agent
-
面试 Agent
-
决策辅助 Agent
-
每个 Agent 只关心自己的职责
-
Prompt 更清晰
-
工具权限更容易控制
-
行为更容易解释
-
协作复杂
-
状态流转复杂
-
容易重复劳动
-
需要更强的编排层
-
每个 Agent 是否职责单一
-
是否有清晰输入输出
-
是否有明确工具权限
-
是否有清晰交接条件
-
这是直接回答,还是需要工具
-
这是同步完成,还是异步任务
-
是否缺少必要信息,需要追问
-
该调用哪个工具
-
工具需要调几次
-
调完工具后是继续推理,还是直接输出
-
是否应该交给另一个 Agent
-
这不是纯知识问答
-
需要访问外部系统
-
需要用周报检查工具
-
检查结果出来后,可能还要调用通知工具
-
如果耗时较长,可能要先回复“处理中”
-
模型调的是不是正确工具
-
参数是否合法
-
当前用户有没有权限
-
这个工具风险高不高
-
超时怎么办
-
失败要不要重试
-
结果怎么结构化
-
调用过程怎么审计
-
`check_weekly_report_status`
-
`send_team_notification`
-
`create_approval_request`
-
这个工具能做什么
-
什么情况下该调用
-
不该拿它做什么
-
谁可以调用
-
哪类 Agent 可以调用
-
是否需要额外确认
-
查询型工具通常低风险
-
发通知是中风险
-
审批通过、删数据、转账这类是高风险
-
超时时间
-
是否允许重试
-
是否支持幂等
-
失败后如何处理
-
工具名
-
参数
-
调用意图
-
参数格式是否合法
-
必填字段是否齐全
-
类型是否正确
-
值域是否合理
-
当前用户是否有权限
-
当前 Agent 是否被允许调用这个工具
-
当前场景是否符合风险策略
-
是否需要人工确认
-
API
-
数据库
-
浏览器
-
文件系统
-
外部服务
-
标准化结果
-
提取关键字段
-
记录审计日志
-
更新状态
-
决定是否回给模型继续推理
-
重复发通知
-
错误发审批
-
越权读取数据
-
覆盖错误文档
-
误删内容
-
触发错误外部动作
-
低风险:查询、读取、检索
-
中风险:发消息、更新非关键状态
-
高风险:删除、审批、支付、发版、权限变更
-
是否允许自动执行
-
是否需要额外确认
-
是否需要更强审计
-
是否需要多重校验
-
工具本身设计得太粗
-
权限绑定不严
-
幂等性没做好
-
输出太混乱
-
失败处理不明确
-
打开页面
-
登录系统
-
找到目标对象
-
读取页面数据
-
点击或执行页面内动作
-
截图或采集状态
-
回传结果
-
很多企业系统没有完备 API
-
有些数据只能在页面上拿到
-
有些动作必须通过真实页面完成
-
登录态问题
-
页面结构变化
-
网络抖动
-
页面加载时序
-
DOM 选择器脆弱
-
不同站点差异
-
API 与页面逻辑混用
-
等待页面加载
-
等待特定条件
-
页面内执行脚本
-
统一截图
-
统一快照
-
统一异常处理
-
模型难消费
-
平台难审计
-
后续流程难串联
-
谁都能触发高风险动作
-
Agent 越权操作
-
租户隔离失效
-
任务卡死
-
外部系统抖动直接拖垮链路
-
用户等待时间不可控
-
重试一次,多发一次通知
-
重跑一次,多建一个任务
-
回调重放导致重复执行
-
一个工具包办太多动作,难以控制
-
模型要自己拼装复杂流程,容易出错
-
用户看到大量底层异常
-
内部实现细节泄露
-
体验很差
-
面向系统的错误
-
面向用户的错误表达
-
会话记忆、用户记忆、任务记忆、知识记忆有什么区别
-
为什么不能什么都记
-
记忆什么时候写入、什么时候检索
-
向量库在这里到底扮演什么角色
-
记忆污染、错误召回和过期信息怎么处理
夜雨聆风