三、Skills 进阶:Fork 模式与上下文控制

上一篇介绍了 Skills 的基础用法。本篇深入高级特性,让你的 Skill 更强大、更灵活。

Fork vs Inline 模式

Skill 有两种执行模式:

Inline 模式(默认)

Skill 内容注入当前对话,共享上下文:

bash 复制代码
用户: /review src/auth.ts
     │
     ▼
Skill 内容注入当前对话
     │
     ▼
Claude 在当前对话中执行
     │
     ▼
结果直接显示

特点

  • 共享对话历史
  • 共享 token 预算
  • 工具输出进入当前上下文
  • 用户可以中途干预

Fork 模式

Skill 启动独立子 Agent,隔离执行:

bash 复制代码
用户: /research "find all API endpoints"
     │
     ▼
启动子 Agent(独立上下文)
     │
     ├─► 主对话继续(可以聊天)
     │
     └─► 子 Agent 执行完毕后通知

特点

  • 独立对话历史
  • 独立 token 预算
  • 工具输出不污染主上下文
  • 用户可以继续其他对话

如何选择?

场景 推荐模式
简单操作(commit、review) Inline
复杂研究(大量搜索、多文件) Fork
不需要中途干预 Fork
需要与用户交互 Inline
工具输出很多(Grep、Read) Fork

配置 Fork 模式

在 frontmatter 中设置:

yaml 复制代码
---
name: research
description: Research a topic in the codebase
context: fork
agent: Explore
---

# Research Skill

Explore the codebase to find information about...

context : fork 启用 Fork 模式,默认 inline

agent: Fork 时使用的 Agent 类型:

  • Explore:快速探索(适合研究)
  • Plan:规划实现(适合设计)
  • general-purpose:通用任务

model 属性:选择执行模型

为 Skill 指定专用模型:

yaml 复制代码
---
name: quick-fix
description: Fix simple bugs quickly
model: haiku
---

# Quick Fix

Fix the bug described in the argument...

可选值

  • opus:最强,复杂推理
  • sonnet:平衡,大多数任务
  • haiku:最快,简单任务

场景示例

Skill 类型 推荐模型
代码审查(复杂) opus
常规操作(commit) sonnet
快速搜索(Grep) haiku
规划实现(Plan) opus

effort 属性:控制投入程度

effort 决定 AI 的"思考深度":

yaml 复制代码
---
name: deep-analysis
description: Deep analysis of complex issues
effort: high
---

# Deep Analysis

Analyze the issue thoroughly...

可选值

  • low:快速、直接,最小开销
  • medium:平衡,标准实现
  • high:全面,大量测试和文档
  • max:极致推理(仅 Opus 4.6 支持)

官方描述

Level 描述
low Quick, straightforward implementation with minimal overhead
medium Balanced approach with standard implementation and testing
high Comprehensive implementation with extensive testing and documentation
max Maximum capability with deepest reasoning (Opus 4.6 only)

注意

  • max 仅在 Opus 4.6 模型上可用
  • 其他模型使用 max 会被降级为 high

hooks 属性:Skill 内置钩子

Skill 可以定义自己的 Hooks:

yaml 复制代码
---
name: deploy
description: Deploy to production
allowedTools: [Bash]
hooks:
  PreToolUse:
    - matcher: Bash
      hooks:
        - type: command
          command: 'echo "Checking deployment safety..."'
---

# Deploy Skill

Deploy the application following these steps...

Hook 在 Skill 执行期间生效,Skill 结束后失效。

files 属性:附带参考文件

内置 Skill 可以附带参考文件,供 AI 查阅:

typescript 复制代码
registerBundledSkill({
  name: 'claude-api',
  description: 'Build apps with Claude API',
  files: {
    'examples/chat.ts': '// Example chat implementation...',
    'examples/stream.ts': '// Example streaming...',
  },
  getPromptForCommand: async (args) => [...]
})

用户 Skill 不支持 files,但可以用另一种方式:在 prompt 中引用外部文件:

markdown 复制代码
---
name: api-guide
---

# API Guide

Reference the API documentation in this project:
- Read docs/api.md for general guide
- Read docs/examples.md for code examples

完整示例:Fork 模式研究 Skill

markdown 复制代码
---
name: investigate
description: Investigate a bug or issue thoroughly
context: fork
agent: Explore
model: sonnet
effort: medium
allowedTools: [Read, Grep, Glob, WebSearch]
argumentHint: [bug description or issue]
---

# Investigation Skill

Investigate the described issue systematically.

## Steps

1. **Understand the Issue**: Parse the user's description to identify:
   - Error messages or symptoms
   - Affected components or files
   - When it occurs (trigger conditions)

2. **Search Evidence**:
   - Grep for error messages in logs
   - Grep for related function names
   - Glob to find potentially affected files

3. **Analyze Code**:
   - Read relevant files
   - Trace the execution path
   - Identify potential root causes

4. **Web Research** (if needed):
   - Search for similar issues online
   - Check framework/library documentation

5. **Report Findings**:
   - Summarize root cause
   - List evidence with file:line references
   - Suggest potential fixes

## Output Format

Provide a structured report:
- **Summary**: One paragraph overview
- **Root Cause**: Most likely explanation
- **Evidence**: List of findings
- **Recommendations**: Suggested fixes

使用:

vbnet 复制代码
/investigate login fails with 500 error after deploy

Fork 模式下,主对话可以继续,研究完成后收到通知。

最佳实践

1. Fork 用于隔离大量输出

arduino 复制代码
// ❌ Inline:大量 Grep 输出污染主上下文
用户: /search "function.*auth"
     │
     ▼
主对话充满 500 行 grep 结果

// ✅ Fork:输出隔离
用户: /search "function.*auth"
     │
     ├─► 主对话继续聊天
     │
     └─► 子 Agent 完成后返回摘要

2. 模型选择考虑成本

  • 简单任务用 haiku 节省成本
  • 复杂任务用 opus 保证质量
  • 大多数任务用 sonnet

3. effort 与任务复杂度匹配

任务类型 effort
快速修复 low
标准功能 medium
关键模块 high
极难问题 max (Opus 4.6)

4. allowedTools 防止"越权"

yaml 复制代码
# 只允许读取,不允许修改
allowedTools: [Read, Grep, Glob]

# 只允许 Bash,限制危险操作
allowedTools: [Bash]

下一步

下一篇将介绍 Hooks 入门:

  • 24 种 Hook 事件
  • 配置格式
  • 简单 Hook 示例

本篇要点

  1. context: fork 启动独立子 Agent
  2. agent 指定 Fork 时的 Agent 类型
  3. model 选择执行模型(opus/sonnet/haiku)
  4. effort 控制思考深度(low/medium/high/max)
  5. hooks 为 Skill 定义内置钩子
  6. Fork 模式适合大量输出、不需要中途干预的任务
相关推荐
爱摸鱼的打工仔1 小时前
【VLLM启动大模型共享内存不足-AI知识点】
人工智能
初心未改HD1 小时前
深度学习之正则化技术详解
人工智能·深度学习
闵孚龙1 小时前
Claude Code CLAUDE.md 用户指令覆盖层全解析:AI Agent 记忆系统、上下文工程、规则分层、团队协作与安全治理
人工智能·安全
X54先生(人文科技)1 小时前
《元创力》纪实录·卷宗2.1 观测续篇试纸:当“社会性死亡”的叙事进入审核队列
人工智能·开源·ai写作·零知识证明
Hector_zh1 小时前
逐浪 · 第七篇:Trae-SOLO 多端协同 —— 从安装到完成任务的完整流程
人工智能·trae
189228048611 小时前
NV301固态MT29F32T08GWLBHD6-QJES:B
大数据·服务器·人工智能·科技·缓存
木雷坞1 小时前
模型评测 Job 卡住:从 PodGroup 到镜像预检的排查记录
人工智能
大模型推理1 小时前
Nano-vLLM 源码解读 - 8. Chunked Prefill
人工智能
zh25261 小时前
深入 OpenViking:字节开源的 Agent 上下文数据库,解决了5 个问题
人工智能·开源