阅读视图

发现新文章,点击刷新页面。

Claude Code 构建完全指南:十大核心功能深度解析

一、创建自定义子代理(Subagents)

1. 是什么

子代理是运行在独立上下文窗口中的专用 AI 助手。每个子代理拥有自己的系统提示、工具访问权限和权限设置。当 Claude 遇到与某个子代理描述匹配的任务时,会自动将任务委派给该子代理,子代理独立工作并返回结果。Claude Code 内置了 Explore(只读代码搜索,使用 Haiku 模型)、Plan(计划模式研究代理)和 general-purpose(全工具通用代理)等子代理,用户也可以创建自定义子代理。

2. 怎么用

创建子代理最简单的方式是在 Claude Code 中运行 /agents 命令,进入交互式界面选择"Create new agent",然后选择作用域(用户级或项目级),输入描述后由 Claude 自动生成配置。也可以手动创建 Markdown 文件,放在 .claude/agents/(项目级)或 ~/.claude/agents/(用户级)目录中:

---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. Analyze the code and provide actionable feedback.

还可以通过 CLI 标志以 JSON 传递临时子代理:

claude --agents '{ "code-reviewer": { "description": "Expert code reviewer.", "prompt": "Focus on code quality and security.", "tools": ["Read","Grep","Glob","Bash"], "model": "sonnet" } }'

3. 使用场景与痛点

子代理解决的核心痛点是主对话上下文膨胀和工具权限失控。典型场景包括:运行测试套件时大量输出占用上下文(委派给子代理后只返回摘要)、需要对代码库进行并行研究(多个子代理同时探索不同模块)、需要强制只读权限(如代码审查只允许读不允许写)、多步骤工作流的链式委派(先审查再优化),以及通过路由到 Haiku 模型来控制 Token 成本。

4. 使用示例

入门示例——只读代码审查器:

---
name: code-reviewer
description: Expert code review specialist. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---
You are a senior code reviewer. Run git diff, focus on modified files, check for readability, error handling, security, and test coverage. Organize feedback by priority: Critical, Warnings, Suggestions.

使用时只需说:"Use the code-reviewer subagent to look at my recent changes."

进阶示例——带持久化记忆的调试器:

---
name: debugger
description: Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.
tools: Read, Edit, Bash, Grep, Glob
memory: user
---
You are an expert debugger. Capture error messages, identify reproduction steps, isolate failure location, implement minimal fix, verify solution. Before starting, consult your memory for patterns you've seen before. After fixing, save what you learned.

记忆功能使调试器跨会话积累知识——它会记住之前遇到的 bug 模式和修复策略,随着使用越来越高效。

高级最佳实践——带 Hook 验证的数据库查询代理:

---
name: db-reader
description: Execute read-only database queries. Use when analyzing data or generating reports.
tools: Bash
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-readonly-query.sh"
---
You are a database analyst with read-only access. Execute SELECT queries only.

配合验证脚本,通过 Hook 在每个 Bash 命令执行前检查是否包含 INSERT/UPDATE/DELETE 等写操作,退出码 2 阻止执行。这是"工具级允许、操作级限制"的精细控制模式。其他高级实践包括:使用 skills 字段预加载团队编码规范、用 isolation: worktree 在独立 git worktree 中运行子代理避免影响主分支、用 Task(worker, researcher) 语法限制主代理只能生成特定子代理。

5. 适用角色

个人开发者: 创建用户级子代理(~/.claude/agents/)用于个人常用任务,如代码审查、调试、日志分析。推荐从 /agents 交互式界面入手,用 Haiku 模型的 Explore 子代理快速搜索代码库以节省成本。

团队开发者: 创建项目级子代理(.claude/agents/)并提交到版本控制。统一团队的代码审查标准、API 开发规范。使用 skills 字段预加载团队编码规范,确保每个成员使用的子代理行为一致。

Tech Lead / 架构师: 设计子代理体系——为不同任务领域(前端、后端、数据库、安全)创建专门的子代理,使用权限模式和工具限制确保安全边界。利用 memory: project 让子代理积累项目架构知识。

DevOps / CI 工程师: 通过 --agents CLI 标志在自动化脚本和 CI/CD 流水线中动态定义子代理,用于自动化测试、代码扫描、构建验证等。结合 bypassPermissions 模式实现全自动化执行。


二、运行代理团队(Agent Teams)

1. 是什么

代理团队是一项实验性功能,允许多个独立的 Claude Code 实例协同工作。一个会话充当"团队负责人"(Lead),协调工作、分配任务和综合结果;其他"团队成员"(Teammates)各自拥有独立的上下文窗口,可以直接相互通信、挑战彼此的发现。与子代理的关键区别是:子代理只能向主代理报告结果,而代理团队成员之间可以直接发送消息和协作。

2. 怎么用

首先需要启用实验性功能,在 settings.json 中添加:

{ "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }

然后用自然语言告诉 Claude 创建团队:

Create an agent team to review PR #142. Spawn three reviewers:
- One focused on security implications
- One checking performance impact
- One validating test coverage

Claude 会创建团队、生成共享任务列表、生成成员并协调工作。在进程内模式中用 Shift+Down 切换成员;在分屏模式中(需 tmux 或 iTerm2)每个成员有独立窗格。用 Ctrl+T 切换任务列表视图。

3. 使用场景与痛点

代理团队解决的核心痛点是单一会话的线性工作模式无法高效处理需要并行探索的复杂任务。最强场景包括:并行代码审查(安全、性能、测试覆盖各一个审查员,避免单个审查员的视角偏见)、竞争假设调试(多个成员调查不同理论并相互辩论反驳,避免锚定效应)、新功能多模块开发(每个成员负责一个独立模块不会冲突)以及跨层协调(前端、后端、测试各由不同成员负责)。

不适合的场景:顺序任务、同文件编辑、依赖关系多的工作——这些情况下单会话或子代理更高效。

4. 使用示例

入门示例——并行代码审查:

Create an agent team to review PR #142. Spawn three reviewers:
- One focused on security implications
- One checking performance impact
- One validating test coverage
Have them each review and report findings.

每个审查员从不同角度审查同一个 PR,Lead 综合所有发现。

进阶示例——竞争假设调试:

Users report the app exits after one message instead of staying connected.
Spawn 5 agent teammates to investigate different hypotheses.
Have them talk to each other to try to disprove each other's theories,
like a scientific debate. Update the findings doc with whatever consensus emerges.

辩论式结构是关键——多个独立调查者主动尝试推翻对方的理论,幸存的理论更可能是真正的根因。

高级最佳实践:

要求成员在实施前提交计划审批:

Spawn an architect teammate to refactor the authentication module.
Require plan approval before they make any changes.

成员以只读计划模式工作,提交计划后由 Lead 审批或驳回。可以通过提示影响 Lead 的判断标准,如"只批准包含测试覆盖的计划"。其他高级实践包括:使用 TeammateIdle 和 TaskCompleted Hook 实施质量门禁、保持 3-5 个成员和每人 5-6 个任务的最佳比例、给成员充足的上下文(spawn 提示中包含具体的任务细节而非依赖继承)。

5. 适用角色

个人开发者: 从研究和审查任务开始尝试——审查一个 PR、研究一个库、调查一个 bug。这些任务展示并行探索的价值,又没有并行实施的协调挑战。

团队 Lead / 项目经理: 用代理团队进行全方位的代码审查、架构评估和技术方案论证。通过设定审批流程(require plan approval)控制实施质量。

高级工程师: 用于复杂调试(竞争假设模式)、跨模块重构(每个成员负责一个模块)和大规模代码迁移(并行处理不同组件)。注意 Token 消耗——代理团队的成本随成员数线性增长。

注意: 代理团队目前是实验性功能,不建议在关键生产流程中使用。已知限制包括不支持进程内成员的会话恢复、任务状态可能滞后、每个会话只能管理一个团队。


三、创建插件(Plugins)

1. 是什么

插件是 Claude Code 的打包扩展机制,将技能、代理、钩子、MCP 服务器和 LSP 服务器封装成可分发的单元。每个插件有一个 .claude-plugin/plugin.json 清单文件定义元数据,以及按功能组织的目录结构。插件的技能使用命名空间(/plugin-name:skill-name)来避免多插件之间的冲突。

与独立配置(.claude/ 目录中的文件)相比,插件更适合需要跨项目、跨团队共享的场景——独立配置适合个人实验和项目专属定制,插件适合版本化发布和市场分发。

2. 怎么用

创建插件的步骤:

# 1. 创建插件目录和清单
mkdir -p my-plugin/.claude-plugin
# 2. 编写 plugin.json
cat > my-plugin/.claude-plugin/plugin.json << 'EOF'
{ "name": "my-plugin", "description": "My extension", "version": "1.0.0" }
EOF
# 3. 添加技能
mkdir -p my-plugin/skills/hello
cat > my-plugin/skills/hello/SKILL.md << 'EOF'
---
description: Greet the user with a friendly message
---
Greet the user warmly and ask how you can help.
EOF
# 4. 本地测试
claude --plugin-dir ./my-plugin

在 Claude Code 中运行 /my-plugin:hello 即可使用。可以用 --plugin-dir 标志同时加载多个插件进行测试。

3. 使用场景与痛点

插件解决的核心痛点是扩展功能的碎片化和不可共享。典型场景包括:团队统一工具链(所有成员通过安装同一插件获得相同的代码审查代理、提交工作流和格式化钩子)、社区分享(将自己开发的有用扩展发布到市场让其他人安装)、跨项目复用(一套检查规则不需要在每个项目中重新配置)、以及版本化管理(通过语义化版本号追踪发布和更新)。

4. 使用示例

入门示例——包含一个技能的插件:

创建一个 greeting 插件,包含一个 hello 技能。目录结构:greeting/.claude-plugin/plugin.json + greeting/skills/hello/SKILL.md。使用 claude --plugin-dir ./greeting 加载,然后运行 /greeting:hello Alex 测试。

进阶示例——包含代理、钩子和 LSP 的完整插件:

my-team-plugin/
├── .claude-plugin/
│   └── plugin.json
├── agents/
│   └── security-reviewer.md      # 安全审查代理
├── skills/
│   └── code-review/
│       └── SKILL.md               # 代码审查技能
├── hooks/
│   └── hooks.json                 # PostToolUse 自动格式化
├── .mcp.json                      # 集成 GitHub MCP 服务器
├── .lsp.json                      # TypeScript LSP 配置
└── settings.json                  # 默认设置 {"agent": "security-reviewer"}

设置 settings.json 中的 agent 字段可以让插件在启用时自动激活指定代理作为默认行为。

高级最佳实践:

从独立配置迁移到插件:将 .claude/commands/.claude/agents/.claude/skills/ 的文件复制到插件目录,将 settings.json 中的 hooks 迁移到 hooks/hooks.json,然后用 --plugin-dir 验证一切正常。发布前为插件添加 README.md,使用语义化版本号。注意:不要把 commands/agents/ 等目录放在 .claude-plugin/ 里面——只有 plugin.json 放在 .claude-plugin/ 中,其他目录在插件根目录。

5. 适用角色

个人开发者: 先用 .claude/ 目录中的独立配置快速实验,等稳定后再转为插件以跨项目复用。适合创建个人的提交工作流、代码模板等。

团队 Lead / 平台工程师: 为团队创建统一的插件,包含编码规范技能、代码审查代理和自动格式化钩子。通过项目的 .claude/settings.json 配置团队市场,让新成员加入时自动获取团队插件。

开源 / 社区贡献者: 创建通用插件(如 commit-commands、pr-review-toolkit)并发布到市场,供社区使用。遵循清晰的目录结构和版本号规范。

企业 IT 管理员: 通过托管设置(managed settings)部署组织级插件,确保合规性审查工具和安全检查在所有项目中强制启用。


四、发现和安装预构建插件

1. 是什么

插件市场(Marketplace)是帮助用户发现和安装 Claude Code 扩展的目录。市场本质上是一个包含 .claude-plugin/marketplace.json 的仓库或文件,列出了可供安装的插件集合。Anthropic 官方市场(claude-plugins-official)自动可用,包含代码智能(LSP)、外部集成(GitHub/Slack/Jira 等)、开发工作流和输出风格等类别的插件。用户也可以添加第三方市场或创建团队私有市场。

2. 怎么用

# 浏览官方市场
/plugin                             # 打开插件管理器,进入 Discover 标签

# 安装插件
/plugin install typescript-lsp@claude-plugins-official

# 添加第三方市场
/plugin marketplace add anthropics/claude-code        # GitHub 仓库
/plugin marketplace add https://gitlab.com/company/plugins.git  # Git URL
/plugin marketplace add ./my-marketplace              # 本地路径

# 管理插件
/plugin disable plugin-name@marketplace-name          # 禁用
/plugin enable plugin-name@marketplace-name           # 启用
/plugin uninstall plugin-name@marketplace-name        # 卸载

# 管理市场
/plugin marketplace list                              # 列出所有市场
/plugin marketplace update marketplace-name           # 刷新
/plugin marketplace remove marketplace-name           # 移除(会卸载其中的插件)

插件安装有三种作用域:用户(跨所有项目)、项目(通过 .claude/settings.json 共享给协作者)和本地(仅当前用户当前仓库)。

3. 使用场景与痛点

插件市场解决的核心痛点是手动配置外部工具的复杂性和团队配置不一致。安装代码智能插件后,Claude 在每次编辑后自动获得类型错误、缺失导入等诊断反馈,无需手动运行编译器。安装外部集成插件(GitHub、Jira、Slack)后,Claude 可以直接与这些服务交互,无需手动配置 MCP 服务器。团队管理员可以在 .claude/settings.json 中配置 extraKnownMarketplacesenabledPlugins,让团队成员信任仓库后自动安装指定市场和插件。

4. 使用示例

入门示例——安装代码智能插件:

/plugin install typescript-lsp@claude-plugins-official

安装后,Claude 在编辑 TypeScript 文件时自动获得类型检查——如果引入错误会立即发现并在同一轮修复。按 Ctrl+O 可以内联查看诊断信息。前提:系统需安装对应的语言服务器二进制文件(如 typescript-language-server)。

进阶示例——添加外部集成和工作流插件:

# 安装 GitHub 集成
/plugin install github@claude-plugins-official
# 安装提交工作流
/plugin install commit-commands@claude-plugins-official

之后可以直接说"Review PR #456 and suggest improvements"或使用 /commit-commands:commit 一键暂存、生成消息、创建提交。

高级最佳实践:

配置团队市场自动安装:在项目的 .claude/settings.json 中添加 extraKnownMarketplacesenabledPlugins,让团队成员加入项目时自动获取。启用自动更新以保持插件版本最新(官方市场默认启用,第三方默认禁用)。如果需要禁用 Claude Code 自动更新但保持插件更新,可设置 DISABLE_AUTOUPDATER=trueFORCE_AUTOUPDATE_PLUGINS=true

5. 适用角色

所有开发者: 安装代码智能插件是最基础的增强——给 Claude 实时的类型错误和语法问题反馈,减少编辑后需要手动编译验证的次数。

全栈开发者: 安装外部集成插件(GitHub、Slack、Figma、数据库),让 Claude 能直接从 issue 描述实现功能、集成设计稿、查询数据库。

团队管理员: 配置团队市场,确保所有成员使用相同的插件和版本。通过项目级安装(--scope project)将插件配置提交到版本控制。

初学者: 从 Discover 标签浏览可用插件,安装 learning-output-style 或 explanatory-output-style 获得更好的学习体验。


五、使用技能扩展 Claude(Skills)

1. 是什么

技能(Skills)是通过 SKILL.md 文件为 Claude 添加的指令和能力扩展。技能遵循 Agent Skills 开放标准,可以是参考知识(编码规范、API 文档),也可以是具体任务(部署流程、提交规范)。Claude 可以根据任务上下文自动加载相关技能,用户也可以通过 /skill-name 直接调用。

技能与子代理的区别:技能默认在主对话上下文中运行(共享上下文),子代理在隔离的上下文中运行。技能适合需要共享对话历史的场景,子代理适合需要隔离的场景。

2. 怎么用

创建技能目录和 SKILL.md 文件:

mkdir -p ~/.claude/skills/explain-code

编写 ~/.claude/skills/explain-code/SKILL.md

---
name: explain-code
description: Explains code with visual diagrams and analogies. Use when explaining how code works.
---
When explaining code, always include:
1. **Start with an analogy**: Compare the code to something from everyday life
2. **Draw a diagram**: Use ASCII art to show the flow
3. **Walk through the code**: Explain step-by-step
4. **Highlight a gotcha**: What's a common mistake?

两种使用方式:让 Claude 自动识别("How does this code work?")或直接调用(/explain-code src/auth/login.ts)。

3. 使用场景与痛点

技能解决的核心痛点是重复的指令输入和行为不一致。没有技能时,每次需要 Claude 按特定方式工作都要重新描述需求;有了技能,一次编写,反复使用。典型场景包括:团队编码规范强制执行(API 设计模式、错误处理模式作为参考技能自动加载)、标准化操作流程(部署、提交、PR 创建作为任务技能由用户触发)、自定义代码生成模板(组件创建、测试编写遵循固定结构),以及跨项目知识复用(个人级技能在所有项目中可用)。

4. 使用示例

入门示例——参考型技能(API 规范):

---
name: api-conventions
description: API design patterns for this codebase
---
When writing API endpoints:
- Use RESTful naming conventions
- Return consistent error formats: { "error": { "code": "...", "message": "..." } }
- Include request validation with Zod schemas
- Always add rate limiting middleware

Claude 在实现 API 时会自动加载这个技能,确保遵循团队约定。

进阶示例——带参数和动态上下文的任务技能:

---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Fix GitHub issue $ARGUMENTS following our coding standards.

## Issue context
- Issue details: !`gh issue view $0 --json title,body,labels`
- Recent commits: !`git log --oneline -5`

## Steps
1. Read the issue description
2. Implement the fix
3. Write tests
4. Create a commit

使用 /fix-issue 123 时,!command 语法预先执行 shell 命令获取实时数据,$0 替换为第一个参数。disable-model-invocation: true 确保只有用户手动触发。

高级最佳实践——在子代理中运行技能 + 可视化输出:

---
name: deep-research
description: Research a topic thoroughly
context: fork
agent: Explore
---
Research $ARGUMENTS thoroughly:
1. Find relevant files using Glob and Grep
2. Read and analyze the code
3. Summarize findings with specific file references

context: fork 使技能在隔离的 Explore 子代理中运行,不影响主对话。另一个强大模式是生成可视化输出——技能中捆绑 Python 脚本生成交互式 HTML 文件用于数据探索。其他高级实践:使用 allowed-tools 限制技能中 Claude 可用的工具、用 Skill(commit) / Skill(deploy *) 权限规则精细控制哪些技能 Claude 可以自动调用、SKILL.md 控制在 500 行内并将详细参考材料拆分到辅助文件中。

5. 适用角色

个人开发者: 创建用户级技能(~/.claude/skills/)封装个人工作习惯——自定义提交格式、代码解释风格、调试流程。用 disable-model-invocation: true 保护有副作用的操作(如部署)。

团队开发者: 创建项目级技能(.claude/skills/)并提交到版本控制,统一团队的 API 设计模式、错误处理方式、测试编写规范。新成员无需阅读长篇文档,Claude 自动遵循。

技术培训师 / 导师: 创建教学型技能(如 explain-code),让 Claude 始终用类比、图表和分步讲解的方式解释代码,帮助初级开发者学习。

平台工程师: 通过插件分发技能、通过企业托管设置强制加载组织级技能,确保合规性检查和安全扫描在所有项目中自动执行。


六、输出风格(Output Styles)

1. 是什么

输出风格直接修改 Claude Code 的系统提示,改变 Claude 的响应方式——包括格式、语调和结构。与 CLAUDE.md(作为附加的用户消息)和 --append-system-prompt(追加到系统提示末尾)不同,输出风格会关闭 Claude Code 默认系统提示中与软件工程相关的部分,用自定义指令替代。Claude Code 内置三种风格:默认(高效完成软件工程任务)、解释性(在工作中穿插教育性"洞察")、学习(协作式学做模式,用 TODO(human) 标记让用户自己写代码)。

2. 怎么用

# 交互式选择
/output-style

# 直接切换到指定风格
/output-style explanatory
/output-style learning

创建自定义输出风格,保存为 Markdown 文件到 ~/.claude/output-styles/(用户级)或 .claude/output-styles/(项目级):

---
name: My Custom Style
description: A brief description
keep-coding-instructions: false
---
# Custom Style Instructions
You are an interactive CLI tool that helps users with software engineering tasks.
[Your custom instructions...]

keep-coding-instructions: true 可以保留 Claude Code 默认的编码相关系统提示(如"用测试验证代码")。

3. 使用场景与痛点

输出风格解决的核心痛点是 Claude 的响应方式与用户需求不匹配。有些人需要简洁的执行结果,有些人需要详细的解释以学习。典型场景包括:初学者学习模式(learning 风格让 Claude 不仅写代码还要求你自己实践)、教学演示(explanatory 风格在每个实现决策后插入背景知识)、非软件工程任务(关闭默认的编码指令,让 Claude 专注于写作、分析等)、团队统一输出格式(通过项目级输出风格确保所有人看到相同格式的响应)。

4. 使用示例

入门示例——切换到学习模式:

/output-style learning

切换后,Claude 在帮你完成任务时会添加 TODO(human) 标记,要求你自己实现关键部分,同时分享"洞察"帮助你理解为什么这样做。

进阶示例——创建自定义架构师风格:

---
name: architect
description: Respond with architecture-first thinking. Always discuss trade-offs before implementing.
keep-coding-instructions: true
---
# Architect Mode
Before writing any code:
1. Identify the architectural implications
2. List alternative approaches with trade-offs
3. Recommend an approach with justification
4. Only implement after the user approves

Always think about: scalability, maintainability, testability, and security.
Use diagrams (ASCII art) to illustrate architecture decisions.

高级最佳实践:

理解输出风格与其他扩展机制的区别非常重要:输出风格修改系统提示、始终生效;技能是按需加载的任务指令;CLAUDE.md 是始终存在的上下文补充。最佳实践是用输出风格控制"Claude 如何说",用技能控制"Claude 做什么",用 CLAUDE.md 提供"Claude 需要知道什么"。变更保存在 .claude/settings.local.json,也可直接编辑其他级别设置文件中的 outputStyle 字段。

5. 适用角色

初学者 / 学生: 使用 learning 风格,让 Claude 变成交互式编程导师——不仅帮你写代码,还要求你自己实践关键部分,加速学习。

经验开发者: 使用默认风格或创建极简自定义风格,获得简洁高效的输出,减少冗余解释。

技术 Lead / 导师: 使用 explanatory 风格或创建架构师风格,在代码审查和设计讨论时获得详细的决策背景和权衡分析。

非工程人员(产品、设计): 创建自定义输出风格关闭编码指令,让 Claude 专注于文档编写、数据分析或项目管理任务。


七、使用钩子自动化工作流(Hooks)

1. 是什么

钩子(Hooks)是在 Claude Code 生命周期特定节点执行的用户定义 shell 命令,提供确定性的行为控制——确保某些操作始终发生,而非依赖 LLM 的判断。钩子支持丰富的事件类型:SessionStart(会话开始/恢复/压缩后)、PreToolUse(工具执行前,可阻止)、PostToolUse(工具执行后)、Notification(通知时)、Stop(Claude 完成响应时)、ConfigChange(配置变更时)等。除了命令型钩子外,还有提示型(type: "prompt",使用 Claude 模型判断)和代理型(type: "agent",生成子代理验证条件)。

2. 怎么用

最快的方式是运行 /hooks 进入交互式菜单,选择事件、配置匹配器和命令。也可以直接在配置文件中编写:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
          }
        ]
      }
    ]
  }
}

钩子通过 stdin 接收 JSON 事件数据,通过退出码控制行为:0 = 继续,2 = 阻止(stderr 内容反馈给 Claude),其他 = 继续但记录。配置文件位置:~/.claude/settings.json(所有项目)、.claude/settings.json(单项目共享)、.claude/settings.local.json(单项目私有)。

3. 使用场景与痛点

钩子解决的核心痛点是手动重复操作和依赖 LLM 判断的不可靠性。典型场景包括:每次编辑后自动格式化(PostToolUse + Edit|Write 匹配器 + Prettier)、保护敏感文件不被修改(PreToolUse 检查文件路径拒绝 .env、package-lock.json)、桌面通知(Notification 事件触发 osascript/notify-send)、压缩后重新注入关键上下文(SessionStart + compact 匹配器)、审计配置变更(ConfigChange 事件记录到日志文件)。

4. 使用示例

入门示例——桌面通知:

macOS:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

保存到 ~/.claude/settings.json,之后每次 Claude 等待输入时都会收到系统通知。

进阶示例——保护敏感文件 + 自动格式化:

创建 .claude/hooks/protect-files.sh 脚本,从 stdin 读取 JSON,用 jq 提取 tool_input.file_path,检查是否匹配 .envpackage-lock.json.git/ 等受保护模式,匹配则 exit 2 阻止。同时配置 PostToolUse 钩子在每次 Edit/Write 后自动运行 Prettier。这样实现了"阻止 + 后处理"的双层自动化。

高级最佳实践——提示型和代理型钩子:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "prompt",
            "prompt": "Check if all tasks are complete. If not, respond with {\"ok\": false, \"reason\": \"what remains\"}."
          }

Skill Seekers 全面指南:让 AI 真正"读懂"你的技术文档

从零基础入门到架构原理深度剖析——一份写给所有 AI 从业者的渐进式技术博客


写在最前面:这篇文章适合谁?

这篇文章按照由浅入深的结构组织,不同读者可以选择适合自己的起始章节。

如果你是对 AI 工具好奇的普通开发者,从第一章开始读,你将在 15 分钟内理解 Skill Seekers 是什么,并完成第一个实际操作。如果你是正在搭建 RAG 管线的 AI 工程师,可以直接跳到第四章和第五章,那里有针对 LangChain、LlamaIndex、向量数据库等场景的最佳实践。如果你是架构师或技术负责人,第六、七、八章从源码层面深入分析了项目的设计哲学、模块架构和工程体系。如果你是想参与开源贡献的开发者,第九章介绍了项目的工程规范与贡献流程。

开源项目地址:https://github.com/yusufkaraaslan/Skill_Seekers/tree/development


第一章:三分钟理解 Skill Seekers

1.1 一个故事开始

假设你是一名前端开发者,刚加入团队,团队技术栈基于 React。你希望让 Claude Code 成为你的"React 专家搭档"——不是那种只知道泛泛基础知识的通用 AI,而是真正了解 React 最新 API、Hooks 最佳实践、Server Components 细节的领域专家。

你面临一个尴尬的处境:React 官方文档有数百个页面,散布在 react.dev 网站上。你总不能一页一页复制粘贴到 Claude 的对话框里吧?即使你这么做了,Claude 的上下文窗口也装不下这么多内容。

Skill Seekers 做的事情,就是帮你把这几百页文档,在 15 分钟之内变成一个 Claude 能直接加载和使用的"技能包"。

打开终端,三条命令:

# 第 1 步:安装
pip install skill-seekers

# 第 2 步:一键抓取 React 文档并生成知识资产
skill-seekers create https://docs.react.dev/

# 第 3 步:打包为 Claude 能用的格式
skill-seekers package output/react --target claude

完成后你的 output/ 目录里会出现一个 react-claude.zip,上传到 Claude 就行了。从此 Claude 就是你的 React 领域专家。

但这只是冰山一角——同一份知识资产还可以导出为 Gemini、OpenAI、LangChain、Cursor 等十多个平台的格式,做一次就够了。

1.2 用一句话定义 Skill Seekers

Skill Seekers 是 AI 系统的"数据层"(Data Layer)——它将散落在文档网站、GitHub 仓库、PDF 文件中的非结构化技术知识,自动转化为各类 AI 系统可以直接消费的结构化知识资产。

你可以把它理解成一个"AI 的翻译官":一边读懂人类的文档,一边把知识翻译成 AI 能高效理解的格式。

1.3 它支持哪些输入和输出?

输入端,Skill Seekers 能从三种来源获取知识。第一种是文档网站——任意在线技术文档,如 React、Django、Godot 等官网文档。第二种是 GitHub 仓库——通过 owner/repo 格式指定,系统会分析代码结构、README、Issues 等。第三种是 PDF 文件——技术手册、API 文档、论文等。

输出端则覆盖了当前 AI 生态中几乎所有主流的消费方。包括 Claude AI(ZIP + YAML)、Google Gemini(tar.gz)、OpenAI / Custom GPT(ZIP)、LangChain Documents(JSON)、LlamaIndex TextNodes(JSON)、Haystack Documents、Pinecone / ChromaDB / FAISS / Qdrant 等向量数据库就绪格式,以及 Cursor / Windsurf / Cline / Continue.dev 等 IDE AI 助手的规则文件。

一次预处理,十六个目标平台,这是 Skill Seekers 最核心的价值主张。


第二章:手把手入门——从安装到创建第一个 Skill

这一章面向完全没有用过 Skill Seekers 的读者,按照实际操作步骤逐一展开。

2.1 环境准备

你需要准备的东西非常少:Python 3.10 或更高版本,Git,以及一台能联网的电脑(macOS、Linux 或 Windows 均可)。

检查 Python 版本:

python3 --version
# 看到 Python 3.10.x 或更高即可

检查 Git:

git --version
# 看到 git version 2.x.x 即可

如果 Python 未安装,macOS 用户可以用 brew install python3,Ubuntu/Debian 用户用 sudo apt install python3 python3-pip,Windows 用户从 python.org 下载安装器(注意勾选"Add Python to PATH")。

2.2 安装 Skill Seekers

最简单的安装方式只需一行命令:

pip install skill-seekers

这会安装核心功能:文档抓取、GitHub 分析、PDF 处理和所有平台的打包能力。如果你需要额外能力,可以按需安装可选组件:

# 如果你需要 Google Gemini 支持
pip install skill-seekers[gemini]

# 如果你需要 OpenAI 支持
pip install skill-seekers[openai]

# 如果你需要 MCP 服务器(与 Claude Code 集成)
pip install skill-seekers[mcp]

# 全部安装
pip install skill-seekers[all]

安装完成后,验证一下:

skill-seekers --help

看到帮助信息就说明安装成功了。

2.3 你的第一个 Skill:5 分钟搞定

我们用一个小型示例开始,避免第一次就等待太长时间。来抓取 Tailwind CSS 的文档,限制为 5 个页面:

skill-seekers scrape \
  --name tailwind-test \
  --url https://tailwindcss.com/docs/installation \
  --description "Tailwind CSS quick reference" \
  --max-pages 5

大约 30 秒后,你会看到类似这样的输出:

Scraping: https://tailwindcss.com/docs/installation
Page 1/5: Installation
Page 2/5: Editor Setup
...
 Skill created at: output/tailwind-test/

看看生成了什么:

ls output/tailwind-test/
# SKILL.md  references/  scripts/  assets/

其中 SKILL.md 是核心知识文件,references/ 目录下是按主题分类的参考文档。

2.4 打包与上传

# 打包为 Claude 格式
skill-seekers package output/tailwind-test/
# ✅ Created: output/tailwind-test.zip

# 或者打包为其他平台格式
skill-seekers package output/tailwind-test/ --target gemini
skill-seekers package output/tailwind-test/ --target langchain

如果你配置了 Anthropic API Key,还可以一步到位自动上传:

export ANTHROPIC_API_KEY=sk-ant-...
skill-seekers package output/tailwind-test/ --upload

没有 API Key 也没关系——拿着生成的 .zip 文件去 claude.ai 的 Skills 页面手动上传即可。

2.5 使用预设配置:更省心的方式

Skill Seekers 内置了 24+ 个框架的预设配置,覆盖了 React、Vue、Angular、Django、FastAPI、Godot 等主流框架。用预设配置更加省心:

# 查看所有可用预设
skill-seekers list-configs

# 直接用预设抓取
skill-seekers scrape --config configs/godot.json

你也可以用交互式模式,系统会引导你一步步完成配置:

skill-seekers scrape --interactive

2.6 create 命令:最智能的入口

skill-seekers create 是项目提供的最便捷命令——它会自动识别你给的是什么来源,并选择对应的处理方式:

# 给一个 URL,自动走文档抓取
skill-seekers create https://docs.django.com/

# 给一个 owner/repo,自动走 GitHub 分析
skill-seekers create facebook/react

# 给一个本地路径,自动分析本地项目
skill-seekers create ./my-project

# 给一个 PDF 文件,自动走 PDF 提取
skill-seekers create manual.pdf

这种"零配置"体验大幅降低了上手门槛——你不需要记住不同的子命令,一个 create 就够了。


第三章:Skill Seekers 解决了什么问题?谁需要它?

理解了基本用法之后,我们退后一步,从更宏观的视角审视这个工具为什么存在。

3.1 AI 时代的"知识注入"难题

大语言模型的能力已经毋庸置疑,但模型本身有一个固有限制:训练数据的时效性。无论是 Claude、GPT-4 还是 Gemini,它们的知识都有一个截止日期。对于快速迭代的技术框架来说,官方文档可能每周都在更新,而模型的训练数据可能已经是半年前的了。

解决这个问题的主流方案有两种。第一种是 AI Skills / Knowledge:将结构化知识直接注入 AI 的上下文(如 Claude Skills、Custom GPTs),让 AI 在回答时能参考这些外挂知识。第二种是 RAG(检索增强生成):将知识向量化存储在数据库中,用户提问时检索最相关的文档片段,拼入上下文后让模型回答。

无论哪种方案,数据预处理都是第一步,也是最脏最累的一步。你需要从各种来源抓取内容、清洗 HTML、提取代码块、识别语言、分类组织、生成元数据……而且每换一个目标平台,格式要求就不一样。

Skill Seekers 将这整个预处理流程自动化了,并且做到了"一次处理、多目标导出"。

3.2 四类核心用户群体

经过对项目功能和文档的深入分析,Skill Seekers 的用户群体可以清晰地分为四类。

第一类:AI Skill 构建者。 这是使用 Claude Skills、Gemini Extensions、Custom GPTs 的开发者或技术写作者。他们的核心诉求是把特定领域的知识"教"给 AI,让 AI 成为该领域的专家助手。痛点在于手动整理文档耗时巨大,且不同 AI 平台要求的格式各异。

第二类:RAG 工程师。 这些是搭建企业级知识问答系统、智能客服、文档检索等 RAG 应用的工程师。他们的核心诉求是获得高质量、带元数据、分块合理的文档数据。痛点在于数据预处理流程繁琐,分块策略难以兼顾精度和上下文。

第三类:AI 编程助手用户。 这些是使用 Cursor、Windsurf、Cline 等 AI 辅助编程工具的开发者。他们的核心诉求是让 IDE 中的 AI 助手深度理解特定框架的最新用法。痛点在于 AI 助手的通用知识不够深入,需要手动维护上下文规则文件。

第四类:技术团队和企业。 这些团队需要将内部文档、私有 API 文档、跨项目知识等统一管理,构建团队级别的 AI 知识资产。痛点在于知识散落在多个系统中,且缺乏统一的预处理和分发管道。

3.3 适用场景全景

根据用户群体,Skill Seekers 的典型使用场景包括以下几类:

框架学习加速: 新入职开发者快速将团队使用的技术栈文档转化为 AI Skill,让 AI 成为"老员工"一样的带教导师。

文档智能检索: 将公司内部文档库转化为 RAG 数据集,搭建内部知识问答系统。

代码助手增强: 为 Cursor/Windsurf 生成精确的框架规则文件,让代码建议更准确。

文档质量审计: 利用冲突检测功能,发现文档与实际代码实现之间的不一致之处。

多源知识融合: 将文档网站 + GitHub 代码 + PDF 手册合并为一个统一的知识资产,消除信息孤岛。


第四章:面向不同用户的最佳实践与示例

这一章按用户群体分别给出详细的最佳实践方案和操作示例。

4.1 AI Skill 构建者的最佳实践

场景:为 Claude 创建一个 Django 专家技能

这是最基础也最常见的使用场景。完整工作流如下:

# 步骤 1:从文档创建知识资产
skill-seekers create https://docs.djangoproject.com/

# 步骤 2:AI 增强——将基础文档升级为专家级技能文件
skill-seekers enhance output/django/ --mode local
# 如果有 API Key,也可以用 API 模式:
# skill-seekers enhance output/django/ --mode api

# 步骤 3:打包并上传
skill-seekers package output/django/ --upload

增强步骤是关键——不经过增强的 SKILL.md 只是文档的简单组织,增强之后的 SKILL.md 会包含 500+ 行的内容,涵盖代码示例、最佳实践模式、快速参考指南和错误排查建议。

进阶:使用工作流预设做专项增强

如果你的 Django 项目对安全性有特殊要求,可以叠加安全增强工作流:

skill-seekers create https://docs.djangoproject.com/ \
  --enhance-workflow security-focus \
  --enhance-workflow api-documentation

这条命令会先执行安全聚焦的增强(审查 OWASP Top 10、认证授权模式等),然后再执行 API 文档增强。两个工作流链式执行,后续工作流会引用前序工作流的分析结果。

项目内置了 64 个工作流预设,覆盖了从 defaultminimalkubernetes-deploymentgraphql-schemacompliance-gdprmlops-pipeline 等极为广泛的领域。你还可以创建自定义预设放到 ~/.config/skill-seekers/workflows/ 目录下。

进阶:多平台批量导出

一次处理,导出到所有平台:

# 批量导出到 Claude、Gemini、OpenAI、Markdown 四个平台
for platform in claude gemini openai markdown; do
  skill-seekers package output/django --target $platform
done

4.2 RAG 工程师的最佳实践

场景:搭建一个基于 LangChain 的框架文档问答系统

RAG 工程师最关心的是数据质量——分块是否合理、元数据是否丰富、代码块是否保持完整。

# 步骤 1:抓取文档
skill-seekers create https://docs.react.dev/

# 步骤 2:导出为 LangChain Documents 格式
skill-seekers package output/react --target langchain
# 生成:output/react-langchain.json

导出的 JSON 文件中,每个 Document 都包含 page_content(文档内容)和 metadata(元数据,包括来源 URL、分类、内容类型等)。你可以直接将其加载到 LangChain 的检索链中。

项目的 examples/langchain-rag-pipeline/ 目录提供了完整的端到端示例。类似地,examples/llama-index-query-engine/ 提供了 LlamaIndex 的集成示例,examples/pinecone-upsert/ 提供了 Pinecone 向量数据库的写入示例。

进阶:使用 Docker Compose 搭建完整 RAG 基础设施

Skill Seekers 的 docker-compose.yml 已经预置了一个完整的 RAG 基础设施:

# 一键启动:CLI 工具 + MCP 服务器 + Weaviate + Qdrant + ChromaDB
docker-compose up -d

这会启动五个容器化服务。skill-seekers 容器是主 CLI 工具。mcp-server 在 8765 端口提供 MCP HTTP 服务。weaviate 在 8080 端口提供 Weaviate 向量数据库。qdrant 在 6333/6334 端口提供 Qdrant 向量数据库。chroma 在 8000 端口提供 ChromaDB。

所有服务通过内部 bridge 网络互联,向量数据库配置了持久化卷。你可以把文档抓取、增强、向量化入库的全流程在容器环境中完成。

进阶:处理超大型文档(10K-40K+ 页面)

对于 Godot、Unity 这类超大型文档,直接抓取会产生巨大的单一文件。Skill Seekers 提供了文档拆分和路由机制:

# 先评估文档规模
skill-seekers estimate --config configs/godot.json
# 📊 Estimated pages: 40,000
# ⚠️ Large documentation detected!

# 使用 router 策略拆分
skill-seekers split --config configs/godot.json --strategy router --target-pages 5000
# 会生成多个子配置:godot-scripting.json, godot-2d.json, godot-3d.json 等

# 并行抓取所有子技能
# (每个子技能独立抓取,可以并行执行)

# 最后生成路由器技能
skill-seekers generate-router --config-pattern "configs/godot-*.json"

路由器技能的 SKILL.md 包含智能路由逻辑——当用户提问时,路由器会根据关键词将问题导向合适的子技能。比如问到"physics"就路由到 godot-physics,问到"shader"就路由到 godot-shaders。

4.3 AI 编程助手用户的最佳实践

场景:让 Cursor IDE 的 AI 深度理解 React

Cursor、Windsurf 等 IDE 的 AI 助手支持加载上下文规则文件,让 AI 在生成代码时参考特定框架的最佳实践。

# 创建 React 技能
skill-seekers create https://docs.react.dev/

# 打包为 Claude 格式(Cursor 使用相同格式)
skill-seekers package output/react --target claude

# 复制到你的项目中
cp output/react-claude/SKILL.md my-react-project/.cursorrules

对于 Windsurf:

cp output/react-claude/SKILL.md my-project/.windsurf/rules/react.md

对于 Cline(VS Code 扩展):

cp output/react-claude/SKILL.md my-project/.clinerules

项目的 examples/ 目录提供了多个真实示例:cursor-react-skill/ 展示了 Cursor + React 的集成方式,windsurf-fastapi-context/ 展示了 Windsurf + FastAPI 的场景,cline-django-assistant/ 展示了 Cline + Django 的用法。

进阶:使用 install-agent 命令一键安装到所有 IDE

# 一键安装到 Cursor
skill-seekers install-agent output/react/ --agent cursor

# 或者安装到所有支持的 AI 编程助手
skill-seekers install-agent output/react/ --agent all

# 预览安装效果但不实际执行
skill-seekers install-agent output/react/ --agent cursor --dry-run

这条命令会自动将 Skill 文件复制到对应 IDE 的配置目录。支持的 Agent 包括 Claude Code(~/.claude/skills/)、Cursor(.cursor/skills/)、VS Code / Copilot(.github/skills/)、Amp(~/.amp/skills/)、Goose、OpenCode、Windsurf 等。

4.4 团队协作者的最佳实践

场景:在 5 人团队中共享内部 API 文档的 AI 技能

Skill Seekers 支持从私有 Git 仓库获取配置文件,实现团队级别的技能共享:

# 注册团队的私有配置仓库
# (通过 MCP 工具,在 Claude Code 中以自然语言操作更为便利)
skill-seekers config --add-source \
  --name team \
  --git-url https://github.com/mycompany/skill-configs.git

# 从团队仓库获取配置
skill-seekers config --fetch --source team --config internal-api

# 正常使用
skill-seekers scrape --config internal-api.json

支持 GitHub、GitLab、Gitea、Bitbucket 四种 Git 托管平台,通过对应的环境变量(GITHUB_TOKENGITLAB_TOKEN 等)进行认证。

场景:多源知识融合——将文档 + 代码 + PDF 合并为单一知识资产

这是企业场景中最有价值的能力之一。以 Godot 引擎为例,其预设配置展示了如何融合文档和代码两个来源:

配置中定义了 merge_mode: "claude-enhanced",然后在 sources 数组中分别配置了两个来源。第一个来源类型为 documentation,指向 Godot 官方文档网站,配置了 CSS 选择器、URL 过滤规则和内容分类。第二个来源类型为 github,指向 godotengine/godot 仓库,启用了深度代码分析、Issue 获取、Changelog 和 Release 信息抓取,以及特定的文件匹配模式(core/**/*.hscene/**/*.cpp 等)。

运行统一抓取后,系统会自动执行冲突检测——发现文档中描述但代码中不存在的 API,或者代码中实现但文档中未记录的功能,并在最终输出中以醒目标注呈现。


第五章:核心功能全景透视

在理解了"谁在用"和"怎么用"之后,让我们系统性地审视 Skill Seekers 的功能全景。

5.1 llms.txt 优先检测:10 倍速度提升的秘密

llms.txt 是一个新兴的约定标准——越来越多的技术文档网站开始提供专门为 LLM 消费优化的纯文本文件。Skill Seekers 在正式爬取之前,会依次检查目标域名下是否存在 llms-full.txtllms.txtllms-small.txt

如果检测到这些文件,系统直接下载解析即可——完全跳过了逐页爬取、HTML 解析、内容提取等耗时步骤。这在实际效果上意味着:原本需要 15 分钟的抓取任务,可能 1-2 分钟就完成了。

这个功能由三个模块协同实现:llms_txt_detector.py 负责探测文件是否存在,llms_txt_downloader.py 负责高效下载,llms_txt_parser.py 负责解析内容结构。

5.2 异步模式:2-3 倍的爬取加速

对于不支持 llms.txt 的网站,Skill Seekers 提供了基于 httpx 异步引擎的加速模式:

skill-seekers scrape --config configs/react.json --async --workers 8

--async 标志启用异步爬取(底层使用 httpx 的 async/await),--workers 指定并发工作者数量。在实际测试中,同步模式需要 15-45 分钟的任务,异步模式只需 5-15 分钟。

5.3 AI 增强工作流:从 75 行到 500+ 行的质变

基础的文档抓取只能生成结构化的参考文件。AI 增强步骤是将"数据"转化为"知识"的关键。

增强过程由 LLM 驱动——系统将抓取到的文档内容作为上下文,让 LLM 分析后生成一份综合性的 SKILL.md 文件。这份文件不是简单的摘要或合并,而是包含了以下几个维度的内容:核心概念和设计理念的阐述、带注释的代码示例和最佳实践、常见错误和解决方案、快速参考索引、以及从基础到进阶的导航建议。

系统支持三个 LLM 平台执行增强——Claude Sonnet 4(通过 Anthropic API 或 LOCAL 模式)、Gemini 2.0 Flash(通过 Google API)、GPT-4o(通过 OpenAI API)。LOCAL 模式的独特之处在于它利用 Claude Code Max 的本地执行能力,无需 API Key 也无需额外费用。

此外,通过 ANTHROPIC_BASE_URL 环境变量,中国大陆用户可以配置 GLM-4.7 等兼容 Claude 协议的国产 API 端点来完成增强。

5.4 冲突检测:文档与代码的一致性审计

当同时从文档和代码两个来源获取信息时,Skill Seekers 的冲突检测引擎会自动识别四类不一致。

红色:Missing in code(高优先级)。 文档中描述了某个 API 或功能,但在代码中找不到对应实现。这通常意味着文档描述了尚未实现的特性,或者该功能已被移除但文档未更新。

黄色:Missing in docs(中优先级)。 代码中实现了某个功能,但文档中完全没有提及。这是最常见的文档欠缺类型。

橙色:Signature mismatch(警告级别)。 同一个函数在文档和代码中有不同的参数列表、类型定义或返回值。

灰色:Description mismatch(信息级别)。 文档描述与代码注释对同一功能给出了不同的解释文字。

这个能力不仅提升了生成技能的可靠性,本身也是一个独立的文档质量审计工具。

5.5 MCP 集成:用自然语言驱动整个工作流

MCP(Model Context Protocol)是 Anthropic 推出的协议标准,用于让 AI 助手与外部工具交互。Skill Seekers 的 MCP 服务器暴露了 26 个工具,分为四类。

核心工具(9 个):list_configs, generate_config, validate_config, estimate_pages, scrape_docs, package_skill, upload_skill, enhance_skill, install_skill。

扩展工具(10 个):scrape_github, scrape_pdf, unified_scrape, merge_sources, detect_conflicts, add_config_source, fetch_config, list_config_sources, remove_config_source, split_config。

向量数据库工具(4 个):export_to_chroma, export_to_weaviate, export_to_faiss, export_to_qdrant。

云存储工具(3 个):cloud_upload, cloud_download, cloud_list。

配置好 MCP 后,你可以在 Claude Code 中直接用自然语言完成一切:

用户:帮我抓取 Svelte 文档并打包为 Claude Skill
Claude Code[调用 generate_config][调用 scrape_docs][调用 enhance_skill][调用 package_skill]
✅ 已创建 output/svelte.zip,可以上传到 Claude

MCP 服务器支持两种传输模式——stdio 模式(用于 Claude Code、VS Code + Cline 的本地集成)和 HTTP 模式(用于 Cursor、Windsurf、IntelliJ 的网络集成,默认端口 8765)。

5.6 断点续传:永不丢失进度

考虑到大型文档的抓取可能需要数十分钟甚至数小时,Skill Seekers 实现了作业恢复机制。系统以可配置的间隔(默认 60 秒)自动保存进度。如果中途意外中断,可以查看并恢复:

# 查看所有可恢复的作业
skill-seekers resume --list

# 从中断处继续
skill-seekers resume github_react_20260117_143022

旧作业会在 7 天后自动清理,不会无限占用磁盘。


第六章:架构原理深度剖析

从这一章开始,我们深入到项目的内部设计中。

6.1 项目代码结构解析

Skill Seekers v3.1.3 的 development 分支采用 src 布局(即源码位于 src/skill_seekers/ 而非项目根目录),这是 Python 社区推荐的现代项目结构,通过 pyproject.toml[tool.setuptools] package-dir = {"" = "src"} 配置实现。

核心源码分为六个子包。cli/ 是最庞大的模块,包含约 75 个 Python 文件和 5 个子目录(adaptors、arguments、parsers、presets、storage),承载了几乎所有的业务逻辑——从爬虫到分析到增强到打包。mcp/ 实现 MCP 协议服务器,将 CLI 能力暴露为 26 个可通过自然语言调用的工具。embedding/ 包含嵌入向量相关的模型(models.py)、生成器(generator.py)、缓存(cache.py)和服务器(server.py)四个模块。workflows/ 存放 64 个 YAML 格式的增强工作流预设。sync/ 处理同步监控逻辑,基于 schedule 库实现定时更新。benchmark/ 提供性能基准测试工具。

6.2 五阶段数据处理管线

Skill Seekers 的数据流遵循一条清晰的五阶段管线:Ingest → Analyze → Structure → Enhance → Export

Ingest(摄取)阶段: 这是整个管线的入口,由三个专用爬取器负责。doc_scraper.py 处理文档网站,内部通过 llms_txt_detector.py 优先检测 llms.txt 快速通道,未命中时退回到基于 BeautifulSoup4 的 HTML 解析模式,markdown_cleaner.py 负责将 HTML 转化为干净的 Markdown。github_scraper.py 处理 GitHub 仓库,采用三流架构(Code / Docs / Insights),其中 Code 流使用 unified_codebase_analyzer.py 进行 AST 级别的深度代码分析,Docs 流提取 README 和文档文件,Insights 流通过 PyGithub 调用 GitHub API 获取 Issues、Labels、Stars 等社区数据。pdf_scraper.py 处理 PDF 文件,底层基于 PyMuPDF 引擎,叠加了三种互补的代码检测方法(字体特征、缩进模式、模式匹配)和支持 19+ 种语言的识别能力。

Analyze(分析)阶段: 这一阶段对原始内容进行深度语义分析。code_analyzer.py 执行 AST 解析(支持 Python、JavaScript、TypeScript、Java、C++、Go),提取函数签名、类结构、方法参数和类型信息。architectural_pattern_detector.py 识别工厂模式、单例模式、观察者模式等设计模式。dependency_analyzer.py 基于 networkx 构建依赖关系图谱。conflict_detector.py 执行前文描述的四级冲突检测。signal_flow_analyzer.py 分析代码中的信号和事件流。config_extractor.py

让 AI 学会"组队打怪"——聊聊微软的 AutoGen 框架

你有没有想过,一个 AI 助手再聪明,终究也是一个人在战斗。它写完代码没人 review,它做完分析没人挑刺,它回答问题也没人帮忙查漏补缺。

但如果让好几个 AI 坐在一起,各管一摊,一个写、一个审、一个改,会怎样?

这就是微软开源的 AutoGen 在做的事情。

一句话说清楚它是什么

AutoGen 是一个用 Python 搭建多智能体应用的框架。说白了,它让你可以创建多个各有分工的 AI 角色,让它们自己聊着把活儿干了。

比如你可以安排一个"写手"负责起草文案,再安排一个"编辑"负责提修改意见,写手改完再让编辑看,来回几轮直到编辑满意为止。整个过程不需要你盯着,它们自己就能协商完成。

这不是什么遥远的概念,装两个包就能跑起来。

怎么装?怎么用?

环境要求很简单:Python 3.10 以上就行。打开终端敲一行命令:

pip install -U "autogen-agentchat" "autogen-ext[openai]"

装好之后,最基础的用法是创建一个带工具的 AI 助手。举个例子,做一个能查天气的智能体:

import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient

async def get_weather(city: str) -> str:
    return f"{city}今天 25°C,晴。"

model_client = OpenAIChatCompletionClient(model="gpt-4o")
agent = AssistantAgent(
    name="weather_agent",
    model_client=model_client,
    tools=[get_weather],
)

async def main():
    result = await agent.run(task="北京今天天气怎么样?")
    print(result.messages[-1].content)

asyncio.run(main())

你定义一个普通的 Python 函数,把它扔进 tools 参数里,AI 就自动知道什么时候该调用它。函数签名和注释会被自动转成工具描述,不需要你手动写 JSON schema。

真正有意思的部分:多个 AI 协作

单个智能体只是开胃菜。AutoGen 真正的看家本领是让多个智能体组队工作。

框架内置了几种编排模式,最常用的是 RoundRobinGroupChat——大家轮流发言。你可以设一个终止条件,比如当某个角色说出"通过"这个词就停下来:

from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import TextMentionTermination

team = RoundRobinGroupChat(
    [writer_agent, reviewer_agent],
    termination_condition=TextMentionTermination("通过"),
)
result = await team.run(task="写一段产品介绍文案")

除了轮流发言,还有 SelectorGroupChat,由一个 LLM 来判断下一个该谁说话,适合角色更多、分工更复杂的场景。还有 Swarm 模式,智能体之间可以主动"转交"任务,像客服系统的分级处理一样。

它的架构长什么样

AutoGen 分三层。最底下的 Core 层负责消息传递和运行时调度,属于基础设施。中间的 AgentChat 层是大多数人打交道的地方,预设智能体、团队编排、终止条件都在这一层。最外面的 Extensions 层负责对接各种外部服务,比如 OpenAI 的模型、Docker 代码执行器,以及通过 MCP 协议接入 Jira、Slack 等工具。

这种分层的好处是,你可以只用上层 API 快速出原型,也可以深入底层做精细控制。

还有个不用写代码的选项

如果你不想写代码,AutoGen 还提供了一个叫 AutoGen Studio 的可视化工具。装好之后一行命令启动:

pip install -U autogenstudio
autogenstudio ui --port 8080

打开浏览器就能拖拖拽拽搭建多智能体工作流,适合做快速验证和演示。

适合什么场景

说实话,不是所有任务都需要多智能体。一个简单的问答,一个 AI 就够了,上多智能体反而是大炮打蚊子。

但有些场景确实适合:需要反复打磨的内容创作、多角度的分析研判、有明确流程的任务处理(比如先分类再路由再执行),以及需要调用多种外部工具协同完成的复杂工作流。

核心判断标准就一个:如果你发现自己在不断地把一个 AI 的输出复制粘贴给另一个 AI 让它接着处理,那多半可以用 AutoGen 把这个链路自动化掉。


AutoGen 当前稳定版本为 v0.7.5,项目地址:github.com/microsoft/autogen

Speckit、OpenSpec、Superpowers 和 everything-claude-code AI辅助编程工具对比分析

1. 概述

随着AI编码能力(如 Claude Code、Cursor 等)的普及,软件开发领域正从“Vibe Coding”(随心灵感编码)向更工程化的方向演进。为了应对AI生成代码的不确定性、上下文丢失以及协作一致性等问题,社区涌现了多种规范驱动开发(Spec-Driven Development, SDD)框架和工作流方法论

选取了目前最具代表性的四个项目进行对比:

  • Speckit:GitHub官方出品的结构化规范驱动工具包

  • OpenSpec:专注于增量变更和棕地项目的轻量级框架

  • Superpowers:强调强制流程和TDD的代理技能框架

  • everything-claude-code:黑客松冠军开源的综合性 Claude Code 方法论

2. 核心属性速览

维度 Speckit OpenSpec Superpowers everything-claude-code
核心理念 规范即代码,通过严格的结构化流程实现工业级控制 增量即真相,通过Delta机制管理现有项目的演进 强制方法论,通过不可跳过的“技能”约束AI行为 CLI+Skills替代MCP,通过编排与并行化榨干模型性能
目标场景 绿地项目 (0→1) ,复杂且需要严格文档的团队协作 棕地项目 (1→n) ,在已有代码库上进行频繁修改和功能迭代 从0到1的需求探索,对代码质量、测试覆盖有极高要求的项目 重度Claude Code用户,追求极致Token效率和复杂任务并行处理的场景
工作流程 五阶段线性流程:Constitution → Specify → Plan → Tasks → Implement 四阶段循环流程:Draft Proposal → Review → Apply → Archive 三阶段严格流程:Brainstorm → Write Plan → Execute Plan (含TDD) 五阶段Agent编排:Research → Plan → Implement → Review → Verify
关键机制 9条不可变架构原则、7层LLM输出约束、ADR决策记录 Specs/与Changes/隔离、Delta增量存储、Fail-Fast冲突检测 强制技能调用、Red-Green-Refactor TDD、子代理审查 多Agent编排、并行化(Git Worktrees)、动态系统提示、记忆钩子

3. 详细维度对比

3.1 核心理念与哲学

  • Speckit:秉持“规范优先”的哲学。它假设需求在编码前可以被完全定义,通过类似于法律的“宪章”来约束AI的每一次产出。它将开发视为一个严谨的、逐层分解的工程过程,试图通过结构的确定性来对抗AI的随机性

  • OpenSpec:秉持“演进优先”的哲学。它承认需求是动态变化的,特别是在维护老项目时。其核心理念是将“当前稳定状态”(Specs)与“提议变更”(Changes)分离,每次只处理增量,最终将验证后的增量合并回主干,实现系统的平滑演进

  • Superpowers:秉持“流程即法律”的哲学。它不信任AI的自由发挥,通过一套不可跳过的“技能”(Skills)来强制AI遵循人类软件工程的最佳实践(如必须先写测试)。它像一名“教官”,强制AI按照TDD、Code Review等严谨流程行动

  • everything-claude-code:秉持“效率与编排”的哲学。它将AI视为一个可编排的智能体集群,通过精细化的工程手段(如用CLI替代MCP省Token、多实例并行)来最大化模型性能,降低成本,实现复杂的、多步骤的研发任务

3.2 目标用户与适用项目

  • Speckit:适合中大型团队,特别是需要严格合规、文档齐全的企业级项目。它明确了产品经理、技术负责人、开发者之间的交接点(如Spec、Plan),适合角色分工明确的团队

  • OpenSpec:适合全栈开发者或小型团队,尤其是在维护复杂老系统的团队。对于经常需要跨多个服务或模块进行小范围修改的场景,它的轻量级和高效增量特性极具吸引力

  • Superpowers:适合任何追求代码质量的开发者,尤其是从0到1启动项目时。它的头脑风暴模式对需求不明确的项目非常友好,强制TDD则确保了代码的健壮性

  • everything-claude-code:适合Claude Code的重度用户和技术极客。适合需要处理复杂、多步骤、多文件任务的场景,或是希望在API调用成本上精打细算的开发者

3.3 工作流与落地实践

  • Speckit:流程线性且严格

    • Constitution:定义开发原则和不可变规则

    • Specify:详细描述需求(What & Why)

    • Plan:基于技术栈制定架构方案

    • Tasks:分解为可执行的任务列表

    • Implement:逐一执行任务

      实践发现,若前期需求或设计有误,后期返工成本极高。在动态变化的企业环境中,这种线性流程常面临“理想很丰满,现实很骨感”的挑战

  • OpenSpec:流程循环且隔离

    • Proposal:在 changes/ 目录下创建变更提案、任务和Spec增量

    • Review:人与AI审查、对齐提案,可利用 openspec validate 进行冲突检测

    • Apply:AI严格根据 tasks.md 和增量Spec实施编码

    • Archive:将验证通过的变更合并(归档)到 specs/ 目录,更新“真相源”

      这种模式确保了主分支的Spec始终反映最新状态,且归档动作实现了知识的持续沉淀

  • Superpowers:流程强制且循环

    • Brainstorm:AI通过多轮问答帮助用户精炼需求,探索方案,输出设计文档

    • Write Plan:将设计拆解为极小的任务(2-5分钟),每个任务包含精确的文件路径、代码片段和测试命令

    • Execute Plan:通过子代理或批量模式执行计划,强制遵循 TDD(Red-Green-Refactor) ,并进行代码审查

      任何跳过步骤(如先写代码)的行为都会被AI视为违规

  • everything-claude-code:流程编排且并行

    • 编排:通过 Research AgentPlanner AgentTDD-guide AgentReviewer AgentResolver Agent 的有序协作完成任务。每个Agent输入输出清晰,中间用 /clear 清理上下文

    • 并行:利用 Git Worktrees 创建多个工作目录,同时运行多个Claude实例处理不同任务,互不干扰。采用 Two-Instance Kickoff(一个搭骨架,一个做调研)启动新项目

3.4 优缺点分析

工具/方法论 优点 缺点/挑战
Speckit 结构最严谨,文档最完善,适合大型项目治理;通过ADR记录决策,可追溯性强 。 太重、太理想化。对动态需求适应性差,流程僵化;生成文档冗长(相较OpenSpec多出数倍),上下文窗口易爆,返工成本高 。
OpenSpec 轻量、Token效率高。增量模式对老项目友好;archive机制能反向构建知识库;学习曲线平缓 。 对命名敏感,Delta机制依赖稳定的命名进行匹配;冲突解决依赖人工介入,对认知负担有一定挑战 ;不适合需要顶层宏观设计的0→1项目 。
Superpowers 质量保障最强。通过强制TDD和Code Review,产出代码可靠性高;头脑风暴功能极佳,能深度挖掘模糊需求 。 流程强制带来的“笨重感” 。即使是修个小Bug,也可能触发全套流程(TDD),对于追求快速验证的场景可能显得繁琐 。
everything-claude-code 极致的技术效率。Token优化策略显著降本;并行化和Agent编排极大提升复杂任务吞吐量;开源且模块化,扩展性强 。 上手门槛较高。需要理解其Agent编排、Hooks、Worktrees等整套哲学,对新手不够友好;部分技巧(如记忆钩子)需要手动配置 。

4. 选型建议

根据不同的团队类型和项目阶段,可以遵循以下建议进行选型

  • 如果你是维护复杂老系统的“单人开发者”或“小型团队”

    • 首选 OpenSpec。它的增量哲学能让你在不扰乱现有架构的前提下,安全地嵌入新功能。归档机制能帮你逐步梳理出混乱系统的“隐形文档”
  • 如果你正在启动一个全新的、复杂度较高的项目,且有明确的架构要求

    • 如果你是严谨派,追求工业级的代码质量:可以尝试 Speckit,但要做好前期投入大量时间编写规范的准备

    • 如果你是敏捷派,需求尚在演变中:强烈推荐 Superpowers。先利用其 Brainstorm 功能理清思路,再利用强制TDD构建稳固的核心,体验会非常流畅

  • 如果你是重度AI用户(特别是 Claude Code),追求极致的开发效率和成本控制

    • everything-claude-code 是你的不二之选。学习并采用它的CLI+Skills思想、Agent编排和并行化策略,你将能驾驭AI完成以往需要一个小团队才能完成的复杂任务
  • 如果你在大型团队中协作,需要明确的产品与开发交接流程

    • Speckit 的结构化文档(Constitution, Spec, Plan)可以作为团队协作的契约,明确各方职责,减少沟通误差。但需确保项目需求相对稳定,以避免因变更导致的巨大返工成本

5. 总结

AI编程正从“无序的 vibe coding”走向“有序的工程化”。这四种工具代表了不同的工程化路径

  • Speckit 走的是“计划经济的道路”,通过周密的计划来控制生产

  • OpenSpec 走的是“改革的道路”,在保持系统稳定的前提下,通过小步快跑实现演进

  • Superpowers 走的是“素质教育的道路”,通过严格的训练(流程)让AI养成良好的编码习惯

  • everything-claude-code 走的是“科技强军的道路”,通过先进的装备(编排、并行)和战术配合来发挥AI的最大战斗力

最终的选择没有绝对的对错,关键在于你的项目痛点、团队文化以及对AI协作的期望。希望这份报告能帮助你在这个快速发展的领域中找到最适合自己的方向

❌