跳到正文
cccskills
免费在 GitHub 公开中文介绍

ao-orchestrator

将项目请求或问题发送给 AO 协调器,等待回复并转达结果。可用于启动或调整工作、了解项目进展、询问原因,以及讨论计划和后续步骤。

原文查看原文说明

Talk to a project's AO orchestrator: pass the user's request to it, wait for its reply and relay it. The default route for starting or changing work, "catch me up", "why", "what next" and plans. Use for "in <project>: <ask>", "tell the orchestrator ...", "catch me up on <project>", "start work on ...".

OrchestratorInc/agent-orchestrator星标 13,872(GitHub 13,872 + cccskills 0)

实测评分 未实测

查看安装方法

适用场景

  • 启动项目工作
  • 询问进度或项目概况
  • 向协调器转达变更请求
  • 讨论计划和下一步

中文介绍

功能

本技能会把用户的请求转交给项目的 AO 协调器,等待回复并将内容转达给用户。它适用于需要项目层面判断的请求,例如开始或调整工作、了解项目进展或原因,以及讨论计划和下一步。如果协调器正在处理其他任务,请求会排入它的下一轮;如果用户希望改变当前工作,请求会发送到正在进行的轮次。若回复中包含面向用户的问题,技能会展示可选项并收集用户的回答。

适用场景

需要启动由 AO 管理的项目,或向负责协调项目工作的代理询问进展、原因和下一步时,可以使用本技能。如果希望把自己的偏好传达给协调器,同时不额外加入设计判断,也适合使用。

使用示例

  • “请开始这个项目的工作。”
  • “请总结并告诉我项目目前的进展。”
  • “请把这项变更请求转达给协调器。”

注意事项

如果项目位于多台主机上,需要指定目标主机。找不到项目或项目没有协调器时,技能会请求进一步确认。发送消息属于写入操作。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
B部分不足资料说明消息属于写入且限于本次请求,但未说明审批流程。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足依赖 AO API 和辅助工具,安装细节由共用规则说明。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月29日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(1)

  • SKILL.md6.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Follow the ao-rules skill ("Who does what: orchestrator first"). Sending a message is a write: do it only for what the user asked in this turn.

1. Pick the host and project

Match the user's words against project ids on every host (aoapi GET projects). One match: use it. The same project id on two hosts (two separate projects that share a folder name): ask which host, unless the user named one or memory has a default for that project. No match: list the projects and ask.

2. Find the orchestrator

f(){ <aoapi helper>; aoapi GET "sessions?orchestratorOnly=true&active=true&project=<project>" | python3 -c '
import json,sys
for s in json.load(sys.stdin)["sessions"]: print(s["id"], (s.get("activity") or {}).get("state",""), s.get("provisionState",""))'; }; f
  • One line: that is the orchestrator. Its state tells you if it is busy (active).
  • exited: resume it first with aoapi POST "sessions/<id>/resume-agent" '{}', then go on.
  • Provision state failed: AO could not create its workspace, and messages to it fail. Read the reason with aoapi GET "sessions/<id>" (field provisionError), tell the user in plain words, and ask them to fix it in AO. Stop here.
  • No line: ask "There's no orchestrator in <project> on <host>. Start one with your request?" On yes, start it with the request as its first message (step 3's file and tag), then go to step 4. Its reply is its first turn:

Start an orchestrator

f(){ <aoapi helper>; P='<project>'; TAG="[via Grok Bot #$(date +%H%M%S)]"; F=~/.ao-grok/out/$(date +%F)-<short name>.md
  mkdir -p ~/.ao-grok/out; { printf '%s ' "$TAG"; cat <<'EOF'
<message>
EOF
  } > "$F"
  H=$(aoapi GET "projects/$P" | python3 -c 'import json,sys; d=json.load(sys.stdin); c=(d.get("project",d).get("config") or {}); print((c.get("orchestrator") or {}).get("agent") or (c.get("worker") or {}).get("agent") or "")')
  aoapi POST sessions "$(python3 -c 'import json,sys; b={"projectId":sys.argv[1],"kind":"orchestrator","mode":"chat","displayName":"Orchestrator","prompt":open(sys.argv[2]).read()}; b.update({"harness":sys.argv[3]} if sys.argv[3] else {}); print(json.dumps(b))' "$P" "$F" "$H")" | python3 -c 'import json,sys; d=json.load(sys.stdin); d=d.get("session",d); print("started", d["id"])' && echo "TAG=$TAG"; }; f

After about 10 seconds, check provisionState with aoapi GET "sessions/<new id>". If it is failed, handle it as above.

3. Send

Write the message to a file on via, then send it. The message is the user's request in their words, plus only the context from this chat the orchestrator needs. Don't add your own design choices. Start it with a tag so you can find the reply:

f(){ <aoapi helper>; O='<orchestrator id>'; TAG="[via Grok Bot #$(date +%H%M%S)]"; F=~/.ao-grok/out/$(date +%F)-<short name>.md
  mkdir -p ~/.ao-grok/out; { printf '%s ' "$TAG"; cat <<'EOF'
<message>
EOF
  } > "$F"
  B=$(python3 -c 'import json,sys; print(json.dumps({"message":open(sys.argv[1]).read(),"userAuthored":True}))' "$F")
  if aoapi POST "sessions/$O/send" "$B" >/dev/null; then echo "sent TAG=$TAG F=$F"; return 0; fi
  echo "SEND_FAILED: resuming the agent and trying once more"
  aoapi POST "sessions/$O/resume-agent" '{}' >/dev/null; sleep 5
  aoapi POST "sessions/$O/send" "$B" >/dev/null && echo "sent TAG=$TAG F=$F"; }; f

A failed send prints AO's error. If it still fails after the retry, tell the user the orchestrator isn't accepting messages and to open it in AO.

If the orchestrator was active in step 2, the message waits and runs as its own turn after the current one. Tell the user right away, in one line: "The orchestrator is busy with <what its last turn is about>. Your question is queued and runs next." Then go on to step 4.

If the user wants to change what it is doing right now ("stop that", "use X instead"), steer instead. Write the file and tag as above, then:

f(){ <aoapi helper>; O='<orchestrator id>'; F='<message file>'
  aoapi POST "sessions/$O/conversation/steer-or-send" "$(python3 -c 'import json,sys,uuid; print(json.dumps({"text":open(sys.argv[1]).read(),"clientMessageId":str(uuid.uuid4())}))' "$F")"; }; f

"outcome":"sent" means it arrived (in the running turn, or as a new turn if the orchestrator was idle). Then go to step 4.

4. Wait for the reply

Check every 10 seconds for up to 5 minutes. Done when the orchestrator is no longer active and a turn that starts with your tag has a reply:

f(){ <aoapi helper>; O='<orchestrator id>'; TAG='<tag>'
  for i in $(seq 30); do sleep 10
    st=$(aoapi GET "sessions/$O" | python3 -c 'import json,sys; d=json.load(sys.stdin); d=d.get("session",d); print((d.get("activity") or {}).get("state",""))')
    [ "$st" = active ] && continue
    aoapi GET "sessions/$O/history?offset=0&limit=5" | python3 -c '
import json,sys
for t in json.load(sys.stdin).get("turns") or []:
    if (t.get("userRequest") or "").startswith(sys.argv[1]) and t.get("agentResponse"):
        print(t["agentResponse"]); raise SystemExit(0)
raise SystemExit(1)' "$TAG" && return 0
  done; echo STILL_WORKING; }; f
  • A reply: relay it. Keep it faithful. Shorten only for a phone, and send a long reply as a file.
  • STILL_WORKING: tell the user the orchestrator is still on it, and offer: "I'll message you when it replies." On yes, create a routine that runs step 4 once every 5 minutes for that tag, reports the reply, then deletes itself.
  • The orchestrator asks the user something back: show it as a card if it gives clear options, and send the pick as a new message (step 3).

5. After

If the orchestrator started workers, list them in one line (ao-status "Sessions" for that project). Don't watch them unless the user asks. Their questions reach the user through ao-answer.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

ao-actions

免费有简介

操作 AO 会话和拉取请求,包括中断或恢复工作、发起评审及经确认后合并。还可截取会话浏览器画面、发送指定文件、保持主机运行或安排定期任务。

  • 中断或恢复 AO 会话
  • 评审或合并拉取请求
  • 接收会话截图或成果文件
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-answer

免费有简介

查找 AO 中等待用户回复的会话,将待答问题和待审批事项整理成选项,并把所选答复直接发送到对应会话。离开模式下也会遵循 AO 的决策规则。

  • 查看 AO 中等待回复的事项
  • 回答指定会话的问题
  • 批准待执行的命令或变更
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-desktop-dev

免费有简介

启动或重启真实的 AO 桌面应用,用本地数据查看界面改动;也可组合多个拉取请求分支进行本地评审,并排查 Electron 进程、端口冲突和 preload bridge 不匹配。

  • 在 AO 桌面应用中检查界面改动
  • 用隔离数据或现有本地数据测试
  • 组合多个拉取请求分支评审界面
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-rules

免费有简介

查阅 AO 各技能共用的主机识别、连接、任务分派、审批和秘密信息处理规则,了解如何区分本地与远程主机及其会话。

  • 使用 AO 技能前查看共用规则
  • 区分多台主机上的会话
  • 确认远程主机的连接方式
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-setup

免费有简介

此技能可查找运行 AO 的电脑并将其登记为主机,也可按需添加没有 Grok Bot 桌面应用的远程主机、记录默认交互模式,并设置定时检查或工作日摘要。

  • 首次使用 AO 前检查环境
  • 登记本地主机
  • 添加远程主机
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-status

免费有简介

汇总多个 AO 主机上的会话状态,查看可合并的拉取请求和新的评审通知,也可检查会话最近的请求与回复,生成简要的每日摘要。

  • 查看 AO 中运行或等待的任务
  • 查找可合并的拉取请求
  • 了解新的评审结果和 PR 动态
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

查看 OrchestratorInc 的全部技能

报告此技能的问题