进阶 onorca.dev 2026-10-18 18:52:10 · 19 阅读

第18章 Agent 钩子与记忆机制

Agent hooks 与 memoryOrca 兼容 Claude Code 和 Codex 已有的 agent hook 和 memory 约定——它会读取并遵循这些约定,并为其中在 IDE 场景下有意义的部分提供 UI 界面。

每个仓库的 hooks

Orca 会读取每个仓库的 .claude/ 和 .codex/ 配置。已有的 hooks 会在 Orca 于该仓库的 worktree 中启动 agent 时照常运行。

Worktree 设置 hooks

可以配置命令在 worktree 创建后自动执行——比如 pnpm install、direnv allow,或恢复 .env 文件的脚本。设置入口在 Settings → Repository → Hooks。

Memory 文件

Claude 的 CLAUDE.md 和 Codex 的 AGENTS.md(无论放在仓库根目录还是嵌套目录)不会被改动——它们属于 agent。Orca 会像普通文件一样在文件浏览器中展示它们,方便你直接编辑。

Agent 状态 hooks

Settings → Agents → Agent status hooks 控制由 Orca 管理的 hooks,负责把 working / waiting / done 状态上报到 UI。关闭该设置会移除这些受管 hooks 并停止重新安装;重新开启则会自动恢复,无需重启 Orca(Windows 上的 WSL hook relay 也遵循同样的实时开关)。对应的 CLI 命令:orca agent hooks status|on|off --json。Orca 只有在内容有变化时才会把 Codex hook 写入 ~/.codex,而不是每次启动都写入,这样 Codex 就不会反复弹出批准提示了。

重启后依然有效

Hook 端点会写入磁盘(POSIX 系统在 {userData}/agent-hooks/endpoint.env,Windows 为 endpoint.cmd),并在每次 hook 调用时重新加载。因此即使应用重启,长时间运行的 agent 会话仍能连接到运行中的 Orca 服务器——不会出现前一个会话遗留的 PTY 向已失效端口发 POST 请求的情况。

评论 (0)