BP9 · Harness 治理框架与 Hook Pipeline#
定位:面试官追问 Agent 治理框架设计时的拷问预备。
核心口述(30 秒)#
“从 400 行意大利面适配器重构为 Hook Pipeline。6 个 Hook 点覆盖全生命周期,15+ Hook 模块。新增检查 = 加一个文件 + 一行装饰器,不碰主流程。Hook 能改(拦截/注入),Callback 只能看(AGUI/metrics)。“
拷问链#
Q: 和 Web 中间件有什么区别?#
粒度更细(6 个 Hook 点 vs request/response 两个)、context 更丰富(能看工具参数/返回值/历史轨迹/阶段状态)。Web middleware 在 Agent 领域的领域特化。
Q: Hook 之间怎么通信?#
通过 HarnessState 共享状态对象。Hook 不直接依赖其他 Hook,但读写同一个 state。
Q: priority 契约怎么保证不会被改坏?#
测试钉死关键顺序(熔断闸最后、search_authority 早于 retrieval_charge)。
Q: Hook 空转怎么发现的?#
M12 之前断言/漂移检测注册了但适配器没调用对应 Hook 点。加端到端测试确认各闸真实开火。
Q: 为什么删旧中间件不留兼容层?#
留了只会让新旧并存、行为不可预测。干净删除。
Q: HookRejectSignal 拒绝后模型下一步怎么做?#
收到 sentinel 消息(“当前阶段不允许这个工具”)→ 模型下一轮换个合法工具调。实测弱模型也能理解 sentinel。
压力题#
Q: 15+ 个 Hook 模块执行顺序复杂度会不会爆炸?#
priority 保证执行顺序。同一 Hook 点的 Hook 之间不直接依赖。单个 Hook 崩不影响其他 Hook——异常不中断主流程。