Files
SpecialX c6362f4b04
Some checks failed
CI / quality-ts (push) Failing after 53s
CI / quality-go (push) Failing after 7s
CI / quality-proto (push) Failing after 3s
CI / deploy (push) Has been skipped
docs(docs): 更新 issue 仲裁状态 + 生成集成测试阶段规划
- 14 个 issue.md 状态字段更新为"已裁决"
  - 对应 coord.md ARB-001~022 章节
  - 共 104 处状态字段更新
- 新增 integration-test-phase.md
  - 集成测试与部署验证阶段(P7)规划
  - 6 个批次任务分解
  - 8 条核心 E2E 链路定义
  - 验收标准和退出标准

Coord-AI
2026-07-10 22:05:37 +08:00

14 KiB
Raw Permalink Blame History

ai 问题记录

负责人ai12 关联:coord.mdcontracts/ai_contract.mdmatrix.mdport-allocation.md 规则AI 遇到问题时在此追加条目coord 仲裁后更新状态


§0 已有仲裁核查ai12 复核2026-07-10

任务要求对已有的仲裁进行核查。coord.md 当前仅含 ARB-001 / ARB-002另在 port-allocation.md §7、coord-final-decisions.md、president-final-rulings.md 中存在涉及 ai 的历史仲裁。逐项核查如下。

仲裁编号 / 来源 主题 涉及 ai 核查结论 状态
ARB-001coord.md §1 teacher-bff GraphQL schema 第一版 与 ai 无关,不适用。
ARB-002coord.md §2 MF Shell 暴露清单 与 ai 无关,不适用。
port-allocation.md §7 50058 让给 aipush-gateway 豁免 gRPC 仲裁有效port-allocation.md §3/§5 已登记 ai = HTTP 3008 / gRPC 50058。ai 的 01/02 文档已按 50058 设计,一致。matrix.md §2 gRPC 接口提供方矩阵、§8 就绪信号跟踪表仍写 50057未同步 → 提请 coord 同步(见 ISSUE-01 ⚠️ 仲裁有效但未同步
coord-final-decisions §1-§4 iam P2 契约 / BFF 设计 / Gateway / content 历史仲裁,与 ai 无直接约束。ai 仅消费 content/data-ana gRPC需待其就绪。
president-final-rulings §2.3 Temporal 用于 AI 编排 部分仲裁004 §2.3 列出 Temporal。ai12 已在 02-architecture-design.md §8.3 建议简单 4 步工作流用 BackgroundTasks + Redis长运行评估 Temporal。需 coord 在 P6 决策点确认(见 ISSUE-06 ⚠️ 部分仲裁
01/02 文档引用"004 §7.2 已确认 topic edu.insight.ai.usage" ai 用量事件 topic 核查不通过grep 004 全文未发现 ai.usage / insight.ai / AIUsage 任何字样004 §7.2 并未确认 ai 的 topic。该引用无法证实topic 命名实际处于三义未决状态(见 ISSUE-02 引用失实
01/02 文档引用"004 §1.2 端口矩阵 HTTP+10050 规则" ai gRPC 端口推导规则 核查不通过004 全文无端口矩阵;HTTP+10050 公式不成立3008+10050=13058≠50058。端口唯一源是 port-allocation.md顺序分配ai=50058。ai 文档应改引 port-allocation.md。 引用失实

核查总结coord.md 现有 2 项仲裁ARB-001/002均与 ai 无关;涉及 ai 的真实仲裁在 port-allocation.md50058 已定)与 004 §2.3Temporal 部分仲裁。ai 文档对"004 §7.2/§1.2"的两处引用失实,需修正引用源。


问题列表

ISSUE-01-ai12matrix.md 端口 50057 与 port-allocation.md 50058 不同步

  • 提请方ai12
  • 日期2026-07-10
  • 类型:编号冲突 / 文档不同步
  • 描述matrix.md §2 gRPC 接口提供方矩阵写 "ai (ai12) | 50057"§8 就绪信号跟踪表写 "ai gRPC 50057"。但 port-allocation.md §3/§5/§7 明确 ai = HTTP 3008 / gRPC 500582026-07-09 coord 仲裁"push-gateway 豁免 gRPC释放 5005750058 让给 ai")。两份 coord 文件矛盾matrix.md 过时。ai 01/02 文档与 workline.md §1/§4.12 已正确采用 50058。
  • 建议方案coord 将 matrix.md §2 ai 行 gRPC 端口 50057 → 50058§8 就绪信号"ai gRPC 50057"→ 50058。ai12 同步将 contracts/ai_contract.md 全部 50057 改 50058。
  • 状态:已裁决(见 coord.md §12

ISSUE-02-ai12ai 用量事件 Kafka topic 命名三义未决

  • 提请方ai12

  • 日期2026-07-10

  • 类型:契约不明确

  • 描述ai 用量计费事件 topic 在三份文档中命名不一致,且无权威源:

    • 01-understanding.md §3.2 / 02-architecture-design.md §5.2edu.insight.ai.usage(自称"004 §7.2 已确认",但 004 中不存在)
    • matrix.md §4 Kafka 事件发布方矩阵:edu.ai.usage,事件 AIUsageEvent
    • contracts/ai_contract.md §1.4edu.ai.usage.events

    events.proto 现状无 AIUsageEvent message004 无 topic 记录。三义导致 data-ana 消费方无法对齐。

  • 建议方案ai12 建议采用 edu.ai.usage(与 matrix.md 一致,最简短,符合 edu.<domain>.<action> 简洁约定)。请 coord 裁定并在 004 §7.2 补登 + events.proto 补 AIUsageEvent messageschema 见 02-architecture-design.md §3.3。ai12 据裁决同步 01/02 文档与 contract。

  • 状态:已裁决(见 coord.md §12

ISSUE-03-ai12ai.proto 待补全(备课工作流 RPC + 字段扩展)

  • 提请方ai12

  • 日期2026-07-10

  • 类型:契约不明确 / 前置依赖缺失

  • 描述ai.proto 现状仅 4 RPCChat / StreamChat / GenerateQuestion / OptimizeExpressionGenerateQuestionRequest 仅 prompt/subject/difficulty 三字段。P5 交付需要:

    • 新增 RPCGenerateLessonPlanStreamGenerateQuestionai-allocation §5 "题目逐字生成"
    • GenerateQuestionRequest 扩展字段grade / knowledge_point_ids / question_type / count
    • ChatRequest 扩展可选字段user_id / session_id / data_scope

    关于 RPC 总数存在分歧matrix.md §2 与 contract 写 6 RPC02-architecture-design.md §4.2 单方面扩到 8 RPC追加 GetLessonPlanStatus / ConfirmLessonPlan。需 coord 裁定 P5 目标 RPC 清单。

  • 建议方案ai12 建议 P5 目标 6 RPCChat / StreamChat / GenerateQuestion / StreamGenerateQuestion / OptimizeExpression / GenerateLessonPlan。备课工作流的"查询状态/确认入库"用 HTTP 端点(GET /ai/v1/lesson/preparation/{id} + POST .../confirm)实现,避免 RPC 膨胀;如 coord 认为查询/确认也需 gRPC则定为 8 RPC。请 coord 在 P5 启动前升级 ai.proto 到 v1 完整版。

  • 状态:已裁决(见 coord.md §12

ISSUE-04-ai12events.proto 缺 AIUsageEvent message

  • 提请方ai12
  • 日期2026-07-10
  • 类型:契约不明确 / 前置依赖缺失
  • 描述004 §12.2 + §15.3 #6 仲裁 ai 用量事件豁免 Outbox派生数据但 events.proto 现状仅有 ClassEvent / ExamEvent / HomeworkEvent / GradeEvent无 AIUsageEvent。data-ana 消费方无 schema 可循。01/02 文档已提请A3matrix.md §4 已列事件名,但 proto 未落地。
  • 建议方案coord 在 events.proto 新增 AIUsageEvent message建议 schema 见 02-architecture-design.md §3.3(含 event_id / user_id / school_id / provider / model / operation / prompt_tokens / completion_tokens / total_tokens / latency_ms / success / degraded / metadata。与 ISSUE-02 一并裁决。
  • 状态:已裁决(见 coord.md §12

ISSUE-05-ai12contracts/ai_contract.md 与设计文档多处矛盾ai12 自查自纠清单)

  • 提请方ai12

  • 日期2026-07-10

  • 类型:契约不明确 / 文档不同步

  • 描述:现有 contracts/ai_contract.mdcoord 模板ai12 接管前未细化)与 01/02 设计文档存在 5 处矛盾:

    1. §1.1 gRPC 端口 50057应为 50058见 ISSUE-01
    2. §1.2 "无对外 HTTP 端点,仅 gRPC"——错误。api-gateway 代理 /api/v1/ai/* → ai HTTPmain.py 已实现 /ai/* 端点 + SSE 流式HTTP 保留作 Gateway 直连降级
    3. §1.4 topic edu.ai.usage.events(三义,见 ISSUE-02
    4. §1.5 错误码示例 AI_PROVIDER_UNAVAILABLE / AI_TOKEN_LIMIT_EXCEEDED / AI_CONTENT_FILTERED 与 02-architecture-design.md §6.2 清单(AI_LLM_UNAVAILABLE / AI_QUOTA_EXCEEDED / AI_CONTENT_MODERATION_REJECTED)命名不一致
    5. §2.2 列出 ai 消费 2 个 content Kafka 事件,与 01/02 §5.1 "ai 不消费任何事件(无状态)"矛盾
  • 建议方案ai12 在本次工作中直接重写 contracts/ai_contract.md 对齐设计文档(端口 50058 / 补 HTTP 端点 / topic 待 ISSUE-02 裁决后填 / 错误码对齐 02 §6.2 / 删除消费事件或标注 P6+ 评估)。仅 RPC 数与 topic 命名待 coord 裁决后最终定稿。

  • 状态ai12 自纠中(依赖 ISSUE-01/02/03 裁决的字段待补)

ISSUE-06-ai12备课工作流是否引入 TemporalP6 决策点)

  • 提请方ai12
  • 日期2026-07-10
  • 类型:工作量超批 / 前置依赖缺失
  • 描述004 §2.3 列出 Temporal 用于"AI 编排"属部分仲裁。ai12 在 02-architecture-design.md §8.3 建议P5 用 FastAPI BackgroundTasks + Redis24h TTL实现 4 步备课工作流P6 评估迁移 Temporal支持长运行跨天审核 + 复杂状态机)。需 coord 在 P6 决策点确认是否引入,避免 P5 实现被推翻重做。
  • 建议方案P5 采用 BackgroundTasks + Redis02-architecture-design.md §2.4 状态机已设计P6 由 coord 评估 Temporal 引入时机。请 coord 在 roadmap 标注 P6 决策点。
  • 状态:已裁决(见 coord.md §12

ISSUE-07-ai12iam GetEffectiveDataScope gRPC RPC 待 P4 补全

  • 提请方ai12
  • 日期2026-07-10
  • 类型:前置依赖缺失
  • 描述ai 多租户用量配额校验需调用 IamService.GetEffectiveDataScope 查询用户 DataScope。01/02 文档已提请A4coord 已仲裁 P4 补全§15.3 #5但 iam.proto 现状未见此 RPC。ai P5 实施时依赖,若 P4 未补全将阻塞配额校验功能。
  • 建议方案:请 coord 确认 iam (ai06) 在 P4 已补全 GetEffectiveDataScope RPCai12 在 P5 实施时调用Redis 缓存 5min。若 P4 未补全ai 降级为"仅按 user_id 配额,不按 school_id"。
  • 状态:待 coord 确认 P4 补全情况

ISSUE-08-ai12proto package 命名不符合 project_rules §5

  • 提请方ai12
  • 日期2026-07-10
  • 类型:契约不明确 / 架构约束
  • 描述project_rules §5 规定 proto 包名规范 edu.<domain>.v1(如 edu.iam.v1edu.core_edu.v1)。但 ai.proto 现状 package 为 next_edu_cloud.ai.v1events.proto 为 next_edu_cloud.events.v1均不符合规范。01/02 文档未指出此偏离。此为全局 proto 命名问题(涉及全部 proto 文件),非 ai 独有,但 ai12 在审查中发现需提请。
  • 建议方案:请 coord 裁定是否统一迁移 proto package 至 edu.<domain>.v1(全局变更,需 buf breaking 评估或保留现状作为历史包袱。ai12 在 ai.proto 补全 RPC 时遵循最终裁定。
  • 状态:已裁决(见 coord.md §12

ISSUE-09-ai12响应信封偏离 ActionState 强制整改P0

  • 提请方ai12
  • 日期2026-07-10
  • 类型:架构约束
  • 描述004 §11.5 强制响应信封为 ActionState{success, data, error:{code,message,details,traceId}}。ai 当前 main.py 违反:返回 {success:true, data:..., degraded:false} 顶层 degraded 字段(见 main.py:89/201-210/233-244。01/02 文档已提请A5contracts 未记录。P5 实施必须整改。
  • 建议方案P5 实施时所有 HTTP 端点 + gRPC RPC 返回值改为 ActionStatedegraded 作为 error.details.degraded 子字段。请 coord 在 known-issues §2.9 ai 分区记录此约束01 文档已提请,需 coord 落地 known-issues
  • 状态:待 coord 在 known-issues 记录约束(整改由 ai12 P5 执行)