首页 / 资讯中心 / 文章详情

一句话调起复用提示词:claude-code-from-scratch技能系统(Skills)实战教程

一句话调起复用提示词:claude-code-from-scratch技能系统(Skills)实战教程 ★ FEATURED ARTICLE
一句话调起复用提示词claude-code-from-scratch技能系统Skills实战教程【免费下载链接】claude-code-from-scratchBuild your own Claude Code from scratch. Claude Code 开源了 50 万行代码读不动用 ~5000 行 TypeScript / Python 从零复现核心架构11 章分步教程带你理解 coding agent 精髓项目地址: https://gitcode.com/gh_mirrors/cl/claude-code-from-scratchclaude-code-from-scratch用约 5000 行 TypeScript / Python 从零复现了 Claude Code 的核心架构其中的**技能系统Skills**是本期主角把一段反复使用的提示词比如读 diff 并写 commit message打包成一个 Markdown 文件之后只需输入/commit一句话就能把整套提示词调起来执行。本文将带你理解 Skills 的设计思路并手把手创建自己的第一个技能。为什么需要 Skills 技能系统日常使用 AI 编程助手时你经常会重复输入类似的话读一下 git diff帮我写一个规范的 commit message审查这个文件检查安全漏洞用 conventional commits 格式提交代码每次手打一遍既繁琐又容易前后不一致。Skills 技能系统的解法是把这些提示词存成文件像 shell 脚本一样即装即用。 官方教程称之为AI Shell 脚本——把 AI 工作流模板化一次定义反复复用。详见 docs/09-skills.md。快速上手三步创建第一个技能无需写任何代码一个技能就是一个文件。三步走第 1 步创建技能目录在项目中创建.claude/skills/commit/目录用户级可放在~/.claude/skills/。第 2 步写入 SKILL.md目录里放一个SKILL.md文件前半部分是元信息后半部分就是提示词本身。项目里自带了两个示例技能可直接参考示例一test/skills/commit/SKILL.md示例二test/skills/greet/SKILL.md第 3 步一句话调起启动 CLI 后输入/commit技能立刻生效$ mini-claude /commit feat: add the new thing运行演示不需要 API keynode steps/run.mjs 9这条命令对应仓库里的可执行场景 steps/scenarios/invoke-skill.json。SKILL.md 文件格式详解SKILL.md 由两部分组成frontmatter 元信息提示词正文。--- name: commit description: Create a git commit with a descriptive message when_to_use: When the user asks to commit changes or says commit allowed-tools: run_shell, read_file user-invocable: true --- Look at the current git diff and staged changes. Write a clear, concise commit message following conventional commits format. The users request: $ARGUMENTS各字段的作用一目了然字段作用name技能名即/name调起时的关键字description技能描述展示在系统提示词中when_to_use给模型看的触发条件模型据此判断是否自动调用allowed-tools安全边界限制该技能可用的工具白名单user-invocable设为false时用户不能手动输入只能由模型自动触发contextinline默认或fork决定执行模式解析逻辑集中在 src/skills.tsPython 版对应 python/mini_claude/skills.pyparseSkillFile负责把文件拆成元信息与模板容错处理了逗号分隔和 JSON 数组两种allowed-tools写法。两种调用方式手动 /name 与模型自动触发Skills 支持双路径调用两条路最终汇合到同一个解析函数resolveSkillPrompt()路径一用户手动调用输入以/开头的内容CLI 就会去技能目录里找同名文件。逻辑见 src/cli.ts/commit fix types → 加载 commit 技能参数 fix types 替换进模板路径二模型自动调用你只需自然地说帮我提交代码。此时系统提示词中已经列出了所有可用技能及when_to_use触发条件由 src/prompt.ts 中的buildSkillDescriptions()注入模型判断匹配后会调用内置的skill工具工具返回的是展开后的提示词文本——本质是一个元工具返回值不是数据而是指令。 双路径设计的原因手动调用保证你精确控制触发时机自动调用则让模型在你忘记技能存在时也能主动用上。模板变量让技能接收参数提示词正文中支持两个内置变量$ARGUMENTS替换为你调起技能时传入的参数。比如/commit 修复登录 bug修复登录 bug 就会被注入到模板中${CLAUDE_SKILL_DIR}替换为技能所在目录路径。这样技能可以在目录里附带模板、配置等文件提示词中引用即可替换逻辑只有几行见 src/skills.ts 的resolveSkillPrompt函数L116-L123。inline 与 fork两种执行模式模式行为适用场景inline默认提示词直接拼进当前对话简单、单轮的轻量任务fork提示词交给一个干净的子 Agent 独立执行只把结果带回主对话需要多轮工具调用的重任务如代码审查要读很多文件选 fork 的核心好处保持主对话上下文干净。子 Agent 的工具还受allowed-tools白名单约束且默认排除agent工具防止递归。实现位于 src/agent.ts 的executeSkillTool方法。技能加载优先级项目级覆盖用户级技能从两个来源加载同名时项目级优先~/.claude/skills/—— 用户级低优先级个人所有项目通用.claude/skills/—— 项目级高优先级当前项目专用会覆盖同名用户技能加载顺序写死在 python/mini_claude/skills.py 的discover_skillsL33-L49中先加载 user再加载 project用 Map 去重自然实现后者覆盖前者。解析结果还会缓存避免重复读盘。想更深入核心源码与文档清单资源路径技能系统章节教程docs/09-skills.mdTypeScript 技能实现src/skills.tsPython 技能实现python/mini_claude/skills.pyCLI 中 /name 调起逻辑src/cli.ts技能列表注入系统提示词src/prompt.ts技能示例commit / greettest/skills/fork 模式子 Agent 执行src/agent.ts常见问题 FAQQ1技能必须用代码写吗不需要。技能本体就是自然语言 Markdown会写提示词就会写技能。Q2为什么用 Markdown 而不用 JSON/YAML 存提示词因为技能的本体是大段自然语言。Markdown 正文直接就是提示词JSON 存储反而要转义换行符和引号可读性差。Q3如何验证技能被正确加载在 CLI 中输入/skills会列出所有已发现的技能及其描述输入No skills found则说明目录或文件命名有问题必须是技能名/SKILL.md的目录结构。Q4本地怎么跑起来试试git clone https://gitcode.com/gh_mirrors/cl/claude-code-from-scratch cd claude-code-from-scratch npm install npm run build node steps/run.mjs 9小结Skills 技能系统用一个 Markdown 文件解决了提示词复用问题✅ 一句话/name手动调起或让模型按when_to_use自动触发✅$ARGUMENTS参数化同一技能适配不同输入✅allowed-toolsuser-invocable提供安全与权限边界✅ inline / fork 双模式兼顾轻量任务与重型任务的上下文隔离对照真实 Claude Codemini-claude 还简化了技能来源2 个而非 6 个和 token 预算控制但核心架构完全一致——理解了这几百行源码你就掌握了 Skills 的精髓。下一章可以继续 docs/10-plan-mode.md看看先想清楚再动手的 Plan Mode。【免费下载链接】claude-code-from-scratchBuild your own Claude Code from scratch. Claude Code 开源了 50 万行代码读不动用 ~5000 行 TypeScript / Python 从零复现核心架构11 章分步教程带你理解 coding agent 精髓项目地址: https://gitcode.com/gh_mirrors/cl/claude-code-from-scratch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站