mcpField
W
worker

worker

github.com/yeachan-heoAgent 工作流33.7k137 次安装今天更新
代码仓库

关于 worker

worker 是供 OMX Team 工作进程使用的技能,用于指导领取任务、执行、协作和结束工作。它通过 Team API 管理任务分配与状态更新,并保留可观察的状态和完成证据。

主要功能

  1. 01要求在 OMX Team 工作进程会话中运行
  2. 02通过 Team API 确认启动
  3. 03领取首个未阻塞的任务
  4. 04通过生命周期 API 更新任务状态
  5. 05检查并确认邮箱消息

适用场景

  1. 01在 OMX Team 中领取分配的任务
  2. 02提交包含变更内容和验证结果的完成记录
  3. 03处理任务期间收到的邮箱指示

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yeachan-heo/oh-my-codex --skill worker

安装后在 Claude Code 中输入/worker确认已加载。

详细介绍

Worker 技能

适用场景

仅当会话以 OMX Team worker 身份启动时使用。行动前请阅读 AGENTS.md#durable-runtime-invariants-canonical-ssot;其中定义了持久化的所有权和协调边界。

输入和前置条件

  • 要求设置 OMX_TEAM_WORKER=<team-name>/worker-<n>。
  • 按以下顺序从第一个存在的路径解析此技能: ${CODEX_HOME:-~/.codex}/skills/worker/SKILL.md、~/.codex/skills/worker/SKILL.md、<leader_cwd>/.codex/skills/worker/SKILL.md,然后是 <leader_cwd>/skills/worker/SKILL.md。
  • 按以下顺序解析 Team 状态根目录:OMX_TEAM_STATE_ROOT、worker 身份中的 team_state_root、配置/清单中的 team_state_root、本地 .omx/state。

操作步骤

  1. 将环境拆分为 teamName 和 workerName;开始处理任务前发送启动 ACK:
    omx team api send-message --input '{"team_name":"<teamName>","from_worker":"<workerName>","to_worker":"leader-fixed","body":"ACK: <workerName> initialized"}' --json
    
  2. 阅读 <team_state_root>/team/<teamName>/workers/<workerName>/inbox.md,并领取第一个未受阻的任务分配。
  3. 阅读 <team_state_root>/team/<teamName>/tasks/task-<id>.json;API 使用不带前缀的数字 task_id(例如 "1")。
  4. 编辑前先认领任务:
    omx team api claim-task --input '{"team_name":"<teamName>","task_id":"<id>","worker":"<workerName>"}' --json
    
  5. 完成分配的工作。不要直接写入任务生命周期字段。
  6. 通过生命周期 API 将任务从 in_progress 完成或标记为失败,状态变为 completed 或 failed:
    omx team api transition-task-status --input '{"team_name":"<teamName>","task_id":"<id>","from":"in_progress","to":"completed","claim_token":"<token>","result":"<evidence>"}' --json
    
    仅当需要将受阻任务重新排入 pending 时,才使用 release-task-claim。
  7. 检查并确认收件箱消息:
    omx team api mailbox-list --input '{"team_name":"<teamName>","worker":"<workerName>"}' --json
    omx team api mailbox-mark-delivered --input '{"team_name":"<teamName>","worker":"<workerName>","message_id":"<MESSAGE_ID>"}' --json
    
  8. 状态转换后写入空闲状态: 在 <team_state_root>/team/<teamName>/workers/<workerName>/status.json 中写入 {"state":"idle","updated_at":"<ISO timestamp>"}。

退出和凭证

完成凭证需列出任务 ID、已更改的产物、执行的验证以及任何阻碍因素。ACK、任务状态转换、收件箱消息确认和状态写入都必须能通过 Team API/状态文件观察到。关闭时,遵循负责人收件箱中的指示,并在退出前写入所需的关闭确认。

评论

支持 Markdown