feat(asr): 本地语音转写接入为一级路由 + 并行工作流合并提交

按用户指示做**一包提交**,不按工作流拆分。本提交刻意混合了多条并行线:

  · 本地 ASR 接管:audio 成为与 chat/embed/image/video 同等的路由类别
    (IsLocalRoute 单一判据、audio 健康探测、default_audio_route、
    auto 占位、GET /api/ai/routes/audio、回退云端时界面明示「音频已出网」)
  · LLM 调用层:ctx 贯穿、ToolCall/ToolSchema、EmptyCompletionError /
    TransientUpstreamError(按错误类型而非文案判重试)
  · 编排 Agent:general_assistant orchestrate/persistence/spec_driver
  · 联网搜索:internal/search(playwright)
  · 网盘:backend + 前端
  · 前端 UI:导航/路由/工作台若干页
  · 交付文档:DELIVERY.md / AR04 / 部署文档的「无 Python」表述据实改写,
    新增 eai_agentplatform-asr.service、asr.env、clonezilla-cleanup 清 ~/asr-poc

不分拆的原因:dev 早期,粒度不该打断工作节奏。且实测过——这些改动
**在编译上是同一个单元**(llm.go 的 ctx 签名变更牵动 12 个调用点,
chat_message.go 的 ctx 改动又与编排重写同处一个 hunk),拆出来的中间态编不过。
详见 TOP_CODING_RULES.md G14.5 与 bugs_and_errors.md E09。

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
eaiadmin
2026-09-26 22:21:39 +08:00
co-authored by Claude Code
parent e73169df50
commit c1af86c934
192 changed files with 18046 additions and 392 deletions
@@ -0,0 +1 @@
{"message": "你好,简单介绍一下你自己,以及你能帮我做哪些事情?","specialist_key":"general-assistant","mode":"chat","stream":false}
@@ -0,0 +1 @@
{"code":0,"data":{"message":{"role":"assistant","content":"你好!我是一个 AI 通用助手,可以帮你处理各种文字和知识类任务。\n\n我能做的事情包括:\n\n- **问答与解释**:解释概念、查资料、梳理思路\n- **写作与润色**:写文章、邮件、文案、总结、改写\n- **翻译**:中英互译及多语言翻译\n- **学习辅导**:讲题、复习、制定学习计划\n- **编程帮助**:写代码、调试、解释代码、给方案\n- **信息整理**:总结长文、提炼要点、做表格/清单\n- **联网检索**:需要实时信息时,我可以检索并标注来源,不编造数据\n\n有具体问题直接发给我就行。","timestamp":"2026-09-25 22:05:32","type":"text"},"is_plan":false,"is_expert":false,"stream":false},"error":null,"message":"success"}
+15
View File
@@ -0,0 +1,15 @@
# run_16(直答路径回归)
- 用例:`message="你好,简单介绍一下你自己,以及你能帮我做哪些事情?"`
- 意图:direct_answer(身份/能力问答,无联网、无编排信号)
- 目的:验证 ctx 贯穿 + 西南 Ensemble worker 优化后,直答路径无回归
- 结果:✅ **HTTP 200,3.6s** 返回,`is_plan=false`,纯文本结构化回答
- 时间:2026-09-25 22:05:28
## 产出观测
- 无编排产物(直接 `data.message.content` 文本);
- 回答列出了能力矩阵(问答/写作/翻译/辅导/编程/整理/联网检索);
- 直答路径不受通用助手编排器改造影响。
## 结论
直答单轮路径稳定,未受本次 ctx 贯穿与收敛优化影响。