用途与实际影响
这项功能怎样使用
为什么需要它
把每次追问都当成新的顶层任务容易丢失上下文,等待一个长调用又会让父任务停摆。这个产品保留真实父子线程与问题状态,让两边的进展、等待和结束都能核对,而不是用一个看起来像子代理的卡片掩盖同步调用。
举个实际例子
我可以说:“让当前GLM任务请Luna High核对这段方案,自己继续整理另一部分。它发现问题就回来问,回答后还在同一个子会话继续,最后汇总真实结论。”我看到的是持续协作的进度和结果;子任务提问时会明确等答,不会把沉默当作已经同意。
最后我会得到什么
父任务能看到获准子会话的进度、待答问题与最终结论;可以按同一个会话追问或停止。显示“已安排”只表示创建受理,不等于子任务完成。
正常时
子任务在同一真实会话里完成往返,父任务核对结果。
发现问题时
子任务提问时明确等待父任务回答,双方不会把沉默当同意。
入口不可用或证据不足时
缺明确模型许可或父子会话身份不符时停相应动作,保留原会话与失败原因。
从哪里开始
在官方 Codex 桌面当前父任务中,明确一个有界子任务及允许的 OpenAI 模型和思考档;父任务通过已接入入口协作。
需要准备什么
- 子任务目标与验收
- 本次允许的模型、档位和范围
- 父任务仍要继续的工作
从开始到拿到结果
- 1
确认子任务真的获准且能独立完成
父任务核对本次可用的模型和范围,再把可单独验收的部分交给真实子会话。
- 2
保留同一子会话
子任务启动后父任务继续其他部分;子任务提问时对应回答,再在原会话继续。
- 3
汇总真实结果
父任务核对结论、进度和停止或清理状态;许可缺失、接口不可用或仅创建受理都不说已完成。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
GLM和DeepSeek两条真实桌面父子链已接受;其他组合不自动继承关键规则与设计选择
后台协作使用官方OpenAI线程;它不是独立顶层任务、普通本地模型调用或伪造的原生子代理。
只有新建并加载本协议的父任务获得新的异步语义;旧父任务不能仅凭磁盘文件更新就被宣称已经切换。
父任务一轮回答结束、窗口暂时不再订阅和整个任务真正中止是不同状态;不能因此误杀仍在工作的子会话。
模型与思考档由当次实际许可和父/根限制决定;验收中的Luna High不是系统永久固定模型或上限。
本模块用到的名词
- thread/session(线程/会话身份)
- 由官方运行层实际返回的同一会话,连续3轮仍须是同一身份;名字相似或复制摘要不算。
- reply_to(准确回复对象)
- 只有现存待答问题才是有效对象;普通跟进不填写它,避免把新指令伪装成对旧问题的回答。
- 协作元数据
- 只记录谁属于谁、进展到哪一步、哪个问题在等待,不复制原生会话正文或建立第二份聊天历史。
专业定义
不是把一段摘要丢给新任务,而是保留同一个协作者,边工作边往返。
解决什么
防止重复创建协作者、把回复送给错误问题、父任务结束后遗留工作,或把已受理、运行中和已完成混成一个成功状态。
当前怎样实现
- openai_child一次提交完整model、reasoning_effort、task_name和message创建实际官方子thread;后续继续同一绑定,明确模型/档位,不用新线程冒充续问。默认等待1秒,可选0—30秒;返回running只证明已受理并仍在运行。
- 子会话通过openai_parent回报:非提问的进度发送后继续工作;真正提问进入待答。父任务只有回答现存问题时才使用reply_to,普通续问省略该字段。已完成消息ID不能冒充待答问题ID。
- openai_child_control提供list、status、wait、stop,只控制当前父任务拥有的子会话。stop针对当前执行轮,保留线程供未来明确继续;根任务真正终止时应收口或停止自己拥有的子工作。
- BackgroundChildLinks.cs与RpcTransport.BackgroundChildren.cs保存父子身份、阶段、事件游标和问题投递状态。CODEX_HOME/aicli-background-children只保存协作元数据,不复制提示词、答复或隐藏推理;原生线程历史拥有对话正文。
- 父任务运行中时排队,空闲时用官方thread/inject_items与实际turn身份接续。机器投递保持不可信消息属性,不能假冒本人新授权;投递结果不确定时先按原身份回读,不盲目重发副作用。
- 最多10个活动子会话;父线程一轮完成并不等于父任务已关闭,窗口取消订阅也不等于中止。明确中断或归档才按实际生命周期传播;不创建额外常驻服务或另一套任务账本。
- GLM/DeepSeek的公开工作说明与最终回答分别投影;同一模型生成的公开摘要不暴露隐藏推理,也不请第二个模型翻译。既有受保护动作仍走其精确授权与模型要求,后台协作不是例外通道。
- 受保护判断专用角色按活动保护合同分为 gpt-6-sol/high 常规与 gpt-6-astra/high 重大后果两档,均只接受agent_type/model/reasoning_effort/task_name/message五字段;wait_ms、thread_id、reply_to、fork_turns连null也不可传。Sol 遇升级条件交回原父,角色名不授予模型身份、principal(受验证的执行主体) 或实施授权。错误参数与身份分别返回可纠正代码及五字段说明,不回显私密请求、不创建子会话;旧父会话可在同一会话消费错误后纠正,不降级普通角色绕过保护。
执行流程
- 1
父任务确认本次允许的模型、思考档和有界目标
- 2
创建一个真实官方子会话并保留返回身份
- 3
父任务继续自己的工作,按需接收子进度或待答问题
- 4
准确回答该问题,或在同一子会话普通续问
- 5
核对最终结果与原目标,收口或停止确切子工作
边界
- 本页只展示已实现且Owner接受的GLM、DeepSeek桌面父任务两条链路,不承诺每个模型组合、全部工具或长时间压力场景通过。
- 这条产品路线不替父任务决定模型是否胜任;缺少真实模型许可或父/根边界时不启动,也不把普通委派意图扩大为任意供应商许可。
- 子会话的创建受理、实际启动、公开进度、正确结果与根任务结束后的清理分别验证,不用一张卡片或工具返回替代全链路证据。
- 不复制隐藏思考,不把机器消息升级为真人授权,不因为来源新增一个模型就自动扩大允许范围。
失败与恢复
- reply_to不是当前待答问题
- 返回OPENAI_CHILD_REPLY_NOT_PENDING;核对原会话状态,普通续问删除错误字段,不新建子会话伪装修复。
- 消息投递或父任务状态不确定
- 保留确切父子身份并查状态,不盲目重投、换线程或把等待写成完成。
- 父任务真正中止或归档
- 按真实生命周期处理其拥有的子执行;不因窗口隐藏或某一轮完成提前取消。
真实入口
docs/maintainer/项目设计与实施归档.md9月18日GLM与DeepSeek两条实际桌面验收及最终接受
src/AiCliProfileManager/Support/DesktopBridge/BackgroundChildLinks.cs父子身份与有界协作元数据
src/AiCliProfileManager/Support/DesktopBridge/RpcTransport.BackgroundChildren.cs异步进度、问题投递和精确控制
src/AiCliProfileManager/Support/DesktopBridge/RpcTransport.OpenAiChild.cs官方OpenAI子会话入口
如何验证
- Owner于2026-09-18接受GLM与DeepSeek父任务各自的实际桌面闭环,运行发行3b7600a159b9ccf5;七文件、已加载进程和经济路由分别留证。
- 每条链中的Luna High子会话均保持同一thread/session完成3轮,包含不重复提供原信息的上下文延续、提问回复和最终汇总;GLM链还展示了公开进度。
- GLM曾把一个非待答消息放进reply_to,被准确拒绝后改为同一子会话的普通续问成功;这证明错误可定位和修正,不是零错误声明。
- 本页仅回读这些已存在的Owner证据,没有重启桌面或运行新的云端子会话;其他Owner未提交的Gemini接入被排除。
- 6ef0e67dbff75135 的错误→纠错→五字段协议回归属旧阶段;后续 562b29bf4a6ac0af 安装启用 Sol/Astra 双档和官方模型目录连续性,2026-09-24T04:59Z 主 GUI 进程的 Bridge 路径已读回同版。协议合成响应不是真实厂商 E2E(端到端验证),新父工具 schema(数据结构) 和新分支厂商调用仍另验。
与其他模块的关系
原生桌面模块负责模型进入既有工作界面,本模块负责同一父子线程的持续协作;程序化run及Toolkit取消是独立运行合同,不共用一个假成功状态。
