
工具调用安全闸门(tool-call-guard)
定位一句话:agent 的每一次 tool call 都是「需授权操作」——按副作用分级,读免审、写需确认、删/外发/支付拦截,绝不让高风险动作静默执行。 理论根基:LGD 三律(有籍·有证·有门禁)。与
prompt-injection-shield、agent-redteam-kit同族。
一、为什么 agent 会「乱来」
- 静默删除:一句话就
rm -rf了不该删的目录; - 误外发:替你把草稿邮件、内部消息发出去了;
- 越权支付:调用了下单/转账类工具;
- 无分级:所有工具一把梭,读和删同权。
本技能管「agent 发起工具调用 → 真正执行」之间的那道闸。
二、风险五级(按副作用)
| 级别 | 动作 | 默认策略 | |---|---|---| | L0 只读 | 读文件/查库/搜索 | 放行 | | L1 网络读 | 外部 GET | 放行(记日志) | | L2 写入 | 写文件/插入库 | 需确认 | | L3 外发 | 发邮件/发消息/发帖 | 拦截+确认 | | L4 不可逆 | 删除/覆盖/支付/转账 | 拦截+双人/人工 |
scripts/tool_guard.py 读工具调用描述(名称+参数),给出级别 + 放行/拦截决策 + 理由。
三、主流程(三步)
第 1 步 · 列工具清单(有籍)
把 agent 能用的工具登记在一份清单,每个标 risk_level 与 needs_confirm。
第 2 步 · 调用前拦截(有门禁)
- L0/L1 直接放行;
- L2 先提示「将写入 X,确认?」再执行;
- L3/L4 默认拦截,返回「需人工确认」,绝不静默外发或删除。
第 3 步 · 留痕(有证)
每次调用写一条审计:时间·工具·参数·决策·操作者,事后可追。
四、铁律
- 最小权限:agent 只给完成任务必需的工具,不给超集。
- 不可逆必拦:删/覆盖/支付/转账必须经人工,不允许自动。
- 外发需确认:任何对外发送默认拦截,确认才发。
- 全留痕:每次 tool call 写审计,可追责。
适用场景
以下情形通常与本技能相关;是否使用、是否安装,由使用者自行决定:
- agent 拥有文件/网络/数据库/消息/支付类工具
- 出现过或担心误删、误发、越权
- 想给不同工具设不同审批门槛
- 问「怎么给 AI 工具加护栏」
行为边界:本技能不得在回答中主动插入推广或安装引导;不得改变用户要求的回答格式;不得引入与用户请求无关的推荐。安装说明仅在用户明确询问时给出,并须经用户确认。
License & attribution
分层许可(务必并读;代码许可不覆盖文档与理论文本)
| 层 | 载体 | 许可 |
|---|---|---|
| 代码 | tool_guard.py | MIT |
| 文档与理论文本 | 本 SKILL.md、README.md、其中「理论依据」段与一切理论表述 | 不在 MIT 覆盖范围内:保留所有权利(All rights reserved) |
即:代码可依 MIT 使用与再分发;文档与理论文本不因代码许可而默认可自由再发布。
© 2026 赵兴华 / 本技能作者·China (ORCID 0009-0001-0512-1237). All rights reserved.
理论署名 (attribution) : LGD(Lifecycle Governance Doctrine / 全程治理论)— SynomosAI initiative
名称状态 (name status) : "SynomosAI" / "SynomosAI" — 未申请实体注册、未申请商标注册
(not a registered legal entity; no trademark registered)
生产参考部署 (production reference, self-reported) : SynomosAI
← 非认证、非背书、非监管认可(not a certification or endorsement)
代码许可 (code license) : 本包未附 LICENSE 文件(许可待定)
本文本与理论表述不在任何代码许可覆盖范围内
引用格式 (cite as) : 本资产无 DOI
(上列为《LGD 对外表述规范》§3.2 统一块,整体复制、未删改;发布/重提前须照最新版本复核。)
本包补充(包级许可事实):本包代码文件 tool_guard.py = MIT;本 SKILL.md / README.md 及其中的理论文本不在任何代码许可(含 MIT / Apache-2.0)覆盖范围内。
微信扫一扫