Files

5.3 KiB
Raw Permalink Blame History

1. OpenSpec 与运行边界

  • 1.1 新建 complete-full-duplex-agent-runtime OpenSpec;前置条件:当前计划已确认;优先级:P0;验收标准:proposal/design/tasks/spec delta 存在;测试要点:openspec validate complete-full-duplex-agent-runtime --strict
  • 1.2 明确 run-agent-live 替换旧 VoiceAssistantPipeline.run_agent_turn();前置条件:1.1;优先级:P0;验收标准:文档和任务说明旧路径为 legacy;测试要点:README 后续无冲突描述。
  • 1.3 Phase 1 提交;前置条件:1.1-1.2;优先级:P0;验收标准:中文提交 [全双工规格补齐]...;测试要点:OpenSpec strict 和 git status。

2. AudioHub 与 WebRTC APM

  • 2.1 实现 AudioHub 和独立订阅;前置条件:Phase 1;优先级:P0;验收标准:多消费者不抢帧;测试要点:两个订阅读取相同 frame 序列。
  • 2.2 实现 capture/render ring buffer 溢出诊断;前置条件:2.1;优先级:P0;验收标准:容量上限、丢旧帧、事件记录;测试要点:overflow fixture。
  • 2.3 接入 APM provider 到 AudioHub;前置条件:2.1;优先级:P0;验收标准:raw capture 经过 APM 后进入 processed ring;测试要点:fake APM echo suppression。
  • 2.4 run-agent-live 启动时检查真实 APM;前置条件:2.3;优先级:P0;验收标准:required 且不可用时结构化失败;测试要点:provider unavailable test。
  • 2.5 Phase 2 提交;前置条件:2.1-2.4;优先级:P0;验收标准:中文提交 [音频底座重构]...;测试要点:compileall、相关单测。

3. Continuous VAD/STT 与打断

  • 3.1 实现 InterruptController 常驻检测;前置条件:AudioHub;优先级:P0;验收标准:speaking 中 VAD 命中触发 cancel;测试要点:latency fixture。
  • 3.2 接入 cancellation graph 到 LLM/TTS/playback;前置条件:3.1;优先级:P0;验收标准:打断取消所有 response 子任务;测试要点:幂等 cancel。
  • 3.3 实现 streaming STT worker;前置条件:AudioHub;优先级:P0;验收标准:partial/stable/final 事件;测试要点:final 进入 conversationpartial 不进上下文。
  • 3.4 打断后复用 buffered user audio;前置条件:3.1-3.3;优先级:P0;验收标准:不需要重新唤醒;测试要点:speaking -> interrupted -> listening
  • 3.5 Phase 3 提交;前置条件:3.1-3.4;优先级:P0;验收标准:中文提交 [全双工打断]...;测试要点:相关单测和 self-test 子集。

4. Streaming LLM/TTS/Playback

  • 4.1 默认启用 LLM streaming;前置条件:Phase 3;优先级:P0;验收标准:run-agent-live --check-config 显示 streaming true;测试要点:配置测试。
  • 4.2 实现 streaming TTS provider wrapper;前置条件:4.1;优先级:P0;验收标准:句子进入 TTS 后输出 PCM chunks;测试要点:fake/cosyvoice fallback。
  • 4.3 播放队列写 render reference;前置条件:4.2;优先级:P0;验收标准:播放 chunk 同步进入 APM reference;测试要点:render ring frame count。
  • 4.4 只提交已播 assistant 文本;前置条件:4.3;优先级:P0;验收标准:中途打断不写未播文本;测试要点:上下文断言。
  • 4.5 Phase 4 提交;前置条件:4.1-4.4;优先级:P0;验收标准:中文提交 [流式回复播放]...;测试要点:compileall、单测。

5. Memory 与 Tool Router

  • 5.1 将 AgentConversationManager 接入 runtime;前置条件:Phase 4;优先级:P0;验收标准:memory context 注入 LLM;测试要点:相关记忆被召回。
  • 5.2 接入 FAISS/SQLite health;前置条件:5.1;优先级:P0;验收标准:memory enabled 时检查 index;测试要点:缺失/不一致错误。
  • 5.3 ToolRouter 接入 LLM tool calls;前置条件:5.1;优先级:P0;验收标准:memory.search tool result 回注入回复;测试要点:tool call integration。
  • 5.4 高风险工具确认/拒绝;前置条件:5.3;优先级:P0;验收标准:Open Interpreter/Playwright 默认不自动执行;测试要点:高风险 fixture。
  • 5.5 Phase 5 提交;前置条件:5.1-5.4;优先级:P0;验收标准:中文提交 [Agent记忆工具]...;测试要点:memory/tool/security 单测。

6. 自我测试、文档与最终验收

  • 6.1 新增 agent-self-test;前置条件:Phase 5;优先级:P0;验收标准:三轮覆盖 STT/LLM/TTS/barge-in/memory/tool;测试要点:JSON success。
  • 6.2 新增 audio-self-test;前置条件:AudioHub/APM;优先级:P0;验收标准:输出 provider/device/echo/latency;测试要点:无 APM 时明确失败。
  • 6.3 更新 README 和 .env.example;前置条件:6.1-6.2;优先级:P0;验收标准:入口和配置无冲突;测试要点:命令示例准确。
  • 6.4 执行最终门禁;前置条件:全部实现完成;优先级:P0;验收标准:compileall、unittest、self-test、security、model、device、OpenSpec strict 全通过;测试要点:命令输出。
  • 6.5 Phase 6 提交;前置条件:6.1-6.4;优先级:P0;验收标准:中文提交 [全双工自测]...;测试要点:git status --short 为空。