大可的 AI Builder 手记
跟随系统
颜色主题
长沙小桌实战
大可 Dako
大可 Dako大可 DakoAI Builder · Agent 实践者用 AI 做真正能用的产品。专注探索 Agent 工程化落地、Vibe Coding 实践与商业化交付。
内容平台即将上线,敬请期待
四大拦截节点构筑执行闭环的安全防线01Pre-Prompt敏感输入过滤与动态信息增强未校验输入直达模型02Post-Model格式合法性检查与恶意指令识别非法输出引发解析异常03Pre-Tool高危动作拦截与人工授权挂起高危副作用静默执行04Post-Tool数据脱敏裁剪与副作用收据归档未脱敏数据污染上下文✓ 用确定性代码守住不可逆操作的最终边界
在模型思考与行动的必经之路上,设置不可绕过的生命周期检查点。

Hooks 拦截器:生命周期各节点的确定性关卡

在模型推理与工具执行的四个关键生命周期插入确定性检查,让高危动作在发生前得到审计与拦截。

很多团队在最初为智能体接入外部系统时,习惯把安全防线的希望寄托在提示词里。比如在系统说明中写下一行「执行删除或资金操作前必须征得用户同意」,就认为系统具备了防御能力。

但是模型本质上是一个概率推断引擎,不仅会在长流程中淡忘先前的提示约定,甚至在遭遇对抗性提示词攻击时会直接无视既定指令。把不可逆的生产系统副作用交给模型的自我约束,等于让业务安全暴露在概率波动的风险之下 openai-guardrails。

真正的工程解法是在模型与外部环境之间建立一条不可逾越的管道,在执行循环的四个关键生命周期插入确定性检查程序。这也是主流编排框架提供回调与事件钩子的原因:把「在哪几个时刻必须做什么」变成框架能力,而不是每个项目各写一遍 langchain-callbacks。

四个拦截节点的职能边界

智能体从接收到用户指令,到最终完成环境变更,必然经过一条固定的调用链路。在这条链路上,有四个不可替代的检查位置:

拦截节点 触发时机 核心业务职责 失败应对动作
Pre-Prompt 用户输入装配完成、尚未送往模型之前 敏感信息过滤、租户权限校验、反注入规则检查 直接短路终止,向用户返回合规提醒
Post-Model 模型完成语义推断、输出意图之后 数据结构校验、非法参数纠正、伪造凭证检测 打回模型并附加错误诊断要求重新生成
Pre-Tool 确认调用具体工具、进入执行沙箱之前 高危动作分类、权限门禁核验、人工审批挂起 低危放行;高危挂起进程等待人工签名
Post-Tool 沙箱执行完毕、返回结果准备写入上下文时 大结果外置、敏感字段脱敏、不可篡改收据归档 裁剪超大结果,防止工作记忆迅速变脏
FLOW-02
确定性控制循环与分支流程图
直观呈现四大拦截节点、高危判定菱形、人在回路挂起(Interrupt)与沙箱闭环回流路径
用户任务输入 (Prompt) Thread 初始化 · 预算下发 Pre-Prompt Hook 拦截 注入防御 · 凭据脱敏 · 上下文装配 模型思考与推理 (LLM) 生成意图与结构化参数 需要调用 工具? NO: 终答 ✓ 输出验收与最终交付 终态断言 · 事实源存档 YES: 工具指令 高危动作? 动钱/写库/外网 YES: 风险触发 ⏸️ Interrupt 状态挂起 实例休眠 · 等待人类签名授权 审批通过恢复 NO: 自动放行 MicroVM 沙箱工具执行 只读文件系统 · 代理出站过滤 Post-Tool 状态捕获与落盘 退出码提取 · 生成副作用收据 ↺ 观察事实回写上下文,开启下一轮推理

这四个节点各自承担明确的分工,缺少任何一个,系统就会在特定环节露出破绽。

输入前检查:Pre-Prompt Hook

这个节点解决的是「垃圾输入不要污染模型」的问题。

当用户输入进入系统时,Pre-Prompt 拦截器首先进行敏感词与合规模式匹配。如果检测到明显的提示词越狱指令(例如要求模型忽略此前所有安全设定),拦截器可以直接切断调用,根本不需要发起昂贵的大模型推理,从而节省计算开销并阻断攻击。

同时,这个节点还负责上下文的安全组装。例如根据当前用户的组织架构身份,动态注入其有权访问的数据范围,并且剔除任何未授权的敏感字段。

输出后校验:Post-Model Hook

模型返回的文字或工具参数往往存在不确定性,Post-Model 节点就是模型输出后的第一道质量检验员。

如果模型生成的工具调用缺少关键参数,或者参数类型与接口契约不符,拦截器不会直接把这个半成品抛给执行引擎导致程序崩溃。相反,它会捕获解析错误,将具体的契约要求组织成一段结构化反馈,要求模型就地纠正。

此外,这个节点还负责验证输出内容的真实性。如果模型试图自由生成一段看似已经成功执行的虚假汇报,拦截器会核对真实的执行记录,及时识破模型的幻觉并予以修正。

工具执行前拦截:Pre-Tool 安全闸门

在整个拦截体系中,Pre-Tool 是最为核心的定海神针。

任何工具在进入真实沙箱或生产接口之前,必须经过危险等级判定。系统通常将工具划分为三类:

  1. 安全只读操作(例如查询系统状态、搜索本地知识文档):自动放行,记录调用日志后直接执行;
  2. 常规可逆操作(例如创建临时工作草稿、运行测试用例):校验租户资源配额后自动放行;
  3. 高危不可逆操作(例如写入生产数据库、删除存储桶、发起对外资金划转、访问外部公网):绝对禁止自动执行。

一旦识别为高危操作,Pre-Tool 拦截器会立即触发安全中断(Interrupt)。此时系统不会在后台持续等待,而是将当前执行进度保存为安全快照,进程进入休眠挂起状态 anthropic-effective-agents。同时,系统向具备权限的管理人员推送审批消息卡片。

只有当管理员通过身份校验并签署确认之后,系统才从快照中唤醒进程,将动作下发给执行沙箱 temporal-signals。如果管理员驳回,或者超过限定时间未获批,系统则优雅取消并告知用户拒绝原因。

工具执行后治理:Post-Tool Hook

工具在沙箱中执行完毕后,返回的数据往往包含几万行的日志或者庞大的表格。如果原封不动地塞回模型的上下文,模型的工作记忆在两轮之后就会彻底劣化。

因此,Post-Tool 节点承担两项治理职责: 首先是数据裁剪与外置。超过预定大小的结果被转存到持久化存储中,上下文中只保留一份摘要和检索标识; 其次是生成副作用收据。将工具执行的精确时间戳、操作人员授权、执行退出码与哈希值打包沉淀,作为后续审计与回滚的凭据。

通过这四道确定性的拦截关卡,智能体的行为边界被牢牢锁定在业务规则之内,不再依赖大模型的自觉性。

参考资料

  1. LangChain — Callbacks and event system
  2. OpenAI — Safety best practices
  3. Anthropic — Building effective agents
  4. Temporal — Message passing(signals 与 queries)