# Agent Runtime 配置 ## 文件与合并 提交 `.pouch/agent.yaml`。若存在 `.pouch/agent.local.yaml`,按 mapping 深度合并;local 文件只能覆盖同名字段,不能增加未声明的顶层结构。合并后的配置必须再次完整校验。 ```yaml schemaVersion: 1 locations: local-app: environment: local host: local project: git:git.yumee.top/bloggarden/app path: /home/ace/code/draft2/blogger/app remote-ios: environment: macmini host: runtime:14b6d8ce-4528-49f4-8d46-56b266a5ad69 project: git:git.yumee.top/bloggarden/app path: /Users/laily/workrepo/bloggarden-app profiles: android-builder: role: build cli: codex tier: standard model: gpt-5 reasoningEffort: medium permissionMode: workspace-write ios-builder: role: build cli: codex tier: strong model: gpt-5 reasoningEffort: high permissionMode: workspace-write bindings: builder.android: adapter: builder location: local-app profile: android-builder makefile: makefile.builder target: android session: lifecycle: persistent builder.ios: adapter: builder location: remote-ios profile: ios-builder makefile: makefile.builder target: ios session: lifecycle: persistent ``` ## 字段原则 - binding、location、profile ID 只允许小写字母、数字和 `-`,binding 用一个或多个点 分隔;ID 是路由名,不是任意 shell 文本。 - `environment: local` 使用当前 Orca runtime;远程环境使用已保存的名称。`host` 必须 是 `local` 或 `runtime:`,由 Orca 查询结果证明,不能凭主机名猜测。 - `project` 必须是 Orca project id 或精确 display name;`path` 必须是目标机器上的绝对 路径。解析 worktree 时四者必须同时匹配,标题、分支和 basename 不能消歧。 - `profile` 的 CLI 只能来自 ACK/tester 共同 allowlist:`codex`、`cursor-agent`、`grok`、 `omp`、`pi`。`model` 为安全模型 ID 或 null;`reasoningEffort` 为 `low|medium|high|xhigh` 或 null;权限只允许 `read-only|workspace-write`。 - builder 的 `target` 只能是 make target 名;`makefile` 只能是项目内相对文件名。脚本、 远端命令、环境变量和凭据由 builder/Orca adapter 提供,不能写入此配置。 - `session.lifecycle` 为 `persistent` 或 `ephemeral`。persistent 只表示允许显式跨 session attach/resume,不表示自动复用旧 terminal。 旧版 `.pouch/tester/local.yaml` 和 `.pouch/ack/agents.yaml` 继续兼容。迁移时应让它们 由 adapter 从 common profile/location 生成或覆盖,不能删除旧 receipt、fingerprint 或 tester 的每轮 terminal 清理语义。