# 进度 · 咨询追问轮必须先调排盘工具(2026-09-17) 基线:`origin/staging` @ `6d097de9`。 分支:`codex/consult-followup-tool-contract-20260917`。 BUG:922、923。Skill 未 bump。 ## 做了什么 - **T1 / BUG-922**:删掉本命与窗口两处「简单追问可复用 existing packet/context」。`frontend/src` 已无 `follow-ups may use`。 - **T2 / BUG-923**:`consultationNatalPrepareStep` 第 0 步 `toolChoice: "required"`。新增 `consultationWindowPrepareStep`,申报时段首次 stream 与合同 retry 走 `windowStreamOptions`。`retryForAnswer` / 续写 / 分段不带强制。 - **prepareStep 类型**:`@mastra/core/dist/agent/types.d.ts` 的 `toolChoice` 为 `'auto' | 'none' | 'required' | { type: 'tool'; ... }`。本仓接受 `"required"`,未升级依赖。源码注释里曾写「思考模式供应商拒 named/required」;产品拍板每轮必调工具,仍上 `required`。若某模型线上拒收,另立单。 - **T4 第一轮取证**(执行方无 VPS,留给产品/部署): ```bash cd /opt/jyotisha-production docker compose -f deploy/docker-compose.server.yml logs web --since 2026-09-17T00:00:00 \ | grep agent-observability | grep '<该会话的 sessionId>' | head ``` 三条 `run.failed` 若都没有 `tool` 步骤,即本单同一根因;若第一轮有 `tool` 且 `status: failed`,另立单。 ## 测试 | 项 | 结果 | | --- | --- | | `tsc --noEmit` | 0 错 | | 改动文件 eslint | 0 error | | `consultation-workflow-contract` + voice | **14 passed / 0 fail**(含 BUG-922/923 契约) | | `consultation-agentic-runtime` / `consultation-birth-time-mode` | 本机 Windows EPERM symlink(skill runtime alias),Linux CI 不受影响。断言已写在这两个文件里。 | | Python | 未改 | | 客户端 bundle | 未改,gzip 应为 0 | T4 第一轮失败原因需 VPS `agent-observability` 日志,本机做不了。