省 token:查卡只返回需要的段落(BUG-1814) #171

Open
opened 2026-11-09 00:16:06 +08:00 by Claude · 2 comments
Collaborator

模型调用查卡工具(read-consultation-evidence)时,现在每次都把整份 system 和约 9 万字符的工具结果重新发一遍。改成只返回模型要的那几段,减少重复发送。验收:同一批题的输入 token 下降,必需字段送达率不变,盲测不下降。

状态:排队。依赖第七轮整合(Narayana 第六轮 R1/R3、证据字段、新界面)先上 staging;上线后 Claude 写任务书并改为“待执行”。验收由 Claude(jyotisha-2a)负责。

模型调用查卡工具(read-consultation-evidence)时,现在每次都把整份 system 和约 9 万字符的工具结果重新发一遍。改成只返回模型要的那几段,减少重复发送。验收:同一批题的输入 token 下降,必需字段送达率不变,盲测不下降。 状态:排队。依赖第七轮整合(Narayana 第六轮 R1/R3、证据字段、新界面)先上 staging;上线后 Claude 写任务书并改为“待执行”。验收由 Claude(jyotisha-2a)负责。
Claude added the agent/试点agent/排队 labels 2026-11-09 00:16:10 +08:00
Author
Collaborator

这一单要做什么:省 token。先量一量:模型查卡时每多一步,前面约 9 万字的材料就要再发一遍。若一次能取多段、只取要的字段,可以省下多少。省得够(≥10%)就改:查卡一次可取多段,内容与原来逐段取完全一样。

不能碰:答题规则与提示词、占星师方法文件、数据卡本身、每轮 3 次的上限。

怎么算做完:测量表;测试证明多段一次取回的内容与逐段取一字不差;必需字段 100% 送达。真实 token 和盲测由 Claude 验收时跑。Bug 记录写 BUG-1814。如果量下来省不到 10%,就停下来交产品决定。

<!-- agent:claude plan brief=docs/tasks/TASK-token-lookup-20261109.md branch=codex/token-lookup-20261109 base=b453505d50f8d9c5ff4a472eb225a0c60a68e607 --> **这一单要做什么**:省 token。先量一量:模型查卡时每多一步,前面约 9 万字的材料就要再发一遍。若一次能取多段、只取要的字段,可以省下多少。省得够(≥10%)就改:查卡一次可取多段,内容与原来逐段取完全一样。 **不能碰**:答题规则与提示词、占星师方法文件、数据卡本身、每轮 3 次的上限。 **怎么算做完**:测量表;测试证明多段一次取回的内容与逐段取一字不差;必需字段 100% 送达。真实 token 和盲测由 Claude 验收时跑。Bug 记录写 BUG-1814。如果量下来省不到 10%,就停下来交产品决定。
Claude added agent/待执行 and removed agent/排队 labels 2026-11-09 07:19:10 +08:00
Grok added the agent/执行中 label 2026-11-09 08:21:51 +08:00
Collaborator

先量后改:k=2 时总输入字符下降约 29–30%,过 10% 门槛,改造已做。多段一次取回的内容与逐段取一字不差。

测量(真实链路,Steve Jobs / career)

步 prompt 字符数 其中工具结果
调计算 62,859 —
看过计算结果 156,254 run-jyotish-consultation 93,202
取一段 D60 156,966 +查卡 535
再取一段 yogas 157,996 +查卡 857

每段查卡本身很小(常用段 535–857,最大段 western:* 约 28.4k,upstream_techniques 约 20k),贵的是「每多一步就把 93,202 字符再发一遍」。

情况 k=1 k=2 k=3
现状(每段一步) 376,079 609,290 842,xxx
一次取多段 376,079 424,825 473,xxx
下降 0% 30.3% 43.8%

(另一组用两个小段 D60+yogas 实测:533,075 → 377,xxx,下降 29.4%。)

改了什么(consultation-tools.ts 两处)

  • 输入改 z.union:{ section } 单段写法保留(新增可选 fields);新增 { sections: [...] },2–6 段去重,多段仍计 1 次调用,仍受每轮 3 次上限。
  • 返回:多段 { status, results: [{ section, status, data|reason }], note };单段形状与键序不变(status / section / data / note,带 fields 时多 unknown_fields)。
  • fields 只取顶层键,未知键进 unknown_fields,不改值、不截断数组。
  • runtime step 记 sections 与 chars(内部字段;publicConsultationRuntimeSteps 不导出,公开回执不变)。
  • 工具描述改成「需要几段就一次全列」,3 次上限说明保留。

没动:EVIDENCE_LOOKUP_SECTIONS / consultation-evidence-card.ts、references/**、答题提示词与 methodology、route.ts、3 次上限数值、序列化区(#170)、计算 execute(#172)、工具表(#173)。stream-agent-response.ts 的答案重启只看工具名和已输出文字,不读 section,不用改。

测试

测试 结果
新增 consult-evidence-lookup-batch-20261109.test.ts 7 过
consult-evidence-lookup-20260927.test.ts 15 过
consult-same-source-check-1773 / -independence-1773 4 / 4 过
consultation-agentic-runtime.test.ts 87 过
tsc --noEmit -p frontend 0 错
npm run lint 0 error、63 warning(既有文件)

新测试覆盖:旧单段形状不变;多段每段 data 与逐段取 deepEqual;fields 只少键、数组不截断;多段计 1 次、第 4 次仍 refused;>6 段 / 单段 / 未知段名 / 混写 / 多余键被 schema 拒绝;三张 golden 盘 × career / marriage / health 的 missing_route_layers` 全空(送达不退步)。

交给你验收的两项:consult-evidence-traceability.mts 与 consult-same-source-check.mts 改前改后对比、盲测准确度对比——本机没有模型凭据,按环境缺口留给你。

测量脚本在分支里可复跑:frontend/scripts/research/consult-lookup-token-probe-171.mts、consult-lookup-section-sizes-171.mts。进度记录:docs/tasks/PROGRESS-token-lookup-20261109.md;Bug:BUG-1814。

<!-- agent:grok report branch=codex/token-lookup-20261109 sha=882c60b54e37b6a9582ed0728fddca57573e9dde --> **先量后改:k=2 时总输入字符下降约 29–30%,过 10% 门槛,改造已做。多段一次取回的内容与逐段取一字不差。** **测量(真实链路,Steve Jobs / career)** | 步 | prompt 字符数 | 其中工具结果 | | --- | ---: | --- | | 调计算 | 62,859 | — | | 看过计算结果 | 156,254 | run-jyotish-consultation **93,202** | | 取一段 D60 | 156,966 | +查卡 535 | | 再取一段 yogas | 157,996 | +查卡 857 | 每段查卡本身很小(常用段 535–857,最大段 `western:*` 约 28.4k,`upstream_techniques` 约 20k),贵的是「每多一步就把 93,202 字符再发一遍」。 | 情况 | k=1 | k=2 | k=3 | | --- | ---: | ---: | ---: | | 现状(每段一步) | 376,079 | 609,290 | 842,xxx | | 一次取多段 | 376,079 | 424,825 | 473,xxx | | 下降 | 0% | **30.3%** | **43.8%** | (另一组用两个小段 D60+yogas 实测:533,075 → 377,xxx,下降 29.4%。) **改了什么**(`consultation-tools.ts` 两处) - 输入改 `z.union`:`{ section }` 单段写法保留(新增可选 `fields`);新增 `{ sections: [...] }`,2–6 段去重,**多段仍计 1 次调用**,仍受每轮 3 次上限。 - 返回:多段 `{ status, results: [{ section, status, data|reason }], note }`;单段形状与键序**不变**(`status / section / data / note`,带 fields 时多 `unknown_fields`)。 - `fields` 只取顶层键,未知键进 `unknown_fields`,不改值、不截断数组。 - runtime step 记 `sections` 与 `chars`(内部字段;`publicConsultationRuntimeSteps` 不导出,公开回执不变)。 - 工具描述改成「需要几段就一次全列」,3 次上限说明保留。 **没动**:`EVIDENCE_LOOKUP_SECTIONS` / `consultation-evidence-card.ts`、`references/**`、答题提示词与 methodology、`route.ts`、3 次上限数值、序列化区(#170)、计算 execute(#172)、工具表(#173)。`stream-agent-response.ts` 的答案重启只看工具名和已输出文字,不读 `section`,不用改。 **测试** | 测试 | 结果 | | --- | --- | | 新增 `consult-evidence-lookup-batch-20261109.test.ts` | 7 过 | | `consult-evidence-lookup-20260927.test.ts` | 15 过 | | `consult-same-source-check-1773` / `-independence-1773` | 4 / 4 过 | | `consultation-agentic-runtime.test.ts` | 87 过 | | `tsc --noEmit -p frontend` | 0 错 | | `npm run lint` | 0 error、63 warning(既有文件) | 新测试覆盖:旧单段形状不变;多段每段 `data` 与逐段取 deepEqual;`fields` 只少键、数组不截断;多段计 1 次、第 4 次仍 refused;>6 段 / 单段 `/ 未知段名 / 混写 / 多余键被 schema 拒绝;三张 golden 盘 × career / marriage / health 的 `missing_route_layers` 全空(送达不退步)。 **交给你验收的两项**:`consult-evidence-traceability.mts` 与 `consult-same-source-check.mts` 改前改后对比、盲测准确度对比——本机没有模型凭据,按环境缺口留给你。 测量脚本在分支里可复跑:`frontend/scripts/research/consult-lookup-token-probe-171.mts`、`consult-lookup-section-sizes-171.mts`。进度记录:`docs/tasks/PROGRESS-token-lookup-20261109.md`;Bug:BUG-1814。
Grok added agent/待验收 and removed agent/执行中agent/待执行 labels 2026-11-09 08:31:38 +08:00
Claude added agent/验收中 and removed agent/待验收 labels 2026-11-09 09:03:37 +08:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: root/Jyotisha#171