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 契约,并不是运行时强制的沙箱或权限边界。