Skip to content

第六课:安全边界

目标

理解模型只能提出行动,真正的执行权必须由程序控制。

源码:

运行:

bash
npm run lesson:06

审批流程

正在绘制流程图…

敏感工具声明:

typescript
const sendEmailTool: Tool = {
  name: "send_email",
  requiresApproval: true,
  async execute(arguments_) {
    return "邮件已发送";
  },
};

运行时审批:

typescript
approve: async (call) => {
  console.log(call.arguments);
  return false;
}

默认拒绝

typescript
const approved =
  (await options.approve?.(decision.call)) ?? false;

没有明确的批准函数时,敏感工具默认不执行。

其他安全边界

  • 工具白名单:模型只能请求程序提供的工具。
  • 参数检查:批准时要查看收件人、金额等具体参数。
  • 错误处理:工具失败后把错误交还模型,而不是直接崩溃。
  • 最大轮数:超过执行限制后强制停止。
  • 权限隔离:不同 Agent 只能看到职责范围内的工具。

常见风险分级

工具通常策略
查询公开天气可直接执行
读取内部资料检查身份和权限
发送邮件、发布消息通常要求确认
修改或删除数据强制确认
支付和转账强制确认并再次校验
执行系统命令严格限制或隔离

本课结论

用户提出目标,模型提出行动,程序拥有最终执行权。

内容仅供学习参考 · 隐私说明与免责声明见“关于”页面