DeepCode 如何创建并管理 Agent Skills(.agents/skills 与 $skill-creator)?
【免费下载链接】DeepCode"DeepCode: Open Agentic Coding (Agent Harness & Loop Engineering & Multi-Agent Orchestration)"项目地址: https://gitcode.com/GitHub_Trending/deepc/DeepCode
在 DeepCode 里,Skill 是一份可复用的"操作手册":一个包含SKILL.md(YAML frontmatter + 说明)的文件夹,可选附带脚本和参考文件。它采用开放的 Agent-Skills 格式,为 Claude Code 或 Codex 写的 skill 可以不改直接放进 DeepCode 使用。这篇文章解决一个具体任务:为项目创建一个自定义 Skill(比如发布检查清单),并学会用内置$skill-creator、脚本和deepcode skill命令来创建、导入、启用与移除它。
Skill 放在哪里,长什么样
DeepCode 从两个规范目录发现 Skill(见 docs/guide/skills-and-memory.md):
<repo>/.agents/skills/ ← 项目级 skill,随仓库一起走 ~/.agents/skills/ ← 用户级 skill,所有项目都可用.deepcode/skills/和.claude/skills/两个目录仍然可读,属于兼容性保留路径,但只能读取、不可写。
一个 skill 的标准结构(来自内置 skill-creator 的 SKILL.md):
skill-name/ ├── SKILL.md (required) │ ├── YAML frontmatter metadata (required) │ │ ├── name: (required) │ │ └── description: (required) │ └── Markdown instructions (required) └── Bundled Resources (optional) ├── scripts/ - 可执行脚本 ├── references/ - 按需加载进上下文的参考文档 └── assets/ - 输出中直接使用的文件(模板、字体等)几个硬性规则,后面验证时会用到:
name只能用小写字母、数字和连字符,不超过 64 个字符,不能以连字符开头/结尾,不能出现连续连字符;description不超过 1024 个字符,且不能包含尖括号<>(规则见 quick_validate.py);description是 skill 的触发机制,要写清楚"做什么"以及"什么时候用";- frontmatter 除
name和description外,校验脚本还接受license、allowed-tools、metadata这几个键,出现其他键会直接判为无效。
主路径:用 $skill-creator 让 Agent 创建 skill
创建一个 skill 本身就是 DeepCode 支持的 Agent 任务。在会话中输入(release checklist换成你自己的需求描述):
› $skill-creator a skill for our release checklist这是官方文档给出的示例命令。内置的 skill-creator 位于 core/skills/builtin/skill-creator/,它会带着你走完它自己定义的六步流程:用具体例子理解需求 → 规划可复用内容(scripts/references/assets)→ 初始化 → 编辑 → 校验 → 按真实使用迭代。
其中初始化由脚本完成。脚本位于 init_skill.py,用法如下(在 skill-creator 目录下以scripts/相对路径调用,与文档中的示例一致):
scripts/init_skill.py release-checklist --path .agents/skills --resources scripts,referencesrelease-checklist:新 skill 名,需符合上面的命名规则,skill 文件夹会与其完全同名;--path:输出目录。按文档的存放约定指向.agents/skills(项目级)或~/.agents/skills(用户级),skill 才会被发现;--resources scripts,references,assets:可选,按需创建资源目录;--examples:可选,生成占位示例文件,之后需要自行替换或删除;--interface key=value:可选,传入display_name、short_description、default_prompt以生成agents/openai.yaml(面向 UI 的元数据)。
脚本会生成带 TODO 占位符的SKILL.md模板。接下来编辑SKILL.md:写 frontmatter 的name与description,正文写操作说明;如果创建了scripts/里的脚本,要实际运行一遍确认输出符合预期;用不上的占位文件删掉。
校验:quick_validate.py
开发完成后,运行校验脚本 quick_validate.py(需要环境中有 PyYAML,脚本内import yaml):
python core/skills/builtin/skill-creator/scripts/quick_validate.py .agents/skills/release-checklist它检查SKILL.md是否存在、YAML frontmatter 是否合法、name/description是否缺失、命名与长度规则是否通过。校验通过时脚本打印Skill is valid!并以退出码 0 结束;失败时打印具体原因(例如Missing 'name' in frontmatter、Unexpected key(s) in SKILL.md frontmatter: ...)并以退出码 1 结束。有失败就按提示修改后重跑,直到通过。
导入与查看:deepcode skill 命令
手动放好目录后,用 CLI 校验并原子导入(--scope可选project或user,默认project,见 cli/skill_cli.py):
deepcode skill import .agents/skills/release-checklist --scope project导入成功后命令会打印该 skill 的详情(id、来源、状态等)。日常查看与管理:
# 列出 active、shadowed、disabled 和 invalid 的全部 skill deepcode skill list deepcode skill list --json # 按名称或 ID 查看详情(含 SKILL.md 正文) deepcode skill show release-checklist # 按 ID 启用 / 禁用(--scope 选择修改哪一层配置,project 影响范围最小) deepcode skill disable <skill_id> --scope project deepcode skill enable <skill_id> --scope project # 强制重新扫描 catalog deepcode skill reloadlist的表头是STATUS / SCOPE / NAME / ID,状态不是 active 或带 error 信息时,说明该 skill 有问题,可用show查看error字段定位原因。
在会话中使用 skill
skill 创建好之后,在 DeepCode 会话中有三种用法(见 docs/guide/skills-and-memory.md):
› /skills 列出所有已发现的 skill › /skill release-checklist 为下一轮对话装载该 skill › $release-checklist this branch 在句子中直接内联调用注意 skill 只装载一轮对话:渐进式披露机制让 skill 的完整正文不会常驻每次请求的上下文,这也是官方建议把SKILL.md正文控制在 500 行以内、把细节拆到references/的原因。
移除 skill 的边界
deepcode skill remove <skill_id>只能删除受管理的.agentsskill;来自.deepcode/skills、.claude/skills的兼容目录和系统内置 skill 是只读的,不能删。该命令会真实删除目录,交互终端下会要求输入确认;在非交互环境(stdin 非 tty)中必须显式加--yes,否则报错remove requires --yes when stdin is not interactive。
deepcode skill remove <skill_id> --yesskill 本身只负责指导 Agent,文档明确说明它永远不能授予权限或绕过信任策略——涉及权限的操作仍由项目策略决定。
迭代
skill 用出真实问题后(触发时机不对、正文缺步骤、脚本有 bug),直接改SKILL.md或资源文件,重跑quick_validate.py,必要时deepcode skill reload强制刷新 catalog,再在下一个真实任务里验证效果——这就是 skill-creator 定义的"Step 6: Iterate"循环。如果希望把 skill 打包分发给其他项目,可以进一步用 docs/LOCAL_PLUGINS.md 描述的方式把它放进带校验 manifest 的插件目录。
【免费下载链接】DeepCode"DeepCode: Open Agentic Coding (Agent Harness & Loop Engineering & Multi-Agent Orchestration)"项目地址: https://gitcode.com/GitHub_Trending/deepc/DeepCode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考