操作 AO 会话和拉取请求,包括中断或恢复工作、发起评审及经确认后合并。还可截取会话浏览器画面、发送指定文件、保持主机运行或安排定期任务。
- 中断或恢复 AO 会话
- 评审或合并拉取请求
- 接收会话截图或成果文件
汇总多个 AO 主机上的会话状态,查看可合并的拉取请求和新的评审通知,也可检查会话最近的请求与回复,生成简要的每日摘要。
What AO is doing on every host: which sessions are running, waiting on the user, idle or exited, which PRs are ready to merge or got a review, and a daily digest. Read-only. Use for "status", "what's running", "what's waiting on me", "what's ready to merge", "anything stuck", and the AO daily digest routine.
实测评分 未实测
查看安装方法此技能会检查多个主机上的 AO 会话,并整理正在运行、等待用户回复、空闲或已退出的状态。它还会查找可合并的拉取请求,以及新的评审结果等通知。对于指定会话,它可以读取最近一次请求和回复,并简要概述正在进行的工作。每日摘要会按主机汇总上次摘要以来完成的工作、等待用户回复的事项、可合并的 PR,以及意外退出的会话。
想了解 AO 中正在进行的工作,或找出需要自己回复的事项时,可以使用此技能。它也适用于查看评审更新和等待合并的 PR,或在离开一段时间后快速了解项目进展。
此技能以只读方式查看 AO 状态,不会更改其中的信息。如果尚未记录主机信息,需要运行 ao-setup。保存主机信息前会征求你的同意。
本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。
AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。
不计入评分。 由 AI(OpenAI Codex)于 2026年10月29日 评估。仅供参考,安装前请同时查看原文。
安装前可以查看交给 AI 代理的指令内容。
Follow the ao-rules skill. Read-only in AO: it never marks anything read there. It keeps its own seen list in ~/.ao-grok/ on each via computer. Run on every host in the AO hosts note, in parallel, each from its via computer with the aoapi helper (set AO_REMOTE_BASE and AO_REMOTE_HEADER for remote hosts). If memory has no AO hosts note, run ao-setup first. Don't save hosts without the user's yes.
f(){ <aoapi helper>; aoapi GET 'sessions?active=true' | python3 -c '
import json,sys
for s in json.load(sys.stdin)["sessions"]:
a=s.get("activity") or {}
print("\t".join([s["id"], s.get("kind",""), a.get("state",""), str(len(s.get("prs") or [])), (s.get("displayName") or "")[:60]]))'; }; f
Columns: id, kind (orchestrator or worker), state, PR count, name. States:
| State | Say |
|---|---|
active | running |
waiting_input, blocked | waiting on you |
idle | idle: finished its turn, or not started |
exited | the agent exited; it can be resumed (ao-actions) |
For what's waiting on the user, run ao-answer "Find what's waiting": it finds sessions in waiting_input or blocked, and idle sessions whose last reply asked the user a question. Never use notifications for it. Group by host, then by project (the session id starts with the project id).
Keep the reply short enough for a phone, at most 6 lines: first what needs the user, then what's running, then one line per host with counts (for example "MacBook Pro: 25 idle, 9 exited"). Name a session only when it needs the user or is running. Leave out idle orchestrators, PR numbers and exited sessions unless asked. Report what you saw; don't guess why (a crash, a restart) unless the user asks.
f(){ <aoapi helper>
aoapi GET 'notifications?status=unresolved' | python3 -c '
import json,sys
for n in json.load(sys.stdin)["notifications"]:
if n.get("type")=="ready_to_merge": print("\t".join(["ready_to_merge", n.get("sessionId",""), n.get("prUrl",""), (n.get("title") or "")[:80]]))'
SEEN="$HOME/.ao-grok/<host name>.seen-news"; mkdir -p ~/.ao-grok; touch "$SEEN"
aoapi GET 'notifications?status=unread' | python3 -c '
import json,sys
seen=set(open(sys.argv[1]).read().split()); new=[]
for n in json.load(sys.stdin)["notifications"]:
if n.get("type") in ("review_completed","review_changes_requested","pr_merged","pr_closed_unmerged") and not n.get("resolvedAt") and n.get("id") not in seen:
new.append(n["id"]); print("\t".join([n["type"], n.get("sessionId",""), n.get("prUrl",""), (n.get("title") or "")[:80]]))
open(sys.argv[1],"a").writelines(i+"\n" for i in new)' "$SEEN"
tail -n 500 "$SEEN" > "$SEEN.tmp" && mv "$SEEN.tmp" "$SEEN"; }; f
ready_to_merge comes from the unresolved list, so a PR that was merged or changed since drops off. For "what's ready to merge", list these with the PR link, and offer the merge (ao-actions; needs the user's yes per PR).review_completed, review_changes_requested, pr_merged, pr_closed_unmerged are news. The command prints only news this bot hasn't reported before, and records it as reported, so each item appears once, in a status reply or in the digest, whichever comes first. Mention each in one line. For "what's new again" or "show all news", run it without the seen list.needs_input notifications. They can outlive the wait (the session answered or exited); section 1 is the source for what's waiting.For "what is <session> doing": find it (ask which host if the id is on two hosts), then read its last turn:
f(){ <aoapi helper>; aoapi GET "sessions/<id>/history?offset=0&limit=1" | python3 -c '
import json,sys
t=(json.load(sys.stdin).get("turns") or [{}])[0]
print("asked:", (t.get("userRequest") or "")[:500]); print("replied:", (t.get("agentResponse") or "")[-1500:])'; }; f
Summarise in two or three lines. For "catch me up on <project>", ask the project's orchestrator instead (ao-orchestrator). It has the workers' reports.
The AO daily digest routine runs this skill. Per host: what finished since the last digest (idle sessions with lastEventAt since then), what's waiting on the user, what's ready to merge, and anything exited unexpectedly. Skip quiet projects. Send nothing if nothing happened and nothing is waiting. Write the time of this digest to ~/.ao-grok/<host name>.last-digest on via and read it next time, instead of keeping it in memory.
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
操作 AO 会话和拉取请求,包括中断或恢复工作、发起评审及经确认后合并。还可截取会话浏览器画面、发送指定文件、保持主机运行或安排定期任务。
查找 AO 中等待用户回复的会话,将待答问题和待审批事项整理成选项,并把所选答复直接发送到对应会话。离开模式下也会遵循 AO 的决策规则。
启动或重启真实的 AO 桌面应用,用本地数据查看界面改动;也可组合多个拉取请求分支进行本地评审,并排查 Electron 进程、端口冲突和 preload bridge 不匹配。
将项目请求或问题发送给 AO 协调器,等待回复并转达结果。可用于启动或调整工作、了解项目进展、询问原因,以及讨论计划和后续步骤。
查阅 AO 各技能共用的主机识别、连接、任务分派、审批和秘密信息处理规则,了解如何区分本地与远程主机及其会话。
此技能可查找运行 AO 的电脑并将其登记为主机,也可按需添加没有 Grok Bot 桌面应用的远程主机、记录默认交互模式,并设置定时检查或工作日摘要。