SuperAPI AI 工具集

mothership

部署与运维

查看项目

更新于 10-21 21:25

技能介绍

Mothership 是一个把仓库变成“运维机器人舰队母舰”的技能。所谓母舰,就是一个跟踪整支 ops bots 舰队的仓库:记录有哪些机器人存在、每个运行在哪里、使用谁的账号、出过什么故障、以及从中总结出什么经验。可以存在多个母舰,每个只跟踪自己的舰队,互不跟踪对方的舰队。

安装方式:

npx skills add JarvusInnovations/opsbots --skill mothership

安装后,需要把 sheet 配置复制到仓库的 gitsheets 目录,并在写入任何记录之前提交(配置从已提交的树中读取):

cp .agents/skills/mothership/sheets/*.toml .gitsheets/ git add .gitsheets && git commit -m "chore(mothership): install fleet sheets"

这些配置默认把记录存放在 fleet/ 下。如果母舰把舰队记录放在别处,可以在每个配置中修改 root;例如位于更大仓库内部的母舰可能希望使用 <subdir>/fleet/...。

四类 sheet:

  • bots:一条记录代表一个 ops bot,可能是计划中、运行中或已退役。路径为 fleet/bots/<status>/<id>.md。状态体现为 bots 下的文件夹,因此“哪些在运行”就是一次目录列表。
  • hosts:一条记录代表机器人运行所在的机器或环境,以及谁在其上。路径为 fleet/hosts/<id>.toml。
  • incidents:一条记录代表某天某个机器人上发生的一次故障。路径为 fleet/incidents/<I-nnn>.md。
  • lessons:一条记录代表跨机器人归纳出的失败模式,以及什么编码了修复。路径为 fleet/lessons/<LS-nnn>.md。

读写这些记录应使用 gitsheets-axi(例如 npx -y gitsheets-axi query bots),不要手工序列化 TOML。Markdown 记录在 frontmatter 中携带状态,在正文中携带叙述。

规则:

  • 机器人记录在其状态变化时才变更。“再次看到运行中”不算变化。
  • 实例数据留在母舰中。名称、编号、主机、主体(principals)都在这里。任何回到公共 kit 的内容都是泛化写成的 lesson。
  • 每个 incident 都指向一个 lesson,或说明为什么不指向。没有 lesson 的 incident 是记录上的一个开放问题,而不是已结事项。
  • lesson 要说明什么编码了它。encoded_in 指明承载该防护的 kit 技能与版本,否则状态为 open。
  • 机器人记录上带 kit 版本。kit 列出每个已安装的 kit 技能及其版本,以便母舰看出哪些机器人落后。
  • “尚未知晓”有对应字段。每个 markdown sheet 上都有 open_question。

注册一个机器人:

使用 gitsheets-axi upsert bots,至少包含 id、name、mark、status、principal、operator、repo、surfaces、account_shape。

如果是新主机,把主机加入 hosts,并在其上列出该机器人。

在 kit 中注明它携带哪些 kit 技能(手工构建的机器人用 [])。

记录故障:

incidents:每次发生一条记录,包含 bot、occurred、kind、what it cost。

如果匹配已知模式,把 lesson 设为对应的 LS-nnn。如果不匹配,开一个 lesson 或写 open_question。

当某个 kit 技能版本承载了防护时,设置该 lesson 的 encoded_in 和 status: encoded;kit 较旧的机器人即为落后。

机制(The mechanic):

TK。mechanic 是从母舰运行的 agent,它读取机器人的仓库(绝不读取其主机用户的家目录),关联其限制与周期日志,提出修复,并开启升级 PR。它会主动读取并提出建议;只有在操作者的放行口令下,才会合并、重启或更改机器人的规则,并记录为一次 decision。其规范位于 kit 中的 specs/mothership.md。

适用场景:需要集中管理多台运维机器人、追踪其状态、主机、故障与经验教训,并希望以仓库和版本化配置方式维护这些信息的团队或项目。

限制:资料未提供关于收费、价格、平台支持范围、性能效果等方面的信息;部分字段与机制细节(如 mark、surfaces、account_shape 的具体含义)暂未提供说明。