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

ao-update

检查 AO 机器人已安装的技能与公开版本之间的差异,并先展示变更。获得批准后,下载有变化的技能,按公开清单校验 SHA-256 哈希,再更新技能。

原文查看原文说明

Update this bot's ao-* skills to the latest published version: check what changed, show it, and after the user's yes download each changed skill, verify its sha256 against the published manifest, and rewrite it. Use for "update Orchestrator Bot", "update the AO bot", "update my AO skills", "what's new in Orchestrator Bot".

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

实测评分 未实测

查看安装方法

适用场景

  • 查看哪些 AO 技能需要更新
  • 更新前检查变更内容
  • 批准后更新 AO 技能
  • 校验下载的技能文件

中文介绍

功能

此技能会将 AO 机器人中已安装的 ao-* 技能与公开版本进行比对,并列出已安装版本、最新版本、有变化的技能,以及公开版本中已移除的技能。你批准更新后,它会下载有变化的技能,并根据公开清单中的 SHA-256 哈希逐一校验文件。校验通过后,它会创建或改写相应技能,并记录已安装的版本。对于公开版本中已移除的技能,它会另行询问是否删除。

适用场景

想确认 AO 机器人的技能是否为最新版本、想在更新前了解变化,或想在应用文件前核实下载内容是否与公开清单一致时,可以使用此技能。

使用示例

  • “更新 AO 机器人。”
  • “查看 AO 技能有哪些变化。”
  • “告诉我 AO 机器人有什么新内容。”

注意事项

更新在 AO 机器人自己的云端环境中进行,不会更改你的电脑。改写技能前需要获得你的批准。文件从公开代码库下载,因此需要网络连接。

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

文档检查

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

安全性发送数据、删除文件、执行命令等是否有说明
A良好改写和删除均需批准;哈希不匹配时停止更改。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足需要 AO 云端环境、网络、Python 3 和 curl;导入说明不完整。

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

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

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

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

包含的文件(1)

  • SKILL.md5.2 KB

SKILL.md(原文)

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

Follow the ao-rules skill. This runs on the bot's own cloud computer (the box), not on the user's computers. It changes only this bot's ao-* skills, and only after the user's yes.

The skills are published in the public AO repository (OrchestratorInc/agent-orchestrator, folder integrations/grok-bot/) with a manifest.json that lists each skill's sha256. Every check reads the newest commit on main, then downloads the manifest and the skills from that exact commit, so the files always match each other.

1. Save the fetcher

Save it on the box if /workspace/ao-bot/fetch.py is missing or differs:

f(){ mkdir -p /workspace/ao-bot && cat > /workspace/ao-bot/fetch.py <<'PY'
import hashlib, json, os, re, subprocess, sys
REPO, DIR = "OrchestratorInc/agent-orchestrator", "integrations/grok-bot"
SRC = os.environ.get("AO_BOT_SOURCE")  # a local folder instead of GitHub, for testing
STATE = os.environ.get("AO_BOT_STATE", "/workspace/ao-bot")
def get(url):  # curl, so the system's certificates are used
    r = subprocess.run(["curl", "-fsSL", "--max-time", "30", "-H", "User-Agent: ao-bot", url], capture_output=True)
    if r.returncode: sys.exit(f"DOWNLOAD_FAILED {url} {r.stderr.decode().strip()}")
    return r.stdout
def commit():
    return "local" if SRC else json.loads(get(f"https://api.github.com/repos/{REPO}/commits/main"))["sha"]
def read(sha, path):
    return open(os.path.join(SRC, path), "rb").read() if SRC else get(f"https://raw.githubusercontent.com/{REPO}/{sha}/{DIR}/{path}")
def installed():
    p = os.path.join(STATE, "manifest.json")
    return json.load(open(p)) if os.path.exists(p) else {"version": None, "skills": []}
def split(text):  # frontmatter name and folded description, then the body
    m = re.match(r"---\nname: (.+)\ndescription: >-\n((?:  .*\n)+)---\n", text)
    if not m: sys.exit("BAD_SKILL_FILE")
    return m.group(1).strip(), " ".join(l.strip() for l in m.group(2).splitlines()), text[m.end():]
cmd = sys.argv[1] if len(sys.argv) > 1 else "check"
sha = commit(); new = json.loads(read(sha, "manifest.json")); old = installed()
was = {s["id"]: s["sha256"] for s in old["skills"]}; now = {s["id"]: s for s in new["skills"]}
changed = [i for i in now if was.get(i) != now[i]["sha256"]]
removed = [i for i in was if i not in now]
if cmd == "check":
    print(json.dumps({"installed": old["version"], "latest": new["version"], "commit": sha[:12], "changed": changed, "removed": removed}))
elif cmd == "fetch":
    out = os.path.join(STATE, "pending"); files = {}
    for i in changed:
        data = read(sha, now[i]["path"])
        if hashlib.sha256(data).hexdigest() != now[i]["sha256"]: sys.exit(f"HASH_MISMATCH {i}")
        files[i] = data.decode()
    os.makedirs(out, exist_ok=True)
    for f in os.listdir(out): os.remove(os.path.join(out, f))
    order = sorted(files, key=lambda i: (i != "ao-rules", i == "ao-update", i))
    for i in order:
        name, desc, body = split(files[i])
        json.dump({"name": name, "description": desc, "body": body}, open(os.path.join(out, i + ".json"), "w"))
    json.dump({"version": new["version"], "commit": sha, "apply": order, "manifest": new}, open(os.path.join(out, "PLAN.json"), "w"))
    print(json.dumps({"ready": order, "folder": out}))
elif cmd == "done":
    plan = json.load(open(os.path.join(STATE, "pending", "PLAN.json")))
    json.dump(plan["manifest"], open(os.path.join(STATE, "manifest.json"), "w")); print("INSTALLED", plan["version"])
PY
}; f

2. Check (read-only, no yes needed)

python3 /workspace/ao-bot/fetch.py check prints the installed and latest version, the changed skills and any removed ones. installed: null means this bot was never updated here: every skill counts as changed, which is fine. Nothing changed: say it's up to date and stop. DOWNLOAD_FAILED: GitHub or the network didn't answer (a 404 means the skills aren't published at that path yet). Say so and try again later.

3. Show and ask once

One short message: installed and latest version, which skills changed, and any removed ones. Ask "Update to <latest>?".

4. On yes

  1. python3 /workspace/ao-bot/fetch.py fetch. It downloads each changed skill, checks its sha256 against the manifest and, only if all match, writes one <id>.json per skill plus PLAN.json in /workspace/ao-bot/pending/. HASH_MISMATCH <id>: stop, change nothing, and tell the user.
  2. Go through PLAN.json apply in order (ao-rules first, ao-update last). For each, call UpdateSkill with that json's name, description and body: rewrite the existing skill of that name, or create it if it doesn't exist. A subagent can't call UpdateSkill: the main agent does this step.
  3. python3 /workspace/ao-bot/fetch.py done records the new version as installed.
  4. For each removed skill, ask "Delete <ids>?" and delete only after a separate yes.
  5. Update "Orchestrator Bot version" in memory. Finish in one line: the version, and the skills updated, created and kept.

评价

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

评论

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

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

提交后会立即公开。请勿填写邮箱、电话等个人信息。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-orchestrator

免费有简介

将项目请求或问题发送给 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日 更新

查看 OrchestratorInc 的全部技能

报告此技能的问题