跳到主要内容
OpenCorvus
← 博客

长程任务为什么需要 Harness

进度、上下文、可核对的产物,以及每一层如何配合。

文章目录

Agent Harness 是把模型变成 Agent 的运行层:循环、工具路由、上下文管理、记忆、 权限执行与故障恢复。长程能力是这整套系统的属性,不是模型单独的属性 —— 再强的模型, 放进一个会丢任务状态的 Harness 里,照样跑不彻底。

OpenCorvus 就是这样一套已经组装好、面向长程工作的 Harness。它随包提供覆盖五个主要 角色的流式 Agent 循环、70 个内置工具、87 个模型供应商的目录、可在重启后恢复的编排、 持久化的权限授权、项目与会话记忆、自动上下文压缩,以及 可检查的专家团。Agent 真正开始工作前,必须显式选择模型并配置一个可访问的供应商;目录是能力元数据,不是 隐藏的默认凭据或模型 fallback(后备路径)。

长程工作会在三个地方断,这里对每一处都给了答案:跑不彻底结果不能核对工作流永远不会变好。把多支专家团组合起来,是极长任务之所以可行的原因;让专家团 按你自己的反馈修订,是第十次运行好过第一次的原因。

而下面的每一层都是配置面:换模型、收窄工具集、收紧权限规则、替换整支专家团,或者 直接用 SDK 驱动整个 Harness。

后端运行时与桌面前端都写在这个仓库里,底下没有套第三方 Agent 引擎。这不是什么值得 炫耀的事,而是「每一层都能换掉」的前提。它同样站在大量开源项目的肩膀上 —— Bun、 AI SDK、SolidJS、Tauri 都在其中。

长程工作在哪里断

断在这里对应的机制
跑不彻底。 某一步被跳过,进程死掉,或者任务进了终态而目标只完成了一半。Requirements 产出 REQ-N 条目,每条自带验收条件与明确的非目标;专家团的工作流声明谁依赖谁。物理归属是一份只追加的租约:进程消失后,协调器会在租约到期这个确定性时间点上精确终结被遗弃的 Turn,然后才取得后继激活。每一条被接受的输入都要过同一个全序归约,其中每种状态都有名字。
结果不能稳定使用。 报告成功了,拿到的却是一份没法核对的总结。交接是带来源和精确 locator 的类型化 Artifact,读取要跨一道只暴露「此前步骤已完成产出」的因果边界。宿主独立于 Agent 的自述记录文件变更与命令结果。事实核查、完整性复核与视觉 QA 是各有 Agent 的具名阶段;已限定类别的 Work Artifact(今天是可编辑演示文稿)要真的渲染、检查并拿到校验回执,才算交付。
工作流永远不会变好。 第十次运行还在犯第一次的错,因为那次纠正随对话一起死了。把你真正想要的说给专家团,它会据此起草一次修订;你接受,回执就是撤销凭据。或者跑一次带度量的进化实验室活动。没有你的确认,什么都不会安装。

终态也不是终点。已进入 completedfailedcancelled 的任务,收到你的消息就会重开, 在一轮新的执行里继续,上一轮作为不可变事实原样保留。这里没有单独的重试或重新规划控件 —— 一个只能靠专用词汇才走得出去的状态,就是一个你用普通动作离开不了的状态。

边界是真实的:无人值守的工作只在你的运行时在线时继续,产出仍取决于所选模型、可访问的来源和 拿到的证据。详见长程工作在哪里断

随包提供

能力内置内容
模型供应商内置目录解析 87 个供应商、2,579 个模型并支持本地运行时;运行 Agent 前必须显式选择模型并配置可访问的供应商。
工具70 个内置工具,浏览器与计算机控制作为默认能力块提供。
专家团公开目录查看已内置可用的专家团和可导入的资源包。
Agent 角色五个主要角色:codingchatworkcontrolmission
聊天渠道Slack、Discord、Telegram、飞书、钉钉、企业微信、WhatsApp、Line、Signal、Matrix、Mattermost、Microsoft Teams、Google Chat。
接入界面桌面应用、带服务器发送事件(SSE)的 HTTP API,以及定时自动化。

Harness 逐层可见

每一层都随 Harness 交付,同时每一层也都是配置面。只有显式配置模型和可访问的供应商后,Agent 工作才会开始。

随包内容可替换为
Agent 循环五个主要角色运行在带类型工具结果的流式循环上。agent、提示词覆盖
工具70 个内置工具,外加模型上下文协议(MCP)服务与插件。toolsmcpplugin
模型一个内置目录包含 87 个供应商、2,579 个模型;不会隐式选择模型或凭据。modelsmall_modelprovider
上下文自动压缩与逐轮上下文预算,让长程运行始终留在窗口内。模型与预算配置
记忆项目与会话记忆,具备检索、组织与显式注入能力。instructions、记忆配置
权限每一次副作用执行前,都要经过一道持久化的允许/询问/拒绝授权。permission 规则、shell 作用域
专家团公开目录中的可检查专家团;任务锁定一个精确版本,不会静默切换。expert_squads、自行编写
持久化执行进程租约、事件日志与协调器,在重启后恢复已归属的工作。平台保证
校验完整性复核、事实核查与视觉 QA 作为具名阶段运行。验收配置
证据宿主观测独立记录文件变更与命令结果,不依赖 Agent 的自述总结。平台保证
接入界面桌面端、带 SSE 的 HTTP API、13 个聊天渠道、定时自动化。SDK、插件 API、Agent Client Protocol

核心模型

对象作用
Mission协调由多个 Task 组成的目标,并记录 Task 之间的依赖关系。
Task管理一项项目内工作、一个固定的专家团、已选工作流、相关 Session,以及生命周期决策。
Expert Squad把 Agent 阵容、指令、Skill、工具、模型上下文协议(MCP)访问和已声明的工作流打包。
Workflow声明一个 Task 要运行的 Agent 及其依赖顺序。
Artifact保存带来源信息的类型化输出或文件快照,供其他 Agent 或 Task 读取同一份结果。
宿主观察独立记录文件改动、命令结果等事实,不依赖 Agent 的文字总结。

一个 Task 选定专家团后不会中途更换;如果选了工作流,工作流也保持不变。Worker 以流式 方式发送消息和工具调用,在契约要求时发布 Artifact,并把精确的 Artifact 引用交给下游 Worker。Orchestrator 根据这些记录和宿主观察处理生命周期决策。未解决的限制和 blocker 保留在 Agent 的可见消息中。

Mission 与 Expert Squad 执行流程