2.4 工具系统设计哲学


2.4 工具系统设计哲学

本节摘要:Function Calling 和 ReAct 问的是「模型能不能调这个接口」;Parlant 问的是「当前指南允不允许调」。工具不是 API 清单,而是意图在现实世界的延伸:先授权,再校验契约,再融合上下文与合规过滤。对照三条路径,差别在控制权,不在能不能连 HTTP。

本节导读

阅读完本节,你应当能够:

  1. 用「规则先于调用」否定模型自由意志式的工具循环
  2. 列出工具契约里应有的输入、前置条件、副作用、合规标签
  3. 说明上下文如何改变当前可用工具集
  4. 权衡控制力与灵活性:无匹配时的回退为什么必须可审计

能调不等于该调

传统工具调用:感知-推理-调用。灵活,也容易滑出边界——未授权接口、错误参数、违反业务的操作序列。规则引擎能挡住,但「查一下我上个月账单」不一定能映射到「查询交易记录」工具。纯 prompt 更弱:模型在文本里「假装」调了工具。

Parlant 反转顺序:调用是规则引擎授权后的行为,不是模型自由意志。 可用性、条件、参数合法性、调用后如何处理,都由行为指南预先定义,编译成中间表示,形成许可图谱。上下文与指南匹配、前置条件满足,工具才激活。金融客服里模型「知道」怎么构造转账 JSON,无指南授权则系统层阻断。这是责任边界,不是能力阉割。

工具即契约,不是原始 API 暴露

语义契约层:输入输出结构、前置条件、副作用、合规标签。查询信用评分可以包含客户标识与令牌、角色必须是信贷岗且客户已同意、标签含相应监管类别、副作用写审计事件。模型只需理解「可发起查询信用评分」,不必关心底下是哪种远程调用。

三重好处:与实现解耦;同一语义动作可按上下文绑到不同渠道(通知可走短信或邮件);审计可按标签追踪敏感链。契约可嵌套组合:贷款申请拆成原子工具序列,上下文管理器维持状态。这和通用 Agent 「一个大工具包扔给模型」相反——候选集过大,越权概率上升。

上下文感知选择:角色、阶段、已获权限、先前结果,与指南条件一起求值,决定当前工具集。患者先问报告出了没,只激活查状态;再问是否说明某病,且报告类型已确认,才激活解读类工具。原文把激活写成条件求值:满足则为允许,否则为零。确定性避免提示轻微扰动导致工具漂移。

设计点 Parlant 通用 Agent 工具循环 传统规则引擎
谁决定调用 指南授权 模型规划 代码分支
工具可见性 当前上下文候选集 常常全量暴露 开发写死
参数安全 网关按契约校验 多靠模型填对 接口层校验
结果如何回用户 融合上下文并合规过滤 常原样让模型复述 固定模板
多模态 契约可描述异构工具 看框架是否支持 通常另接

⚠️ 常见坑:把生产写接口直接当工具,不声明副作用。只读查询和转账若在模型眼里只是两个函数名,规划循环分不清。
💡 关键直觉:建筑规范里,电工可以接线,但不能擅自改承重墙。工具网关就是施工许可,不是工具箱本身。

多模态、回退、以及规则爆炸

异构工具(图像质检、语音、知识图谱)只要能用契约描述,就可进网关:序列化、重试、限速、跨模态对齐。破损商品照片→质检特征→退换货策略。数值结果要映射成用户能懂的句子,保持感知一致。原文把这写成方向与能力,具体接入清单不编造。

张力在控制与灵活。规则密,安全;未知场景可能过死。原文用模糊匹配与默认回退:无精确指南时,可在沙箱试通用工具,但须人工审核或反馈闭环再提炼规则。另一挑战是指南数量膨胀。方向是从日志归纳候选指南、用形式化方法查互斥矛盾(同时允许又禁止同一操作)。

自注册、意图-工具联合优化、在线按满意度微调选择,被写成实验向。人类定义「什么是对的」,机器探索「怎样更好」——前提仍是安全边界。没有边界的自优化,就是通用 Agent 越权的慢动作版。

图 规则授权工具调用

图 规则授权工具调用

哲学收束:不把控制权全交概率模型,也不甘当僵化规则机器。人类意图当中心,结构化规则当护栏,动态上下文当导航。调用一次,兑现一次信任。

许可图谱的治理清单

工具哲学落到仓库里,要有一份许可清单:每个工具的副作用级别、所需角色、合规标签、对应指南。没有指南引用的工具,生产候选集默认关闭。开发可以在测试租户里打开。这比「先注册着以后再用」安全。暗门工具是通用 Agent 越权的内应。

契约评审问四问。入参是否可能含多余敏感字段。前置条件是否能用上下文求值,而不是靠模型保证。副作用是否写进审计事件。失败是否有确定的用户可见口径,而不是把异常信息直接生成。四问不过,不允许挂到生产网关。

候选集随上下文变化,要在调试面板可见。信贷岗与客服岗打开同一会话类型,可见工具应不同。若相同,属性访问控制没接上。测试用例应包含「低权限角色点名高权限工具」:系统应拒绝,且审计记下,而不是模型说「好的」然后失败。

无匹配时的沙箱回退,必须有配额和人审队列。否则回退会慢慢变成主路径,许可图谱名存实亡。规则爆炸时,先合并近义指南,再谈自动归纳。自动归纳没有人审,就是把错误 SOP 规模化。哲学可以谈人机共进,治理必须谈谁签字。

多模态工具同样走契约。图像质检返回的是特征,不是退货许可。许可仍在指南:何种损伤比例允许何种策略。把视觉模型的输出直接当决策,等于又把方向盘交给了另一个黑箱。工具是手臂,大脑仍是规则层。

许可图谱的红队

请一位不写代码的同事专门想「怎么让机器人办事越权」:直接说工具名、编造紧急、自称老板。红队用例进回归。红队成功一次,就补一条指南或收紧候选集,而不是加一句提示「请勿越权」。哲学上的规则先于调用,要被红队打过才算成立。未打过的许可图谱只是设计文档。设计文档挡不住真实用户,也挡不住真实员工的好奇心。

对照作业:许可图谱红队

围绕「许可图谱红队」,把四条路径再过一遍。表里每格都是可执行判断,不是形容词。读完请把你的项目钉进一格,不要钉在两格之间假装都占了。

检查项 纯 prompt 通用 Agent 规则引擎 Parlant
决策权放哪 模型在文本里假装调用 想调就调 代码决定调用 指南授权才调用
改口径谁动手 无契约 一句话描述当权限 接口鉴权 schema前置副作用标签
行动如何被拦 失败即编造 失败换另一个函数 抛错 失败变事实
出事如何复盘 无候选集 全量暴露 开发写死可见性 候选集随角色与阶段
口语进得来吗 回退无审计 沙箱即主路径 无灵活回退 回退有配额人审
上线第一周验什么 红队靠感觉 红队只攻提示 红队攻接口 红队攻点名工具与编造紧急

不写代码的同事专门想越权办法。成功一次就补指南或收候选集,不加「请勿越权」提示。未打过的图谱只是设计文档。

视觉模型输出是特征不是许可。许可仍在指南。把另一黑箱当大脑,方向盘又交出去了。

钉列纪律:工具许可图谱

在「工具许可图谱」上,纯 prompt 把判断写进一段话,改的人必须会改提示,复盘只能翻聊天,口语进得来但口径会漂。通用 Agent 把判断交给循环,灵活的代价是越权与路径不可复现。规则引擎把判断写进分支,确定的代价是口语进不来、改口径要排期。Parlant 把判断写成指南与契约:业务改口径,未授权则无行动,复盘指轨迹。把这四句贴到工位上,比再记一组术语有用。

针对工具许可图谱,本周只做一件可验收的事:找出一条真实对话或工单,标注它今天落在哪一列;若要迁到第四列,缺的是指南、工具还是关系边。缺指南就写草稿,缺工具就列契约,缺关系就补消歧或依赖。不要同时开十条战线。最常见的伪装是文件名叫指南、真源仍是提示词,或者架构图上有网关、运行时模型仍直接调函数。用「改文本能否改行为」和「低权限点名是否被拒」两张试纸识破。识破了再谈优化与案例。优化在伪装上加速,只会让错误承诺更多;案例在伪装上复制,只会把新闻变成事故。

工具许可图谱的纪律是先钉列,再谈快。钉列需要抽检,抽检需要轨迹,轨迹需要审计真的在记抑制原因,而不只记最终回复。若没有抑制原因,排错会以为没写规则,其实是优先级压了。看得见「为什么没走另一条路」,才叫对照,才叫可控。把这句话写进值班手册,工具许可图谱才从概念变成岗位。对照驱动不是文风,是岗位制:模型是引擎和笔杆子,方向盘在指南与工具契约上。谁把方向盘又塞回提示词,谁就在工具许可图谱上退回第一列。

要点速记

  • 规则先于调用:能构造请求不等于允许执行
  • 契约化:schema、前置、副作用、合规标签
  • 候选集随上下文变:不是全量工具扔给模型
  • 结果要过滤:尤其是病历、账务一类
  • 回退可审计:无指南时的探索不能变成隐式越权
  • 规则爆炸:用归纳与矛盾检测治理,而不是无限加条

下一章把这些哲学落到可定制能力:术语如何锚住领域,罐头回复如何钉住品牌声音,工具如何对外扩展。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U