调研时间:2026-03-31 目的:调研 OpenClaw session 能力、学习 OpenAI Harness Engineering、设计 AutoExecutor V2
OpenClaw 的 sessions_send 支持主动询问 subagent!
sessions_send( sessionKey='agent:main:subagent
', message='请报告当前执行进度', timeoutSeconds=60 )解决核心问题:不依赖被动等待,可定时主动询问进度。
subagents 支持 steer 操作,可动态调整执行方向:
subagents( action='steer', target='agent:main:subagent
', message='你似乎卡住了,请检查并继续' )核心:"Humans steer, agents execute" —— 人类掌舵,智能体执行
| 经验 | 说明 |
|---|---|
| 情境管理 | 给地图不给说明书,AGENTS.md ~100行作为目录 |
| Ralph 循环 | 自审机制:执行→评审→响应→循环直到通过 |
| 架构约束 | 严格边界 + 自定义 linter 机械强制执行 |
| 垃圾回收 | 后台任务持续清理技术债务 |
给定提示,智能体可以:
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-main | 10分钟 | 查询 pending 并启动 subagent |
| autoexecutor-query | 2分钟 | 主动询问 running subagent 进度 |
| autoexecutor-review | 5分钟 | 传递评审消息 |
| autoexecutor-health | 15分钟 | 检查卡住 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'], ...)
def intervene_stuck(session_key): # steer 指导 subagents(action='steer', target=session_key, message='继续执行') sessions_yield(message='等待干预响应')
| 维度 | OpenAI Codex | 当前 Harness | V2 改进 |
|---|---|---|---|
| 执行模式 | 持续6h+ | 单次执行 | 持续会话 |
| 自审机制 | Ralph循环 | 单向评审 | sessions_send传递 |
| 情境管理 | 渐进披露 | 大量注入 | 简化AGENTS.md |
| 可观测性 | LogQL/PromQL | 部分 | 直接可读 |
harness-autoexecutor-main: 每10分钟,查询pending并启动 harness-autoexecutor-query: 每2分钟,主动询问进度 harness-autoexecutor-review: 每5分钟,传递评审消息
maxPingPongTurns: 10 allowedSenders: agent
, agent:main:subagent:*详细报告见 memory/harness-autoexecutor-v2-research.md
本文作者:lazyyoun
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!