Open-Science 子代理委派完整指南:主Agent如何持久化分发任务并自动恢复

发布时间:2026/9/17 10:13:44
Open-Science 子代理委派完整指南:主Agent如何持久化分发任务并自动恢复 Open-Science 子代理委派完整指南主Agent如何持久化分发任务并自动恢复【免费下载链接】open-scienceAIPOCH Open-Science is an open-source, local-first, model-agnostic AI research workbench for macOS, Windows, and Linux, with scientific agents, Python/R notebooks, data connectors, and reproducible provenance.项目地址: https://gitcode.com/GitHub_Trending/open/open-scienceOpen-ScienceAIPOCH Open-Science是一款开源、本地优先local-first且模型无关的 AI 科研工作台支持 macOS、Windows 和 Linux。它的核心亮点之一是**子代理委派Subagent Delegation**机制主 Agent 可以把子任务分发给多个子代理并行执行所有委派记录持久化落盘应用重启、会话中断后还能自动恢复——任务不丢、状态不乱。什么是子代理委派 普通 AI 应用里Agent 一旦中断上下文往往就丢了。Open-Science 的做法完全不同只有主 Agent 可以委派权限模型上明确规定 only the Main Agent can delegate work子代理不能再向下派单防止任务链失控。持久化记录Durable Records每个被委派的任务称为 child frame连同它的执行尝试Attempt、使用的模型快照、消息队列、待回答问题都会写入会话记录而不是只存在内存里。容量预留Capacity Reservation分发前先向执行后端预留槽位避免并发任务挤爆资源预留失败会释放资源并给出明确的容量错误。等待用户输入子代理执行中若需要向用户提问问题会被持久排队awaiting_user状态用户回答后任务自动继续而不是超时作废。对应源码入口在 src/main/delegation/durable-delegated-work.ts类型契约定义在 src/main/delegation/durable-delegated-work-contract.ts。任务分发一条任务如何落盘 ⚙️分发流程可以拆成 5 步全程带防冲突保护鉴权校验调用者角色、会话归属、源消息 ID 是否在活跃根会话内准入Admission由 delegated-work-admission.ts 解析目标代理——是复用Main Agent还是某个专家Specialist档案并校验任务输入模型快照为每个子任务固化执行模型快照保证后续恢复时用的是同一套模型配置而不是当前设置碰巧是什么写记录在准入锁保护下提交 child 记录同时检查 Stop 操作是否已经使本次准入失效启动运行分配槽位、启动运行时、订阅运行事件直到任务进入持久化终态completed / cancelled。值得注意的是幂等性同一次工具调用相同会话 相同 toolInvocationId重复触发delegate时会直接返回第一次调用的结果 Promise不会重复分发任务。恢复机制三种场景都覆盖 这是子代理委派最硬核的部分对应 src/main/delegation/ 目录下的几组关键模块场景机制相关源码应用重启会话记录从磁盘加载未完成任务标记为待恢复孤儿 Artifact 权限在重启恢复时自动撤销session-record-adapter.ts结算唤醒子任务完成后负责叫醒主 Agent 继续结算的守护逻辑delegation-settlement-wake-owner.ts消息可靠投递子代理与主 Agent 之间的消息带收件状态恢复时防止重复重放已确认的投递命令message-delivery-owner.ts继续追问Continuation给已完成的子代理发新消息会开启新的 Attempt 并复用原模型快照durable-delegated-work.ts恢复不只是把任务跑起来权限恢复子代理待审批的权限请求随记录持久化恢复后依然挂起等待用户决定见 delegated-work-permissions.ts清理保证停止会话时会批量取消运行中的子任务并尽力撤销文件写入权、释放槽位即使部分失败也会返回未确认的 Attempt 句柄提示用户用collect观察后再决策UI 投影前端通过 src/shared/delegated-work-projection.ts 读取委派记录渲染出子代理的实时状态磁盘占用统计中也单列了bg-storage-delegation存储类别见 docs/design.md。子代理背后是谁Specialist 专家体系 子代理不必都是小号主 Agent。Open-Science 内置了Specialist专家体系每个专家有独立档案profile委派时通过profileId解析内置专家注册表src/main/specialist/builtin-registry.ts专家身份与会话绑定src/main/specialist/identity.ts、session-binding.ts模型发布门槛测试确保子代理模型与运行时兼容e2e/subagent-model-release-gate.spec.ts上手建议新手怎么验证这套机制 ✅在设置中选择受认证的 Agent 后端Claude Code、OpenCode、Codex 或 CodeBuddy见 docs/npm-release.md 的发布说明在会话中让主 Agent 并行处理多个子任务观察任务面板中子代理的实时状态故意停止/重启应用再次打开会话确认子任务记录、待回答问题和权限请求都被完整恢复。如果你想深入源码建议从 durable-delegated-work.ts核心编排→ delegated-work-record-types.ts记录类型→ production-composition.ts生产组合这条路径读起再配合 docs/design.md 中的存储分类表理解整体架构。一句话总结Open-Science 的子代理委派用持久化记录 容量预留 幂等调用 结算唤醒四件套把多 Agent 协作从跑得快做到了断得掉、接得上这正是科研长任务最需要的基础设施。【免费下载链接】open-scienceAIPOCH Open-Science is an open-source, local-first, model-agnostic AI research workbench for macOS, Windows, and Linux, with scientific agents, Python/R notebooks, data connectors, and reproducible provenance.项目地址: https://gitcode.com/GitHub_Trending/open/open-science创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考