如何在 PenguinHarness 中用好工具审批4 种审批模式保障 Agent 安全执行【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harnessPenguinHarness 是一个面向自改进 AgentRSI的统一开发平台它的工具审批机制让每一次 Agent 调用工具前都经过一道安全关卡。无论你在聊天界面、命令行还是嵌入自己的程序都可以用 4 种审批模式——全部放行、全部拒绝、放行只读、总是询问——精确控制 Agent 能做什么、何时需要你点头。本文面向新手带你快速掌握这套 Agent 安全执行保障机制。为什么 Agent 需要工具审批 Agent 的核心能力来自工具执行 shell 命令、读写文件、启动子 Agent……一旦放任不管一个判断失误的模型就可能改坏你的项目。PenguinHarness 的设计原则是每个完整的工具调用tool_call恰好触发一次审批决策。这个决策会被记录为一条approval_decision事件写入 Trace 审计日志——事后你可以完整回溯「谁批准了什么、谁拒绝了什么」。审批回调的接口定义在 ApproveFn服务器端的具体实现见 approvals.ts。对新手来说你只需要记住一句话模式决定「问不问你」你的决定决定「做不做」。4 种审批模式速览一张表看懂区别选择器名称模式值行为适合谁全部放行allow-all所有工具调用直接执行不询问熟悉 Agent 行为、追求效率的场景全部拒绝deny-all拒绝所有工具调用只想看模型「打算做什么」或紧急刹车放行只读read-only只读工具如读文件直接执行其余逐一询问日常最推荐看可以自动改必须过目总是询问always-ask每一次调用都等你审批高风险项目、初次使用 Agent 的新手几个关键细节每次决策都会重新读取当前模式所以 Session 进行中随时切换审批模式立即生效不用重开对话命令行里y或回车即批准n即拒绝子 Agent 会继承父会话的审批模式你只管一个开关全链路都受控。怎么选按场景匹配你的审批模式 首次使用、建立信任选always-ask总是询问。每一次rm、每一次写文件都由你亲自把关是学习 Agent 行为方式最快的途径。日常开发、追求省心选read-only放行只读。读代码、查日志自动通过只有真正会改动内容的操作执行命令、编辑文件、启动子 Agent才弹确认——效率与安全兼得。无人值守跑任务选allow-all全部放行。配合后台任务Agent 可以整夜无人值守地工作建议同时配置下文提到的命令策略作为兜底护栏。出事了先止血切到deny-all全部拒绝Agent 立即「只说不做」。在哪里设置审批模式Web App最常用新建对话时输入框上方就有审批模式选择器四种模式任选。工具调用需要审批时对话里会直接出现允许和拒绝按钮子 Agent 有等待审批的调用时对应行会亮起琥珀色圆点提醒。详见 Web App 对话文档。CLI用--approve mode指定例如--approve read-only不指定时默认为allow-all。在 Agent 内部创建的会话还会自动继承调用方会话的模式。详见 CLI 文档的审批模式一节。SDK 嵌入每次session.run时传入approve回调若不提供引擎默认拒绝一切调用——这是一个保守而安全的设计无人值守时不会有任何操作被误批准。被拒绝之后会发生什么被拒绝的调用不会让 Agent「卡死」它会收到一条合成的aborted输出并根据拒绝方不同看到不同文案从而知道该换条路还是就此打住拒绝方Agent 看到的输出你或审批模式拒绝Tool call denied by user.命令策略命中Tool call denied by policy.pre-tool-use 钩子拦截Tool call denied by the hook hook也就是说「策略禁止」和「人为取消」在 Agent 眼中是两回事它能据此做出正确反应而不是把你的策略否决误解成一次普通取消。审计留痕Trace 里能看到每一次审批 ✅每一次审批决策都会以approval_decision事件写入 Trace与工具调用一一对应策略否决会明确记为forbidden。这意味着 Trace 天然就是一份完整的安全审计记录——出了问题你可以逐条查看哪次调用被谁拒绝、为什么。审批相关的完整文档见 工具与审批。再加一道防线命令策略与 pre-tool-use 钩子审批模式之上PenguinHarness 还有两层更硬的护栏命令策略Project 级的一组正则拒绝规则如禁止rm -rf、禁止--force推送先于审批模式生效——即使是allow-all模式命中规则也会直接拒绝。它存放在 Project 配置中Agent 自己改不了。详见 配置参考。pre-tool-use 钩子在审批回调之前运行可以直接allow或deny某次调用但命令策略的否决优先级最高钩子放行也挡不住策略拦截。快速上手3 步开始使用工具审批获取项目并启动 PenguinHarness需要克隆仓库时使用git clone https://gitcode.com/gh_mirrors/pe/penguin-harness打开 Web App新建对话在输入框上方选择审批模式——新手推荐放行只读发送消息观察工具卡片上的允许/拒绝按钮任务跑偏时随时切换模式立刻生效。常见问题 FAQQ切换审批模式需要重开对话吗不需要。模式在每次决策时从数据库重读改动即刻生效。Q为什么我设了allow-all还有调用被拒绝多半是命中了 Project 的命令策略forbidden优先级最高或某个 pre-tool-use 钩子返回了deny。看 Trace 里的approval_decision事件即可确认是谁拒绝的。Q子 Agent 的审批怎么管子会话继承父会话的审批模式待审批请求会直接呈现给你父任务结束时也不会自动拒绝子 Agent 的待审批调用卡片会一直保留到你作出决定。总结PenguinHarness 的 4 种审批模式 命令策略 钩子 Trace 审计构成了一套层层递进的 Agent 安全执行体系。新手从「总是询问」起步熟悉后切到「放行只读」高风险场景再叠加命令策略——安全与效率你可以按自己的节奏来拿捏。【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考