Files
social-app/docs/plans/2026-02-25-agent-chat-gap-closure-design.md
T

2.8 KiB
Raw Blame History

Agent Chat Gap Closure Design

Goal: 在不重做已完成任务的前提下,按既定 Task 顺序补齐 Agent Chat Core 的缺口,实现可验证、可审计的端到端闭环。

Current State

  • 已完成:Task 2/3/4 的核心数据层、静态配置、模板加载;Task 6/7 的部分骨架(event_bridgev1/agent_chatstorage_adapterasr_fun_asr)。
  • 未完成或缺口:Task 1 的 spike 结论文档;Task 5 编排与成本追踪;Task 6 agui_adapter 与缺失测试;Task 7 multimodalTask 8 会话审计与 recent 规则;Task 9 E2E 与运行文档闭环。

Design Decisions

  • 以“缺口优先”方式执行:仅新增/修改缺失能力,已稳定模块不重构。
  • 严格遵循顺序:Task 1 -> 5 -> 6 -> 7 -> 8 -> 9。
  • 每个 Task 均采用 TDD:先写失败测试,再做最小实现,通过后再小步重构。
  • 统一事件与持久化顺序:以 session.id + seq 为唯一顺序锚点,避免流式输出与落库顺序漂移。
  • 工具调用成本仍归集到 messages(role=tool),会话总成本由增量聚合维护。

Component Plan

  • Task 1: 新增 spike notes,记录 CrewAI/AG-UI/FunASR 依赖可用性与兜底策略。
  • Task 5: 新增 orchestrator.pycost_tracker.pyevents.py,完成三阶段执行与 usage/cost 归一。
  • Task 6: 新增 agui_adapter.py,对接现有 event_bridge.pyv1/agent_chat/service.py
  • Task 7: 新增 multimodal.py,衔接附件校验、存储元数据、ASR 文本提取。
  • Task 8: 增强会话标题策略、recent session 查询、审计字段与限流保护。
  • Task 9: 补齐 E2E 与 runbook,执行 bootstrap gate + 分层测试验证。

Data Flow

  1. 路由接收 AG-UI 请求并解析输入文本/附件。
  2. agui_adapter 生成内部命令并触发编排器三阶段执行。
  3. 每阶段产出内部事件,经 event_bridge 映射为 AG-UI 标准事件。
  4. service 在事务内写入 messages 并更新 sessions 汇总字段。
  5. 流式事件向外输出,顺序与 messages.seq 保持一致。

Error Handling

  • 配置/模板错误:启动前校验并快速失败,返回可追踪错误码。
  • 第三方调用错误(LLM/ASR/Storage):记录标准化失败事件与审计元数据,不泄露敏感信息。
  • 持久化冲突:对 session_id + seq 冲突执行有限重试并记录告警。

Testing Strategy

  • Unitcost_trackerorchestratoragui_adaptermultimodaltitle strategy
  • Integrationagent_chat 路由、事件落库、recent session 选择、会话成本聚合。
  • E2E:文本、图片+文本、音频+ASR、文档问答、首页最近会话默认选中。

Approval Note

该设计基于用户确认的“仅按未完成 Task 顺序推进”执行策略。