OpenCockpit
Agent 面板

Bots

Bot 是有持久上下文、以普通文件保存的子代理。每个 Bot 都是一个普通目录,根目录有 BOT.md,旁边是它需要跨任务保留的上下文。用 @name 把它叫进任务,OpenCockpit 会把工作 交给独立子会话,再把结论和会话链接带回当前聊天。

Bot、Skill 还是会话?

对象提供什么怎么调用
Skill某类任务可复用的做法/skill 在当前会话,/@skill 在子代理
Bot持久身份、长期上下文和一组 Skills@name 任务
会话一次工作的运行过程与完整对话新开 tab,或由 Bot 自动创建

Skill 回答“怎么做”;Bot 回答“谁来做、已经知道什么、负责持续维护什么”。每次 Bot 工作仍然 使用独立会话,因此你可以打开完整记录,检查过程,并在那个会话里继续追问。

创建并注册 Bot

调用内置创建 Skill:

/bot 创建一个 product Bot,记住路线图决策和未完成承诺

Agent 会先确认用途、名称和目录,再创建文件。未指定位置时,默认写到 ~/.cockpit/bots/<name>/。创建完成后不会自动注册。

注册有两个入口:

  • 打开项目侧栏的 Bots,选择添加 Bot,粘贴 Bot 目录或 BOT.md 路径。
  • 在 Explorer 打开 BOT.md,选择添加为 Bot。

从面板移除 Bot 只会删除注册记录,不会删除目录或记忆文件。

内置 Bot

Cockpit 自带了几个 Bot——@cockpit-helper 通过实时读取本站来回答关于 OpenCockpit 的问题。 它们在 Bots 面板里带一个 内置 标签、没有删除按钮,不用你创建就已经可用。

内置 Bot 会在 Cockpit 第一次列出 Bot 时安装到 ~/.cockpit/bots/<name>/,那份副本就是这个 Bot:面板显示它、文件夹按钮打开它、@name 跑的也是它,你可以随意编辑。Cockpit 按文件跟踪 自己装过的内容——你没动过的文件会随升级拿到改进,你改过的文件、以及 Bot 自己写下的内容, 永远不会被覆盖。想恢复出厂就删掉这个目录,下次列出时会重新装一份。

用 @name 把 Bot 叫进任务

在行首输入已注册名称:

@product 总结本周路线图变化

OpenCockpit 会把它标记为 Bot 任务。当前 Agent 先整理一份自包含 brief,再创建独立会话并等待 结果。Bot 子会话先读取通用契约,再读自己的 BOT.md 和本次任务真正需要的上下文文件。当前 聊天中的结果会附上完整子会话链接。

普通任务以当前项目为工作目录;下面三件事——复盘、装技能、导出——则以 Bot 自己的目录为工作 目录,因为它们要动的正是那个目录。

一条消息可以同时叫多个 Bot。所有 Bot 会话会先启动再等待,因此彼此独立的任务可以并行:

@product 总结本周路线图变化

@finance 对照这些变化核对 Q3 预算

只有已注册 Bot 名称才会被识别。普通 @某人、未知名称和旧写法 @skill 都保持普通文本。 要让 Skill 在子代理中运行,请使用 /@skill。

记忆必须是有意的

Bot 文件是可以直接阅读的 Markdown,不是隐藏的向量库。普通任务默认只读。只有任务明确要求 记住、更新、纠正或删除时,Bot 才修改长期上下文:

@product 记住:移动端 onboarding 已经移到 Q4

如果没有明确要求,Bot 可以在结尾列一份 “Could be recorded”,留给你稍后确认。写入使用协作 锁:多个会话可以同时读取,但同一时间只有一个会话更新。每轮都会列出读过和改过的 Bot 文件。

记录包含确认日期、来源、权威等级和状态。用户确认的事实高于模型推断;旧结论可以被明确标记 为 superseded,而不是静默覆盖;凭证永远不会被读进 Bot 的回答或记忆。

给 Bot 装 Skill

直接对已有 Bot 说:

@product 装上 /absolute/path/to/SKILL.md

这只会在 Bot 的 Skills 表里增加一行,不复制 Skill、不注册全局斜杠命令、不安装软件,也不复制 凭证。只有任务匹配该行用途时,Bot 才读取对应 SKILL.md。

这一行记的是该 Skill 的注册名,不是你输入的路径——名字换一台机器仍然成立,分享出去的 Bot 之所以还能带着工具一起走就是靠它。没有注册过的 Skill 只能记绝对路径,Bot 会直接说明:那一行 只在这台机器上有效。

复盘 Bot

长期上下文会过期。让 Bot 自己复盘:

@product 复盘一下

复盘会检查过期与矛盾条目、悬空承诺、来源缺失、重复内容、失效 Skill、上下文规模,以及冻结在 BOT.md 里的旧机制。它把报告以唯一文件名保存到 .reviews/,返回编号清单;在你选择要应用 的行之前,不修改任何长期上下文。

可以在该 Bot 会话里直接回复编号,也可以从任意聊天继续:

@product apply .reviews/2026-09-18-143012.md rows 1 3

把 Bot 分享给别人

Bot 的工作目录不适合直接交出去:里面有这个用户的记忆、未了的承诺、复盘写下的报告,还有只在 一台机器上成立的路径。让 Bot 自己生成一份可分享的副本:

@product 导出为 ~/code/product-bot-template

它会在那个路径新建一个 Bot 目录:BOT.md、身份文件和它自己的 Skills 一起带过去,记忆、 关系、承诺、来源和项目笔记则重建为空文件。源 Bot 不受影响。Bot 长出来的、导出规则不认识的东西默认留 在原地并列进报告,你可以点名哪些值得带走——通常是那种通用到对别人也有用的经验。

报告最后会列出导出后 Skills 表引用的全部 Skill 名字。那就是这个 Bot 的完整安装需求:拿到目录 的人按这些名字各注册一份自己的 Skill,再添加这个 Bot,就能用了。他们把 Skill 放在哪儿是他们 自己的事。

目录之后怎么处理由你决定——放进自己的仓库是最常见的做法。Cockpit 不会替你发布,也不会把这 份副本注册到本机。

Bot 不是什么

  • Bot 不会自己醒来。确实需要主动追踪时,可以创建一条发送 @name 提示词的 定时任务。
  • Bot 不会自动吸收每段对话,长期记忆必须显式更新。
  • 注册不会移动、复制或上传目录;Cockpit 只保存本地路径。
  • 委派依靠 Agent 遵守 OpenCockpit 的 Bot 契约,并不是运行时强制的沙箱或权限边界。

下一步

  • 工作流 —— 在一条消息中组合 @bot、/skill 和 /@skill
  • Skills —— 创建和安装可复用的任务说明
  • 定时任务 —— 按计划触发 Bot