首页 › Skills专栏 › 吴恩达 Skills 教程 › 第八章:基于 Claude Code 实现技能(Skill with Claude)

第八章:基于 Claude Code 实现技能(Skill with Claude)

​

换个视角看这一节:如果将 Skills 视为 AI 智能体的能力资产库,那么 Claude Code 便是用户向 Claude 下达指令、调控其行为的主控接口。​

​

本节的核心目标在于系统性地掌握 Claude Code 的运行机制,具体包括以下三个关键问题:​

​

🌐

任务执行闭环:Claude 在接收到用户指令后,其内部遵循怎样的工作阶段与循环逻辑?​

技能的嵌入节点:Skills 在 Claude 的工作循环中具体作用于哪些环节,如何发挥其功能?​

人机协同边界:在 Claude 自主工作的过程中,用户应在何时、以何种方式进行干预或提供补充信息?​

​

​

​

​

​

​

飞书文档 - 图片

​

49%

​

​

​

飞书文档 - 图片

​

51%

​

​

二、Claude Code 工作原理:三个阶段​

Claude Code 执行任务时会经历三个相互融合的阶段:​

上下文收集、行动采取和结果验证​

Claude Code 的任务执行分为三个循环阶段:先收集上下文(读取文件、加载技能元数据);再采取行动(调用工具,按需加载 SKILL.md 严格执行);最后验证结果(测试/检查,失败则回环迭代),直至任务完成或用户中断。​

根据您的需求进行循环调整​

•

Claude 首先通过文件系统工具进行递归或模式匹配搜索,快速定位相关代码文件、函数定义、配置项或文档片段。这一能力使其在面对大型代码库时仍能精准获取所需上下文,避免因信息缺失导致错误的修改决策。​

•

在确定修改方案后,Claude 会使用文件编辑工具(如 edit_file 或 str_replace_editor)对目标文件进行精确增删、替换或重构,所有更改均保留可追溯的编辑记录,便于用户审查与回滚。​

•

为确保改动不引入新缺陷,Claude 会主动执行项目中的测试套件(单元测试、集成测试或静态检查命令),测试结果直接作为验证阶段的输入依据:全部通过则任务闭环,若有失败则触发修正循环。​

claude进行自主工作,同时对您的输入进行回应​

Claude 在执行任务时能够自主工作,同时始终对用户的输入保持实时响应。这一智能体循环由两个核心组件驱动:模型负责推理,工具负责行动。Claude Code 充当 Claude 的智能体框架,通过提供工具、上下文管理和执行环境,将通用语言模型转变为一个具备实际编码能力的智能体。​

三、任务类型与循环的适配​

循环会根据任务需求动态调整:​

​

#yJoVWAsIHtKZ text { white-space: pre; }#yJoVWAsIHtKZ .fb0 { stroke: var(--N900-FG, 0.15); }#yJoVWAsIHtKZ .fb0 {stroke: rgba(31,35,41, 0.15)}#yJoVWAsIHtKZ .fx0 { stroke-miterlimit: 10; }#yJoVWAsIHtKZ .fx0 {stroke-miterlimit: 10}#yJoVWAsIHtKZ .fa1 { fill: rgb(187, 191, 196); }#yJoVWAsIHtKZ .fa1 {fill: rgb(187, 191, 196)}#yJoVWAsIHtKZ .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#yJoVWAsIHtKZ .fx1 {font-style: normal}#yJoVWAsIHtKZ .fx2 { text-anchor: middle; }#yJoVWAsIHtKZ .fx2 {text-anchor: middle}#yJoVWAsIHtKZ .fx3 { dominant-baseline: central; }#yJoVWAsIHtKZ .fx3 {dominant-baseline: central}#yJoVWAsIHtKZ .fx4 { stroke: none; }#yJoVWAsIHtKZ .fx4 {stroke: none}#yJoVWAsIHtKZ .fc0 { fill: var(--text-caption); }#yJoVWAsIHtKZ .fc0 {fill: #646a73}#yJoVWAsIHtKZ .fa2 { fill: var(--text-link-disabled); }#yJoVWAsIHtKZ .fa2 {fill: rgb(187, 191, 196)}#yJoVWAsIHtKZ .fa3 { fill: rgb(222, 224, 227); }#yJoVWAsIHtKZ .fa3 {fill: rgb(222, 224, 227)}#yJoVWAsIHtKZ .fa4 { fill: rgb(225, 234, 255); }#yJoVWAsIHtKZ .fa4 {fill: rgb(225, 234, 255)}#yJoVWAsIHtKZ .fa5 { fill: rgb(217, 243, 253); }#yJoVWAsIHtKZ .fa5 {fill: rgb(217, 243, 253)}#yJoVWAsIHtKZ .fa6 { fill: rgb(217, 245, 214); }#yJoVWAsIHtKZ .fa6 {fill: rgb(217, 245, 214)}#yJoVWAsIHtKZ .fx5 { font: 400 16px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#yJoVWAsIHtKZ .fx5 {font-style: normal}#yJoVWAsIHtKZ .fx6 { text-anchor: start; }#yJoVWAsIHtKZ .fx6 {text-anchor: start}#yJoVWAsIHtKZ .fx7 { dominant-baseline: alphabetic; }#yJoVWAsIHtKZ .fx7 {dominant-baseline: alphabetic}#yJoVWAsIHtKZ .fc1 { fill: rgb(0, 0, 0); }#yJoVWAsIHtKZ .fc1 {fill: rgb(0, 0, 0)}#yJoVWAsIHtKZ .fb1 { fill: var(--N900-FG, 0.15); }#yJoVWAsIHtKZ .fb1 {fill: rgba(31,35,41, 0.15)}#yJoVWAsIHtKZ .fb2 { fill: rgba(255, 255, 255, 0.16); }#yJoVWAsIHtKZ .fb2 {fill: rgba(255, 255, 255, 0.16)}#yJoVWAsIHtKZ .fb3 { fill: rgba(255, 255, 255, 0.12); }#yJoVWAsIHtKZ .fb3 {fill: rgba(255, 255, 255, 0.12)}#yJoVWAsIHtKZ .fa7 { fill: var(--bg-body); }#yJoVWAsIHtKZ .fa7 {fill: #fff}AB1234任务类型对代码库提问修复错误重构循环行为可能只停留在收集上下文阶段反复经历所有三个阶段可能涉及广泛的验证

​

四、Claude 的决策与串联能力​

•

Claude 根据从上一轮中学到的内容决定下一步需要什么​

•

将数十个操作串联起来,并在过程中进行纠正​

五、用户参与机制​

​

🌐

用户也是循环的一部分​

可以随时中断以:​

​

•

引导 Claude 走向不同方向​

•

提供额外的上下文​

•

要求它尝试不同的方法​

​

•

总结:Claude 自主工作,但对您的输入保持响应​

​

六、智能体循环的两个核心驱动组件​

​

#SyIyOpUoexdf text { white-space: pre; }#SyIyOpUoexdf .fb0 { stroke: var(--N900-FG, 0.15); }#SyIyOpUoexdf .fb0 {stroke: rgba(31,35,41, 0.15)}#SyIyOpUoexdf .fx0 { stroke-miterlimit: 10; }#SyIyOpUoexdf .fx0 {stroke-miterlimit: 10}#SyIyOpUoexdf .fa1 { fill: rgb(187, 191, 196); }#SyIyOpUoexdf .fa1 {fill: rgb(187, 191, 196)}#SyIyOpUoexdf .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#SyIyOpUoexdf .fx1 {font-style: normal}#SyIyOpUoexdf .fx2 { text-anchor: middle; }#SyIyOpUoexdf .fx2 {text-anchor: middle}#SyIyOpUoexdf .fx3 { dominant-baseline: central; }#SyIyOpUoexdf .fx3 {dominant-baseline: central}#SyIyOpUoexdf .fx4 { stroke: none; }#SyIyOpUoexdf .fx4 {stroke: none}#SyIyOpUoexdf .fc0 { fill: var(--text-caption); }#SyIyOpUoexdf .fc0 {fill: #646a73}#SyIyOpUoexdf .fa2 { fill: var(--text-link-disabled); }#SyIyOpUoexdf .fa2 {fill: rgb(187, 191, 196)}#SyIyOpUoexdf .fa3 { fill: rgb(238, 246, 198); }#SyIyOpUoexdf .fa3 {fill: rgb(238, 246, 198)}#SyIyOpUoexdf .fx5 { font: 400 16px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#SyIyOpUoexdf .fx5 {font-style: normal}#SyIyOpUoexdf .fx6 { text-anchor: start; }#SyIyOpUoexdf .fx6 {text-anchor: start}#SyIyOpUoexdf .fx7 { dominant-baseline: alphabetic; }#SyIyOpUoexdf .fx7 {dominant-baseline: alphabetic}#SyIyOpUoexdf .fc1 { fill: rgb(0, 0, 0); }#SyIyOpUoexdf .fc1 {fill: rgb(0, 0, 0)}#SyIyOpUoexdf .fb1 { fill: var(--N900-FG, 0.15); }#SyIyOpUoexdf .fb1 {fill: rgba(31,35,41, 0.15)}#SyIyOpUoexdf .fb2 { fill: rgba(255, 255, 255, 0.16); }#SyIyOpUoexdf .fb2 {fill: rgba(255, 255, 255, 0.16)}#SyIyOpUoexdf .fb3 { fill: rgba(255, 255, 255, 0.12); }#SyIyOpUoexdf .fb3 {fill: rgba(255, 255, 255, 0.12)}#SyIyOpUoexdf .fa4 { fill: var(--bg-body); }#SyIyOpUoexdf .fa4 {fill: #fff}AB123组件模型工具职责负责推理负责行动

​

七、Claude Code 的定位​

•

Claude Code 充当 Claude 的智能体框架(Agentic Framework)​

•

它提供:​

◦

工具​

◦

上下文管理​

◦

执行环境​

•

最终将语言模型转变为一个有能力的编码智能体​