fix: refresh delegation permissions and report Reasoner task outcomes

This commit is contained in:
Xin Wang
2026-10-24 09:27:33 +08:00
parent 7600a297b3
commit 5e0cde85e3
11 changed files with 359 additions and 20 deletions
+5 -1
View File
@@ -50,6 +50,10 @@ Speaker 使用现有 ASR → 对话 LLM → TTS 链路,负责交流、澄清
默认任务时限为 600 秒,可设置 30–7200 秒。资源配置保存时和助手绑定时都会校验模型、工具及变量引用。修改资源不会改变已创建任务的冻结配置。
Speaker 每次委派前会重新读取后端、模型、工具及 MCP Server 的有效状态和凭据;助手绑定、任务要求来源或变量声明发生变化时,需要重新连接。业务变量使用提交时的快照,指令中的系统时间沿用共享渲染器,在执行时刷新。
停用资源允许保留暂时失效的引用。若后端仍被助手绑定,新会话会因配置无效而拒绝启动;先解绑或重新启用即可。已有通话继续,但新委派会重新校验并拒绝使用停用资源。
### 内置 Reasoner
Reasoner 引用 `openai-llm` 或 `dashscope-llm` 的 LLM 模型资源。即使与 Speaker 选择同一资源,每个任务也会创建独立的模型服务、上下文和运行设置。
@@ -84,7 +88,7 @@ Pipecat 负责 Job 派发、FIFO 串行、超时和取消。`TaskService` 负责
- **并发与部署**:仅单应用进程、一个 Uvicorn worker;所有任务全局并发固定为 1。已有未结束的 OpenCode 句柄会阻止新任务提交到后端,需先核查或停止旧任务。该约束无法控制平台之外的 OpenCode 客户端。
- **截止时间**:新任务在创建时保存截止时间,覆盖排队和执行;OpenCode 重连观察或应用重启后使用剩余时间,不重新延长截止时间。迁移前没有截止时间的历史任务保留原有观察时限语义。
- **成功判定**:OpenCode 的 204 只表示接收。需要取得关联到本次 message ID 的完成消息;Reasoner 需调用明确完成控制函数。
- **成功判定**:OpenCode 的 204 只表示接收,需要取得关联到本次 message ID 的完成消息。Reasoner 通过 `complete_task(status, result)` 报告成功或失败;仅完成部分目标时标为失败并说明限制。这是执行模型的结果报告,平台没有独立核验业务目标。
- **取消**:先取消原生执行 Job,再核查对应后端。OpenCode 需 abort 后确认状态,未确认时保留「停止待确认」。Reasoner 可停止本地执行;已发出的 HTTP/MCP 请求可能已有副作用,应核查业务系统结果。
- **恢复**:OpenCode 使用已存 session/message 句柄重新观察,不重发未知提交。Reasoner 在应用重启后标为中断失败,保留记录,不自动重放可能有副作用的工具。
- **输入与目标变更**:共同支持查询、取消、回答当前待处理问题。首版不支持任意运行中 steer;修改目标时先停止,再创建新任务。