docs: 事件集落地后回写 GovDoc 缺口清单与阶段清单
「审计出口与事件流的关系」那条缺口转到已回答:审计由意图日志承担,出口要包在存储接缝上 而不是接在事件出口上;三类事件里 phase_recovery 那一类在界外。新登记一条缺口:工具单独的 耗时拿不到,本库只有整步墙钟,迁过去口径会变。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -42,9 +42,8 @@
|
|||||||
- [x] ④ 测试框架 —— unit / integration / contract 三层已在跑;**e2e 还是空的**,它要打真实
|
- [x] ④ 测试框架 —— unit / integration / contract 三层已在跑;**e2e 还是空的**,它要打真实
|
||||||
模型网关(划分判据是「依赖什么」,见 [CLAUDE.md](CLAUDE.md) §1.9)。`tests/contract/`
|
模型网关(划分判据是「依赖什么」,见 [CLAUDE.md](CLAUDE.md) §1.9)。`tests/contract/`
|
||||||
那套公共行为一致性用例接上了自带的存储实现,解释器与执行器那几条仍等下游把实现接进来
|
那套公共行为一致性用例接上了自带的存储实现,解释器与执行器那几条仍等下游把实现接进来
|
||||||
- [x] ⑤ 实现 —— 十个模块全部落地。**两处已知欠账**:事件出口收下了但没有调用点(`Event`
|
- [x] ⑤ 实现 —— 十个模块全部落地,五个接缝都有调用点。**一处已知欠账**:`stores` 只有逐行
|
||||||
还没有字段,事件集要独立成一份 design doc);`stores` 只有逐行追加那一种形态,关系
|
追加那一种形态,关系数据库那种由下游自己实现,契约套件是它的准入标准
|
||||||
数据库那种由下游自己实现,契约套件是它的准入标准
|
|
||||||
- [ ] ⑥ 迁移验收 —— 真的把 dissect 与 GovDoc-SaaS 迁过来,以两边测试全绿为准
|
- [ ] ⑥ 迁移验收 —— 真的把 dissect 与 GovDoc-SaaS 迁过来,以两边测试全绿为准
|
||||||
|
|
||||||
## 本地检查
|
## 本地检查
|
||||||
|
|||||||
@@ -96,10 +96,24 @@ GovDoc 有两套 agent,形态完全不同,而两套都不能直接当迁移
|
|||||||
阶段级续跑本身在界外,但它依赖一个界内的事实:运行结果必须是可持久化、可读回、可判定的
|
阶段级续跑本身在界外,但它依赖一个界内的事实:运行结果必须是可持久化、可读回、可判定的
|
||||||
结构,而且「这次运行结束了」要由库自己写下来。这条已经落进 `../design/0002-step-level-resume.md`。
|
结构,而且「这次运行结束了」要由库自己写下来。这条已经落进 `../design/0002-step-level-resume.md`。
|
||||||
|
|
||||||
## 已经有答案的(原缺口登记,`0003` 回答)
|
## 已经有答案的(原缺口登记,`0003` 与 `0013` 回答)
|
||||||
|
|
||||||
这三条曾经登记为「PolyLoop 答不上来」,`../design/0003-public-api-shape.md` 已经定了。
|
这几条曾经登记为「PolyLoop 答不上来」,现在定了。留在这里是因为它们是 GovDoc 侧真实的接入
|
||||||
留在这里是因为它们是 GovDoc 侧真实的接入约束,迁移时要照着改代码。
|
约束,迁移时要照着改代码。
|
||||||
|
|
||||||
|
**审计纪律由意图日志承担,不由事件流承担**(`../design/0013-event-set-and-callbacks.md`
|
||||||
|
决策一与决策二)。这条原来登记成「事件流能不能覆盖审计需求,取决于事件里带不带原始响应」,
|
||||||
|
答案是不带——事件流可丢,一件只存在于可丢通道里的事实撑不起「禁止静默修复」。纪律要留痕的
|
||||||
|
三样在日志里各有位置:模型原文在模型调用结果记录的回复里,修复后的文本是步记录的
|
||||||
|
`raw_output`,恢复来源是意图日志本身(哪一步有意图没结果、按哪条重放策略处置过)。
|
||||||
|
|
||||||
|
对 GovDoc 的实质影响是**审计出口要包在存储接缝上,不是接在事件出口上**。存储的写是运行的
|
||||||
|
一部分,写失败运行就停;事件的投递不是。今天那个发一条带类型和载荷的接口迁过来之后,位置
|
||||||
|
变了。事件流仍然可以接——一步走完发一条,带整条步记录——但它是给进度回写用的,不能当审计。
|
||||||
|
|
||||||
|
**它的三类事件里有一类在界外。** `phase_recovery` 发自阶段执行器,而阶段编排不归本库;那
|
||||||
|
一层要发什么事件由它自己定。本库这边它需要的只是「这次运行结束了没有、结果是什么」,那是
|
||||||
|
存储的结束记录在回答。
|
||||||
|
|
||||||
**预算挂在请求上,不是定义上。** 一份定义可以被三个阶段共用,各传一份预算,不会长出三份
|
**预算挂在请求上,不是定义上。** 一份定义可以被三个阶段共用,各传一份预算,不会长出三份
|
||||||
除预算外完全相同的定义。**不设「定义给默认值、请求可覆盖」**——两处取值意味着「这次到底
|
除预算外完全相同的定义。**不设「定义给默认值、请求可覆盖」**——两处取值意味着「这次到底
|
||||||
@@ -139,10 +153,11 @@ JSON,不用原生工具调用,所以现在不缺。哪天要换成原生工
|
|||||||
个 tools 字段——那是兼容变更,但还要看下面那一层的共用库暴不暴露这个参数,以及原生工具调用的
|
个 tools 字段——那是兼容变更,但还要看下面那一层的共用库暴不暴露这个参数,以及原生工具调用的
|
||||||
返回怎么进决策解释接缝那三个分支。**这条要在换协议之前定,不能边换边定。**
|
返回怎么进决策解释接缝那三个分支。**这条要在换协议之前定,不能边换边定。**
|
||||||
|
|
||||||
**审计出口与事件流的关系。** 生产实现的审计出口是一个「发一条带类型和载荷的事件」的接口,
|
**动作被拒绝那一档,工具单独的耗时拿不到。** 生产实现的 `tool_call` 审计事件记的是工具执行
|
||||||
而 PolyLoop 的方向是「观察走事件流、干预走具名回调」。事件流能不能覆盖审计的需求,取决于
|
那一段的毫秒数,而 PolyLoop 只记整步墙钟——里面混着模型调用、解释和动作执行三段。迁过去这个
|
||||||
事件里带不带原始响应——审计纪律要求原始输出和修复后的输出都留痕。事件集与回调清单要独立
|
数的口径会变,迁移前后两批数据不可比。要拆开就得往步记录里加分段计时,那是一次持久化结构的
|
||||||
成一份 design doc,这条在那时候定。
|
改动,得先说清楚这个数拿去做什么(是给人看慢在哪,还是要进统计)。这条在
|
||||||
|
`../design/0013-event-set-and-callbacks.md` 的代价一节登记过,那份文档没解决它。
|
||||||
|
|
||||||
**动作被拒绝之后的重复行为。** 生产实现对无效工具调用不设单独的重试上限,靠总迭代上界收敛。
|
**动作被拒绝之后的重复行为。** 生产实现对无效工具调用不设单独的重试上限,靠总迭代上界收敛。
|
||||||
PolyLoop 目前的想法一致,但要确认这在长阶段(50 步)上够不够——模型反复调用同一个不存在的
|
PolyLoop 目前的想法一致,但要确认这在长阶段(50 步)上够不够——模型反复调用同一个不存在的
|
||||||
|
|||||||
Reference in New Issue
Block a user