03 斜杠命令模板 本节摘要:四类扩展点里,斜杠命令(slash command)是最轻的——它是用户侧的提示词模板,输入 就展开成预设提示发给会话。本节讲清斜杠命令的本质、它和技能的根本区别(用户触发 vs 模型按需)、以及它从哪来。理解了本节,你就知道何时该用命令、何时该用技能。 一、斜杠命令是什么:用户快捷方式 斜杠命令是用户主动触发的提示模板。你输入 ,它展开成一段预设的提示,发给当前会话,就像你自己打了那段话一样。 它的价值是「快捷」——把常用的、固定的提示存成命令,下次一个 就发起,不用每次重打。
本节摘要:四类扩展点里,**斜杠命令(slash command)**是最轻的——它是用户侧的提示词模板,输入
/某命令就展开成预设提示发给会话。本节讲清斜杠命令的本质、它和技能的根本区别(用户触发 vs 模型按需)、以及它从哪来。理解了本节,你就知道何时该用命令、何时该用技能。
斜杠命令是用户主动触发的提示模板。你输入 /某命令,它展开成一段预设的提示,发给当前会话,就像你自己打了那段话一样。
你输入: /review │ ▼ 命令展开 预设提示: "请审查当前工作区的改动,重点关注潜在 bug 和改进点..." │ ▼ 发给会话(像你亲手打的) │ ▼ Agent 按这段提示干活
它的价值是「快捷」——把常用的、固定的提示存成命令,下次一个 / 就发起,不用每次重打。
OpenCode 的命令来自三个来源:
| 来源 | 说明 |
|---|---|
| 配置 + 内置 | 用户配置的命令 + OpenCode 自带的(如 init、review) |
| MCP prompts | MCP server 提供的 prompts(参数用 $1/$2 占位) |
| 技能内容 | 技能的正文也可作为命令模板 |
用户可以在配置里定义自己的命令,每个命令是一段提示模板。OpenCode 还自带几个:
init:初始化项目(生成 AGENTS.md 引导文件)review:审查当前改动MCP server 可以提供「prompts」(预设提示),这些也能作为命令用。它们的参数用 $1/$2 占位,调用时填入。
技能的正文(第 02 节)也能作为命令模板——这把「技能」和「命令」连起来了:一个技能既能被模型按需读(技能用法),也能被用户主动调(命令用法)。
命令模板支持占位符(hints),让命令更灵活。最典型的是 $N(位置参数)和 $ARGUMENTS(全部参数):
命令模板: "请把 $1 重构为 $2 风格" │ ▼ 调用: /refactor auth 模块化 │ ▼ 展开后: "请把 auth 重构为 模块化 风格"
OpenCode 会从模板里提取这些占位符,作为命令的「参数提示」——调用时如果你没传够参数,会提示你补。
这是本节最该记住的对比。命令和技能都「含预设提示」,但触发方式和定位完全不同:
| 维度 | 斜杠命令 | 技能 |
|---|---|---|
| 触发者 | 用户主动(敲 /命令) |
模型按需(模型决定读) |
| 谁看 | 展开成消息发给会话(像用户打的) | 模型读取正文(给模型的指令) |
| 解决 | 用户快速发起常用任务 | 模型需要时才知道怎么做 |
| 何时用 | 你明确知道要干什么,想快捷发起 | 模型遇到相关任务时自动用 |
举例对比:
/review。用户每次提交前主动敲 /review。pdf-handler。模型遇到 PDF 任务时自动读它。💡 判断标准:「我主动想发起这个」用命令;「我希望模型遇到 X 时自动懂怎么做」用技能。一个是用户驱动,一个是模型驱动。
命令是四类扩展点里最轻的:
所以命令适合「快速把常用提示固化下来」——想重复用某段提示,做成命令,不用重写。
OpenCode 自带几个有用的命令,可作为参考:
项目自身的 .opencode/command/ 目录通常还有更多项目专用命令(如 commit、changelog、translate 等),它们是「这个项目常用的提示」被固化成命令的实例。
/命令 展开成预设提示发给会话。$N / $ARGUMENTS,让命令带参数;调用时按提示补全。四类扩展点讲了三个(插件/技能/命令),下一节讲最后一个——自定义工具,以及如何把它们组织进项目。