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 只会删除注册记录,不会删除目录或记忆文件。

@name 把 Bot 叫进任务

在行首输入已注册名称:

@product 总结本周路线图变化

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

一条消息可以同时叫多个 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

复盘 Bot

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

@product 复盘一下

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

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

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

Bot 不是什么

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

下一步

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