OpenCockpitOpenCockpit
Agent 面板

工作流

一条消息可以不止一个命令。只要你有好几行分别以 /@ 开头,Cockpit 就把整条消息当成一条有序工作流来读 —— 每个命令行是一个步骤,Cockpit 在 AI 开工前把它们拼成一份带编号的计划。要表达「先澄清这个、再修它、然后让子代理审一遍修复」,这是最快的方式,不用分三条消息发。

它直接建立在斜杠菜单Skills 之上 —— 同样的命令,现在能串起来了。

一条消息,多个步骤

每一行只要以已知命令开头,就成为一个步骤:

标记步骤在哪里执行
/verb主会话 —— AI 在当前聊天里继续
@verb子代理(sub-agent) —— Cockpit 把这步委派给一个独立 agent,完成后回报

verb 可以是任意内置命令(/qa/fx/cr……),也可以是同名的已安装 skill。verb 以字母开头,可含字母、数字和连字符 —— 所以 /new-branch/qa 都是单个命令。

来看一条三步消息:

这是失败的测试输出:支付 webhook 在重试时返回 500。
/fx
查清楚为什么幂等键没被尊重
@cr
审一下这个修复有没有竞态和漏掉的回滚

Cockpit 会把它拼成一份有序的 prompt —— 大致是:

这是失败的测试输出:支付 webhook 在重试时返回 500。

请按以下步骤依次完成:

步骤 1(主会话执行):
请读取这个 skill 文件:
~/.cockpit/skills/fx/SKILL.md
问题:查清楚为什么幂等键没被尊重

步骤 2(用 subagent 执行):
请读取这个 skill 文件:
~/.cockpit/skills/cr/SKILL.md
问题:审一下这个修复有没有竞态和漏掉的回滚

你写四行;AI 收到一份按序推进的结构化计划。

一条消息怎么被切成步骤

规则基于行,可预测:

  • 命令行:第一个非空白字符是 /@、后面紧跟一个已知 verb 的行。以斜杠开头但不是真命令的(/usr/local/bin@某人)会被当普通文本留着。
  • 步骤的 body:该行 verb 之后的内容,加上后续所有行,直到下一条命令行为止。空行和多段落都保留 —— 所以一个步骤想带多少上下文都行。
  • 前言(preamble):第一条命令行之前的文字,原样放在计划顶部 —— 适合把错误日志贴在这里,或为整条工作流统一交代一次目标。

主会话 vs 子代理 —— /@

  • /verb 把工作留在当前聊天。适合那些你想逐轮盯着、随时纠偏的步骤。
  • @verb 把这步交给子代理。适合自成一体的活儿 —— 一轮审查、一次探索、一段聚焦调查 —— 你想让它办完并给出小结,又不想塞满主线。

一种常见形态是「主会话里把活干了,再派个子代理来检查」:

/go
实现工单里描述的重试退避
@cr
审一下刚写的东西,看正确性和风格

内置命令与你自己的 skill,混着用

一条工作流可以自由混用内置命令和你的已安装 skill —— 它们都走同一条「读这个 SKILL.md」的路径解析。如果你装的 skill 和某个内置同名,你的 skill 优先:你写的 /cr 会盖住内置 /cr,所以你的改动始终生效。

自动补全跟着光标走

命令菜单不再只在输入框最开头触发。在任意一行开头打 /@ —— 第二行、第三行、第四行都行 —— 自动补全下拉就会为那一行弹出,边打边过滤。TabEnter 插入选中的命令。这正是让你一行一行叠命令变得顺手的关键。

什么时候它仍是单个命令

如果你的消息只是一个 /verb、没有前言、也没有 @,什么都不会变 —— 你拿到的还是原来的紧凑行为:该命令的 skill 加上你后面的文字,作为一条普通对话发出。只有当真的有工作流要跑时 —— 两个及以上命令、任意 @ 子代理步骤、或开头有前言 —— 才会出现带编号的步骤列表。

下一步

  • Skills —— 内置命令,以及如何安装你自己的
  • 消息输入 —— 消息框还能做的其他事
  • 会话管理 —— 管理多个聊天 tab