12 — Hooks、ExecPolicy、观测与优化清单
Hooks(codex-hooks)
codex-core 集成 HookEvent / Hooks(见 codex.rs import),在 agent 生命周期关键点触发用户配置的脚本/命令,用于:
- 与 企业内部 CI / 通知 集成;
- 审计(例如记录每次 tool 调用前后)。
设计要点:事件负载结构化(HookPayload)优于裸文本,便于稳定解析。
ExecPolicy
codex exec 路径在启动时可能调用 check_execpolicy_for_warnings(exec/src/lib.rs),与 codex-execpolicy crate 配合,在 执行前 对策略文件做静态/半静态检查,把失败左移到启动阶段 而非运行中突然拒绝。
OpenTelemetry(codex-otel)
core 使用 current_span_trace_id、set_parent_from_w3c_trace_context 等,把 W3C Trace Context 从 app-server 传入的请求贯通到上游 API。对企业场景:可关联一次用户操作与多条模型请求。
输出截断(codex-utils-output-truncation)
工具输出过长会 挤爆上下文 或拖慢渲染;统一截断策略比各工具各自截断更易 调参一致。
性能与体验优化(汇总)
| 领域 | 手段 | 代码/文档锚点 |
|---|---|---|
| 首包延迟 | WebSocket prewarm | core/src/client.rs 模块注释 |
| 终端流畅度 | Smooth/CatchUp + 滞回 | tui/src/streaming/chunking.rs、docs/tui-stream-chunking-tuning.md |
| 启动 I/O | Skills marker 跳过安装 | skills/src/lib.rs |
| 服务端稳定 | 有界队列 + 过载错误码 | app-server/README.md |
| 库纯净度 | deny stdout/stderr | core/src/lib.rs |
| 配置类型安全 | JSON Schema 生成 | docs/config.md → core/config.schema.json |
研发流程(贡献者向)
根 AGENTS.md:just fmt、just fix -p <crate>、cargo test -p ...、TUI 变更需 insta 快照;协议变更跑 just write-app-server-schema 等。若问「如何保证不破坏 IDE」:schema 生成 + 协议测试 + snapshot 三层。