返回技能列表

create-agent

pjt222
更新于 2 days ago
6 次查看
17
2
17
在 GitHub 上查看
ai

关于

This skill creates new agent definition files following the agent-almanac template and registry specifications. It's used to add specialized agents to a library, define Claude Code sub-agent roles, or create domain-specific assistants with curated skills and tools. The process covers role design, tool selection, skill allocation, and includes registry integration with symbolic link validation.

快速安装

Claude Code

推荐
主要方式
npx skills add pjt222/agent-almanac -a claude-code
插件命令备选方式
/plugin add https://github.com/pjt222/agent-almanac
Git 克隆备选方式
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/create-agent

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档

创建新智能体

定义具有聚焦目的、精选工具、分配技能并按智能体模板和注册表规范完整文档化的 Claude Code 子智能体角色。

适用场景

  • 向库中添加尚未覆盖领域的新专业智能体
  • 将反复出现的工作流或提示模式转换为可复用的智能体角色
  • 创建具有精选技能和受限工具的领域专属助手
  • 将过于宽泛的智能体拆分为聚焦的单一职责智能体
  • 在组合多智能体团队之前设计新团队成员

输入

  • 必需:智能体名称(小写连字符格式,例如 data-engineer
  • 必需:智能体主要目的的一行描述
  • 必需:说明智能体解决的问题的目的陈述
  • 可选:模型选择(默认:sonnet;备选:opushaiku
  • 可选:优先级(默认:normal;备选:highlow
  • 可选:从 skills/_registry.yml 分配的技能列表
  • 可选:智能体所需的 MCP 服务器(例如 r-mcptoolshf-mcp-server

步骤

第 1 步:设计智能体角色

为智能体选择清晰、聚焦的身份:

  • 名称:小写连字符格式,描述角色。以名词或领域限定词开头:security-analystr-developertour-planner。避免 helperassistant 等通用名称。
  • 目的:一段解释此智能体解决的具体问题的说明。问:「此智能体能做现有智能体覆盖不到的什么?」
  • 沟通风格:考虑领域特点。技术智能体应精确且多引用。创意智能体可以更具探索性。合规智能体应正式且以审计为导向。

继续之前,检查与现有 53 个智能体的重叠:

grep -i "description:" agents/_registry.yml | grep -i "<your-domain-keywords>"

预期结果: 没有现有智能体覆盖相同细分领域。若现有智能体有部分重叠,考虑扩展而非创建新的。

失败处理: 若存在重叠显著的智能体,要么扩展该智能体的技能列表,要么缩小新智能体的范围以补充而非重复。

第 2 步:选择工具

选择智能体所需的最小工具集。遵循最小权限原则:

工具集适用场景示例智能体
[Read, Grep, Glob]只读分析、审查、审计code-reviewer、security-analyst、auditor
[Read, Grep, Glob, WebFetch]分析加外部查询senior-researcher
[Read, Write, Edit, Bash, Grep, Glob]完整开发——创建/修改代码r-developer、web-developer、devops-engineer
[Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch]开发加外部研究polymath、shapeshifter

仅分析代码的智能体不要包含 Bash。除非智能体确实需要查询外部资源,否则不要包含 WebFetchWebSearch

预期结果: 工具列表只包含智能体在主要工作流中实际会用到的工具。

失败处理: 审查智能体的能力列表——若某能力不需要工具,删除该工具。

第 3 步:选择模型

根据任务复杂度选择模型:

  • sonnet(默认):大多数智能体。推理与速度的良好平衡。用于开发、审查、分析和标准工作流。
  • opus:复杂推理、多步规划、细致判断。用于高级智能体、架构决策或需要深度领域专业知识的任务。
  • haiku:简单、快速响应。用于做直接查找、格式化或模板填充的智能体。

预期结果: 模型与智能体主要用例的认知需求匹配。

失败处理: 若不确定,使用 sonnet。仅在测试发现推理质量不足时升级到 opus

第 4 步:分配技能

浏览技能注册表,选择与智能体领域相关的技能:

# 列出某领域的所有技能
grep -A3 "domain-name:" skills/_registry.yml

# 按关键词搜索技能
grep -i "keyword" skills/_registry.yml

为前置元数据构建技能列表:

skills:
  - skill-id-one
  - skill-id-two
  - skill-id-three

重要说明:所有智能体从注册表级 default_skills 字段自动继承默认技能(meditateheal)。不要在智能体前置元数据中列出这些技能,除非它们是智能体方法论的核心(例如 mystic 智能体列出 meditate,因为冥想引导是其主要目的)。

预期结果: 技能列表包含 3-15 个 skills/_registry.yml 中存在的技能 ID。

失败处理: 验证每个技能 ID 存在:grep "id: skill-name" skills/_registry.yml。删除不匹配的任何 ID。

第 5 步:编写智能体文件

复制模板并填写前置元数据:

cp agents/_template.md agents/<agent-name>.md

填写 YAML 前置元数据:

---
name: agent-name
description: One to two sentences describing primary capability and domain
tools: [Read, Write, Edit, Bash, Grep, Glob]
model: sonnet
version: "1.0.0"
author: Philipp Thoss
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: [domain, specialty, relevant-keywords]
priority: normal
max_context_tokens: 200000
skills:
  - assigned-skill-one
  - assigned-skill-two
# Note: All agents inherit default skills (meditate, heal) from the registry.
# Only list them here if they are core to this agent's methodology.
# mcp_servers: []  # Uncomment and populate if MCP servers are needed
---

预期结果: YAML 前置元数据解析无误。所有必需字段(namedescriptiontoolsmodelversionauthor)存在。

失败处理: 验证 YAML 语法。常见问题:版本字符串缺少引号,缩进错误,工具列表中括号未闭合。

第 6 步:编写目的和能力

替换模板中的占位章节:

目的:一段解释此智能体解决的具体问题及其价值的说明。要具体——说明领域、工作流和结果。

能力:带粗体引导的要点列表。若智能体有许多能力,按类别分组:

## Capabilities

- **Primary Capability**: What the agent does best
- **Secondary Capability**: Additional functionality
- **Tool Integration**: How it leverages its tools

可用技能:列出每个已分配技能及简短描述。使用原始技能 ID(斜杠命令名称):

## Available Skills

- `skill-id` - Brief description of what the skill does

预期结果: 目的具体(而非"帮助开发"),能力具体可验证,技能列表与前置元数据匹配。

失败处理: 若目的感觉模糊,回答:「用户会要求此智能体完成什么具体任务?」用那个答案作为目的。

第 7 步:编写使用场景和示例

提供 2-3 个使用场景,展示如何派生智能体:

### Scenario 1: Primary Use Case
Brief description of the main scenario.

> "Use the agent-name agent to [specific task]."

### Scenario 2: Alternative Use Case
Description of another common use case.

> "Spawn the agent-name to [different task]."

添加 1-2 个展示用户请求和预期智能体行为的具体示例:

### Example 1: Basic Usage
**User**: [Specific request]
**Agent**: [Expected response pattern and actions taken]

预期结果: 场景真实可信,示例展示实际价值,调用模式符合 Claude Code 规范。

失败处理: 在脑中测试这些示例——智能体真的能用其分配的工具和技能完成请求吗?

第 8 步:编写限制和参见

限制:3-5 个诚实的约束条件。智能体不能做什么、不应用于什么,或可能产生差结果的场景:

## Limitations

- Cannot execute code in language X (no runtime available)
- Not suitable for tasks requiring Y — use Z agent instead
- Requires MCP server ABC to be running for full functionality

参见:交叉引用互补智能体、相关指南和相关团队:

## See Also

- [complementary-agent](complementary-agent.md) - handles the X side of this workflow
- [relevant-guide](../guides/guide-name.md) - background knowledge for this domain
- [relevant-team](../teams/team-name.md) - team that includes this agent

预期结果: 限制诚实且具体。参见引用现有文件。

失败处理: 检查引用的文件是否存在:ls agents/complementary-agent.md

第 9 步:添加到注册表

编辑 agents/_registry.yml,按字母顺序添加新智能体条目:

  - id: agent-name
    path: agents/agent-name.md
    description: Same one-line description from frontmatter
    tags: [domain, specialty]
    priority: normal
    tools: [Read, Write, Edit, Bash, Grep, Glob]
    skills:
      - skill-id-one
      - skill-id-two

在文件顶部递增 total_agents 数量。

预期结果: 注册表条目与智能体文件前置元数据匹配。total_agents 等于实际智能体条目数量。

失败处理: 使用 grep -c "^ - id:" agents/_registry.yml 统计条目数量,并验证与 total_agents 是否匹配。

第 10 步:验证发现

Claude Code 从 .claude/agents/ 目录发现智能体。在此存储库中,该目录是指向 agents/ 的符号链接:

# 验证符号链接存在且可解析
ls -la .claude/agents/
readlink -f .claude/agents/<agent-name>.md

.claude/agents/ 符号链接完整,无需额外操作——新智能体文件自动可被发现。

运行 README 自动化更新智能体 README:

npm run update-readmes

预期结果: .claude/agents/<agent-name>.md 解析到新智能体文件。agents/README.md 包含新智能体。

失败处理: 若符号链接损坏,重新创建:ln -sf ../agents .claude/agents。若 npm run update-readmes 失败,检查 scripts/generate-readmes.js 是否存在且 js-yaml 已安装。

第 11 步:生成翻译文件

所有智能体必须执行。 本步骤同时适用于人类作者和遵循此流程的 AI 智能体。不要跳过——遗漏的翻译会累积为过期的待办积压。

在提交新智能体后,立即为全部 4 种受支持的语言环境生成翻译文件:

for locale in de zh-CN ja es; do
  npm run translate:scaffold -- agents <agent-name> "$locale"
done

然后翻译每个文件中生成的散文内容(代码块和 ID 保持英文)。最后重新生成状态文件:

npm run translation:status

预期结果:i18n/{de,zh-CN,ja,es}/agents/<agent-name>.md 创建 4 个文件,全部的 source_commit 与当前 HEAD 匹配。npm run validate:translations 针对新智能体显示 0 条过期警告。

失败处理: 若脚手架失败,请确认该智能体存在于 agents/_registry.yml 中。若状态文件未更新,请显式运行 npm run translation:status——CI 不会自动触发该命令。

验证清单

  • 智能体文件存在于 agents/<agent-name>.md
  • YAML 前置元数据解析无误
  • 所有必需字段存在:namedescriptiontoolsmodelversionauthor
  • name 字段与文件名(不含 .md)匹配
  • 所有章节存在:Purpose、Capabilities、Available Skills、Usage Scenarios、Examples、Limitations、See Also
  • 前置元数据中的技能在 skills/_registry.yml 中存在
  • 默认技能(meditateheal)未列出,除非是智能体方法论的核心
  • 工具列表遵循最小权限原则
  • 智能体已列入 agents/_registry.yml,路径正确且元数据匹配
  • 注册表中的 total_agents 数量已更新
  • .claude/agents/ 符号链接解析到新智能体文件
  • 与现有智能体无显著重叠

常见问题

  • 工具过度分配:当智能体只需要读取和分析时包含 BashWriteWebFetch。这违反了最小权限原则,可能导致意外副作用。从最小集开始,仅在某项能力需要时添加工具。
  • 技能分配缺失或错误:列出注册表中不存在的技能 ID,或完全忘记分配技能。在添加前始终用 grep "id: skill-name" skills/_registry.yml 验证每个技能 ID。
  • 不必要地列出默认技能:当 meditateheal 已从注册表继承时将其添加到智能体前置元数据。仅在它们是智能体方法论的核心时才列出(例如 mysticalchemistgardenershaman)。
  • 范围与现有智能体重叠:创建与 53 个现有智能体之一已覆盖功能重复的新智能体。始终先搜索注册表,考虑扩展现有智能体的技能列表。
  • 目的和能力模糊:写"帮助开发"而非"搭建包含完整结构、文档和 CI/CD 配置的 R 包"。具体性是使智能体有用且可被发现的关键。

相关技能

  • create-skill - 创建 SKILL.md 文件的并行流程,而非智能体文件
  • create-team - 将多个智能体组合为协调团队(计划中)
  • commit-changes - 提交新智能体文件和注册表更新

GitHub 仓库

pjt222/agent-almanac
路径: i18n/zh-CN/skills/create-agent
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

content-collections

Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。

查看技能

polymarket

这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。

查看技能

creating-opencode-plugins

该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。

查看技能

sglang

SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。

查看技能