编辑
2026-03-31
技术
00
请注意,本文编写于 102 天前,最后修改于 102 天前,其中某些信息可能已经过时。

目录

Harness AutoExecutor V2 调研报告
一、关键发现
sessions_send 可以主动询问 ✅
subagents steer 可以干预 ✅
二、OpenAI Harness Engineering 理念
关键经验
端到端自主流程
三、AutoExecutor V2 设计
新执行流程
三层状态同步
定时任务设计
四、代码示例
主动询问进度
传递评审消息
干预卡住 subagent
五、对比 OpenAI 与当前实现
六、建议配置
Cron 任务
A2A 配置

Harness AutoExecutor V2 调研报告

调研时间:2026-03-31 目的:调研 OpenClaw session 能力、学习 OpenAI Harness Engineering、设计 AutoExecutor V2


一、关键发现

sessions_send 可以主动询问 ✅

OpenClaw 的 sessions_send 支持主动询问 subagent!

sessions_send( sessionKey='agent:main:subagent

', message='请报告当前执行进度', timeoutSeconds=60 )

解决核心问题:不依赖被动等待,可定时主动询问进度。

subagents steer 可以干预 ✅

subagents 支持 steer 操作,可动态调整执行方向:

subagents( action='steer', target='agent:main:subagent

', message='你似乎卡住了,请检查并继续' )


二、OpenAI Harness Engineering 理念

核心:"Humans steer, agents execute" —— 人类掌舵,智能体执行

关键经验

经验说明
情境管理给地图不给说明书,AGENTS.md ~100行作为目录
Ralph 循环自审机制:执行→评审→响应→循环直到通过
架构约束严格边界 + 自定义 linter 机械强制执行
垃圾回收后台任务持续清理技术债务

端到端自主流程

给定提示,智能体可以:

  1. 验证代码库状态
  2. 重现漏洞并录制视频
  3. 实施修复并验证
  4. 打开 PR 回应反馈
  5. 检测修复构建故障
  6. 合并更改

三、AutoExecutor V2 设计

新执行流程

Step 1: 查询 MySQL → 找 pending 任务 Step 2: sessions_spawn → 启动 Executor Step 3: sessions_list → 查看是否在执行 Step 4: sessions_send → 主动询问进度 Step 5: 收到响应 → 更新数据表 Step 6: 执行完成 → sessions_send 传递给 Reviewer Step 7: 评审完成 → sessions_send 传递回 Executor Step 8: 循环直到通过 → 标记完成

三层状态同步

存储更新时机
文件系统progress.json每步执行后
数据表MySQL harness_*sessions_send 收到响应后
Skill固定更新规则定时巡检

定时任务设计

任务间隔功能
autoexecutor-main10分钟查询 pending 并启动 subagent
autoexecutor-query2分钟主动询问 running subagent 进度
autoexecutor-review5分钟传递评审消息
autoexecutor-health15分钟检查卡住 subagent 并干预

四、代码示例

主动询问进度

def query_subagent_progress(session_key): # 检查是否在执行 sessions = sessions_list(kinds=['subagent']) # 发送询问 result = sessions_send( sessionKey=session_key, message='请报告进度', timeoutSeconds=30 ) # 更新数据表 if result.get('response'): update_task_progress(task_id, parse_progress(result))

传递评审消息

def send_to_reviewer(executor_key, task_id): # 获取执行结果 exec_result = sessions_send(sessionKey=executor_key, ...) # 启动 Reviewer reviewer = sessions_spawn(runtime='subagent', task='评审...') # 等待评审 sessions_yield(message='等待评审完成') # 获取评审结论 review = sessions_send(sessionKey=reviewer['sessionKey'], ...)

干预卡住 subagent

def intervene_stuck(session_key): # steer 指导 subagents(action='steer', target=session_key, message='继续执行') sessions_yield(message='等待干预响应')


五、对比 OpenAI 与当前实现

维度OpenAI Codex当前 HarnessV2 改进
执行模式持续6h+单次执行持续会话
自审机制Ralph循环单向评审sessions_send传递
情境管理渐进披露大量注入简化AGENTS.md
可观测性LogQL/PromQL部分直接可读

六、建议配置

Cron 任务

harness-autoexecutor-main: 每10分钟,查询pending并启动 harness-autoexecutor-query: 每2分钟,主动询问进度 harness-autoexecutor-review: 每5分钟,传递评审消息

A2A 配置

maxPingPongTurns: 10 allowedSenders: agent

, agent:main:subagent:*


详细报告见 memory/harness-autoexecutor-v2-research.md

本文作者:lazyyoun

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!