Skip to content

4.3 命令与引用 ​

本节目标

学会用斜杠命令执行内置命令、调用技能,把子代理由主智能体委派出去执行子任务的子智能体,可并行工作、结果汇总回主会话。Subagent/sʌbˈeɪdʒənt/带进会话,并搞懂技能是什么、怎么装、怎么写,让输入框的效率翻倍。

输入框里藏着的两个快捷键 ​

dsh 的输入框不只是打字的地方。在输入框里敲两个符号,会弹出两个快捷面板:

  • 敲 /,弹出命令与技能列表
  • 敲 @,弹出引用列表

先混个脸熟,然后逐个说。

斜杠命令:内置命令 ​

在输入框里点 + 或敲 /,弹出命令与技能列表。0.1.5-rc.2 起,菜单按使用频次分两组:

  • 添加:文件、目标、计划、反馈。新文件入口不再以单独的「回形针」按钮出现,而是合并到这条菜单的第一行
  • 指令:压缩、权限、模型、导出

每行带图标、本地化标题 + 说明(英文下首字母大写),中文界面下标题是中文、说明也是中文,但都能搜到对应的英文命令名;如果本地化标题与原名不同,还会把原命令名作为尾随别名显示出来。

命令作用章节
/plan进入计划模式(/plan off 退出,/plan 消息 顺带提交任务)4.6
/goal设定或查看当前任务的目标4.5
/model选择本会话使用的模型提供智能的大模型服务,dsh 负责调度它来思考与生成。Model/ˈmɒdl/4.1
/permission切换权限预设(沙箱限制命令文件系统效果的隔离机制,可设为只读、工作区写或完全访问。Sandbox/ˈsændbɒks/ + 审批的组合)4.4
/compact压缩较早的对话历史,给上下文腾地方4.8
/export把会话一次独立的对话记录,有自己的上下文,互不干扰。Session/ˈseʃn/日志导出成 ZIP 归档,方便备份或分享5.1
/feedback打开当前会话的反馈对话框-

斜杠命令与技能列表

敲了不在列表里的命令会被直接拒绝,不会当作普通消息发给模型提供智能的大模型服务,dsh 负责调度它来思考与生成。Model/ˈmɒdl/,所以放心试。

模糊搜索

列表支持模糊匹配:不用打全名,敲几个字母就能筛出想要的命令或技能。比如想找 compress-images,敲 /ci 就能定位到它。0.1.3-alpha.1 起,候选按命令与技能共享的子序列 ranker 排序:输入被切成空白分隔的 token,每个 token 按子序列在前缀和分段边界(-、_、空格等)拿到额外权重。所以 compimg 能同时命中 compress-images、compress-image-pdf、img-compress 这类名字。0.1.5-rc.2 起,本地化命令的中文短名(如「目标」「计划」「压缩」「权限」等)也走同一条 ranker,输入「目标」能直接定位到 /goal、输入「计划」能定位到 /plan,空格或回车之后发送时会被翻译回目录里的英文命令名执行。

添加文件现在走菜单

0.1.5-rc.2 起,单独的「回形针」按钮被合并进 + 菜单的第一行(文件)。点它或者选中它回车,会打开隐藏的文件选择器,行为跟以前拖拽或回形针点出来的窗口一致;按钮的无障碍名和 tooltip 都是「添加文件或运行命令」。

技能:agent 的"能力说明书" ​

内置命令之外,/ 菜单里剩下的就是技能告诉 agent 如何完成某类任务的说明书,在会话里用斜杠命令调用。Skill/skɪl/。技能是什么、怎么用、怎么装,这一节一次讲透。

技能是什么 ​

技能告诉 agent 如何完成某类任务的说明书,在会话里用斜杠命令调用。Skill/skɪl/是给 agent 看的"说明书":一份写好的操作指南,告诉 agent"遇到这类任务该按什么步骤做"。装好一个技能,agent 就多会一类活。

技能是可选的。不装技能,dsh 也能正常干活;装了技能,某些任务会干得又快又规范。

怎么用技能 ​

用技能最直接的方式就是斜杠命令:

  1. 输入框里点 + 或敲 /,弹出命令与技能列表
  2. 选一个技能(技能名是 kebab-case,比如 compress-images)
  3. 补一句任务描述,回车

常见的已装技能举例(不同环境不一样,以你的 / 菜单为准):

技能示例干什么
juejin-pins-publish自动发布沸点到稀土掘金社区
lark-approval / lark-attendance飞书审批agent 执行超权限操作前询问用户的机制,允许只放行这一次。Approval/əˈpruːvl/、考勤打卡
proxy代理服务器配置
remotion-best-practicesRemotion(React 视频)最佳实践

另外,agent 在干活时如果判断某个技能合适,也会主动加载技能来用(模型侧有对应的 skill 工具)。

没有固定"技能大全"

技能是开放的,不同部署装的技能不一样,所以本教程不列"必装技能"。打开你自己的 / 菜单,里面列出的就是当前环境可用的全部技能。

技能从哪来 ​

dsh 会在固定的几个目录里自动发现技能,不用手动"注册":

优先级位置谁放
高<项目根>/.dsh/skills项目级技能,只对这个项目生效
↑<项目根>/.agents/skills项目级,和团队其他工具共用
自定义目录(配置里指定)自定义
↓~/.dsh/skills($DSH_HOME)用户级,所有项目可用
低~/.agents/skills用户级,其他 AI 工具也读

dsh 会自动感知这些目录的新增、修改和删除,不用重启。

项目根怎么算

项目根是往上找第一个含 .git 的目录。没有 git 仓库时,用当前工作目录。

怎么安装技能 ​

安装技能 = 把技能文件放进上面的某个目录。dsh 没有单独的"安装按钮",主流做法有两种:

方式一:直接放目录(最常用)

一个技能就是一个文件夹,里面有一份 SKILL.md:

text
<技能目录>/
└── my-skill/
    ├── SKILL.md          # 技能主文件(必填)
    ├── scripts/          # 可选:辅助脚本
    ├── references/       # 可选:参考资料
    └── assets/           # 可选:资源文件

想给所有项目用,放到 ~/.agents/skills/ 下;只想给当前项目用,放到项目根的 .dsh/skills/ 下。

方式二:随包技能

部署方把技能打进 dsh 的 bundle 里,开箱即用。这类技能只管用,不用自己装。

管理技能 ​

技能没有统一的"市场",管理就是目录管理,所有操作即时生效、不用重启:

操作怎么做
查看/ 菜单列出全部可用技能;也可以直接浏览技能目录
停用把技能文件夹移出技能目录(比如挪到别处),它就从 / 菜单消失;想恢复再移回来
删除删掉技能文件夹,技能彻底移除
修改直接编辑 SKILL.md,保存即生效
升级用新版 SKILL.md 覆盖旧文件,或整体替换文件夹
分享把技能文件夹复制给对方(放进对方的技能目录);或放进项目 git 仓库,随项目一起分发,同事拉代码就能用

为什么没有"安装按钮"

dsh 的技能是文件即技能:发现、停用、删除、分享全靠文件操作,dsh 自动感知目录变化。这是它和"插件市场"式安装的根本区别。

随包技能(部署方打进 bundle 的)你只管用,一般不需要手动删;部分随包技能默认是关闭的,需要部署方在配置里显式启用。

技能文件长什么样 ​

SKILL.md 是技能的核心:开头一段 frontmatter 说明技能的名字和用途,正文就是给 agent 的工作指南。

markdown
---
name: compress-images
description: 把图片批量压缩到指定大小。当用户要求压缩图片、减小体积时使用。
---

# 图片压缩技能

1. 扫描目标目录下的所有 PNG/JPG/WebP 图片
2. 用支持压缩的命令逐张处理
3. 报告每张图压缩前后的体积

关键就两个字段:

  • name:技能名,kebab-case(小写字母加连字符),斜杠命令就是它
  • description:一句话说明这个技能干什么、什么时候用。agent 判断"要不要用这个技能"就靠它

正文写得越具体,agent 执行越规范。

手写一个技能试试 ​

动手做一个最简单的技能,10 秒完成:

  1. 打开用户技能目录 ~/.agents/skills/
  2. 新建文件夹 hello-dsh/
  3. 在里面创建 SKILL.md,写上:
markdown
---
name: hello-dsh
description: 用中文友好地介绍 DeepSeek Harness 是什么。
---

# 你好,dsh

向用户介绍 dsh:它是让 AI 在真实电脑上干活的智能体运行框架。
用简单的话说清楚,不超过 3 句话。
  1. 回到 dsh,输入框敲 /,就能看到 hello-dsh 出现在列表里

选中它发出去,agent 就会按你的脚本回答。这就是技能的完整生命周期:写文件 → 自动发现 → 斜杠调用。

技能和插件是什么关系 ​

6.2 节讲过:技能是"说明书",插件可插拔的功能模块,dsh 的一切能力都通过插件装配。Plugin/ˈplʌɡɪn/是"零件"。

  • 技能:给 agent 的指令文本(SKILL.md),告诉它怎么做
  • 插件可插拔的功能模块,dsh 的一切能力都通过插件装配。Plugin/ˈplʌɡɪn/:能力的实现单元,技能、工具、界面组件都是靠插件装配和装载的

装技能不需要写插件代码;反过来,插件可以把技能作为能力的一部分带进来。

引用:把子代理带进会话 ​

在输入框里敲 @,弹出引用面板:

引用面板

引用的作用是把某个东西"点名"出来,让它参与这次对话。可以引用的是子代理由主智能体委派出去执行子任务的子智能体,可并行工作、结果汇总回主会话。Subagent/sʌbˈeɪdʒənt/和插件 id:

能引用的说明
子代理把子代理点名进会话一次独立的对话记录,有自己的上下文,互不干扰。Session/ˈseʃn/协同(4.7 节讲)
插件 id按插件的标识引用某个插件

为什么 @ 里经常是空的 ​

很多新手敲 @ 后列表是空的,以为功能坏了。其实这是正常的:

@ 面板只列出当前正在运行的子代理。新开的会话还没有任何子代理,所以列表是空的;只有子代理正在跑的时候,@ 里才会出现它。

子代理不是从 @ 里"选"出来的,而是让 agent 委派出来的。想用子代理,直接在输入框里说:

  • "用子代理由主智能体委派出去执行子任务的子智能体,可并行工作、结果汇总回主会话。Subagent/sʌbˈeɪdʒənt/并行做这三件事"
  • "委派一个子代理去查一下 XX 的文档"

agent 会调用子代理工具创建子代理并让它开始干活。创建之后它进入运行状态,这时 @ 面板里才能引用到它。

子代理在哪看

运行中的子代理在会话头部的子代理列表里管理(展开查看、发消息、打断,4.7 节细讲),不在侧边栏里。

想指定技能?

用技能就走斜杠 /,技能入口在 / 菜单里,@ 不用来引技能。@ 也不能引用文件或图片,图片用拖拽或粘贴添加(4.2 节)。

引用侧栏预览:看着选再发出去 ​

0.1.5-rc.2 起,在输入框里点 @ 引用的文件、或者以 /技能 引用的技能,候选在右侧边栏里就地预览:点开右侧边栏对应标签页就能看到文件内容或技能说明、确认是不是你想引的那个,不用先选择再后悔;加载中的占位 / 待挂载的预览也会优雅处理,不会出现「点了没反应」的卡顿。

反馈:给会话打分 ​

输入框里敲 /feedback,或者点 assistant 消息上的不喜欢(Dislike),都会打开同一个会话反馈对话框:

  • 7 个固定类目:从「回答正确」「错误使用工具」「无意义/重复」「不该拒绝」「跑题」「表述不当」「其他」里挑一个
  • 选填描述:可以再补一两句话说清具体哪一步不对
  • 提交后:右下角弹一个轻量 toast 确认;不喜欢(Like)则即时记录,不用走对话框
  • 已经记录的评分,对应按钮会变成实心标记

反馈不是 Debug 工具

反馈只用来给 dsh 团队改进产品用,不会触发回退操作或影响 agent。如果想纠正某轮的回答,直接在对话里继续发消息或者 /goal 重设目标更直接。

怎么判断该用哪个 ​

情况用哪个
想执行内置命令(计划、目标、换模型等)斜杠 /
想让它用某个技能干活斜杠 /
想召唤子代理干活直接说,让 agent 委派
想引用已经运行中的子代理@

先记住一句话:内置命令和技能走 /,召唤子代理靠说,引用运行中的子代理敲 @。

消息里看到的 / 是 chip 不是文本

0.1.3-alpha.1 起,对话流里看到的 /compress-images 这种样子其实是内嵌 chip,而不是普通文本。它是对话里实际触发过的命令或技能的可视化锚点,悬停时显示技能/命令全名,点击跳到输入框并预填该命令。重新刷新、跨会话回放也会自动还原这些 chip,不会因为是会话历史而丢样式。

常见问题 ​

问:敲 / 没弹出列表?

先确认焦点在输入框里。输入框外敲没有效果。另外列表可能需要先装过技能才丰富,没装技能时只有内置命令。

问:技能装了但 / 菜单里没出现?

先确认 SKILL.md 的路径放对了(技能目录下一级),frontmatter 里 name 和 description 没写错。再看目录有没有被自动感知(新增目录一般即时生效,偶尔等一两秒)。

问:想改技能怎么办?

直接编辑 SKILL.md 的正文或 description,dsh 会自动感知变化。

问:技能能装到别处吗?

能。在配置里指定自定义技能目录,或者用项目级目录只对单个项目生效。

小结 ​

  • 输入框的 + 菜单与 / 提示统一出一个分组的清单:添加(文件、目标、计划、反馈)、指令(压缩、权限、模型、导出),每行带图标与本地化标题;文件入口已合并到菜单,不再是单独的「回形针」按钮
  • 0.1.5-rc.2 起,本地化命令的中文短名(如「目标」「计划」「压缩」「权限」等)也走同一条模糊 ranker,空格或回车之后发送时会被翻译回目录里的英文命令名执行
  • 技能 = 文件夹 + SKILL.md,放进技能目录即被自动发现,/ 菜单直接调用
  • 0.1.5-rc.2 起,@ 引用的文件和 /技能 引用的技能在右侧边栏就地预览,确认无误再发出去
  • 敲 @ 弹出引用面板,列出正在运行的子代理(没有运行中的子代理时列表为空,正常)
  • 内置命令和技能走 /;召唤子代理靠指令让 agent 委派,引用运行中的子代理敲 @

命令和引用解锁了,下一节讲安全很重要的一块:权限agent 能执行的操作范围,由沙箱和审批策略共同决定。Permission/pərˈmɪʃn/与审批agent 执行超权限操作前询问用户的机制,允许只放行这一次。Approval/əˈpruːvl/。

发现错误?提交反馈 · 欢迎 提 PR 改进本书