Agency Agents 是 GitHub 上 125K+ stars 的开源项目,由 msitarzewski 创建。核心理念:
项目起源于一个 Reddit 帖子,经过数月迭代发展到 273 个 Agent 文件,支持 15 个 AI 工具平台。
每个 Agent 是一个 Markdown 文件,结构如下:
前端 YAML frontmatter 定义了 Agent 的元属性,正文是完整的系统提示词。
| 部门 | Agent 数 | 占比 | 特点 |
|---|---|---|---|
| specialized | 53 | 19% | 各种专项角色(最大) |
| marketing | 36 | 13% | SEO、内容营销、社媒等 |
| engineering | 34 | 12% | 前后端、架构、DevOps、AI |
| gis | 13 | 5% | 地理信息系统专项 |
| security | 10 | 4% | 安全审计、渗透 |
| design | 9 | 3% | UI/UX、视觉设计 |
| sales | 9 | 3% | 销售策略 |
| testing | 8 | 3% | 自动化测试、QA |
| paid-media | 7 | 3% | 广告投放 |
| project-management | 7 | 3% | 项目管理 |
| support | 6 | 2% | 技术支持 |
| spatial-computing | 6 | 2% | 空间计算/AR/VR |
| academic | 5 | 2% | 学术研究 |
| finance | 5 | 2% | 财务分析 |
| product | 5 | 2% | 产品管理 |
| game-development | 5 | 2% | 游戏开发 |
| 总计 | 273 | 16 部门 | |
| 工具 | 集成方式 | 安装命令 |
|---|---|---|
| Claude Code | ~/.claude/agents/ 目录 | --tool claude-code |
| Cursor | .cursorrules 或 rules/ | --tool cursor |
| GitHub Copilot | .github/copilot-instructions.md | --tool copilot |
| Gemini CLI | ~/.gemini/agent-config/ | --tool gemini-cli |
| OpenCode | ~/.opencode/agents/ | --tool opencode |
| Codex | ~/.codex/agents/ | --tool codex |
| Aider | .aider.conf.yml 规则 | --tool aider |
| Windsurf | .windsurf/ 规则 | --tool windsurf |
| Qwen | ~/.qwen/agents/ | --tool qwen |
| Kimi | ~/.kimi/agents/ | --tool kimi |
| Osaurus | ~/.osaurus/skills/ | --tool osaurus |
| Hermes | ~/.hermes/plugins/agency-agents-router/ | --tool hermes |
| Antigravity | 自定义 | --tool antigravity |
| OpenClaw | 自定义 | --tool openclaw |
| MCP Memory | 通用MCP协议 | 独立集成 |
项目用 divisions.json 作为部门的"数据源:"
每个部门有 label(显示名)、icon(Lucide 图标名)、color(品牌色)。被 app 和 CI 脚本消费。
| 决策 | 方案 | 理由 |
|---|---|---|
| Agent 存储格式 | Markdown + YAML frontmatter | 人类可读、Git 友好、工具通用 |
| 工具集成 | convert.sh 生成各工具格式 | 一套源码 → 适配所有工具 |
| Hermes 集成 | Lazy-router 插件 | 全量存磁盘,按需加载,不占上下文 |
| 安装方式 | 脚本 + App | 命令行用户用脚本,桌面用户用 App |
| CI 校验 | check-divisions.sh | 目录结构与 JSON 定义一致 |
理论讲完了,接下来动手实战——从源码安装一个 DevOps Automator Agent 到 Claude Code,然后在命令行中使用它。
我们先看选中的 Agent 源文件:
| 属性 | 值 |
|---|---|
| 源文件路径 | /root/agency-agents/engineering/engineering-devops-automator.md |
| name | DevOps Automator |
| emoji | ⚙️ |
| vibe | Automates infrastructure so your team ships faster and sleeps better. |
| 文件大小 | 375 行,12.8 KB(含前端 YAML + Markdown 提示词 + 代码示例) |
这个 Agent 专注于:基础设施即代码(Terraform)、CI/CD 流水线(GitHub Actions)、容器编排(Kubernetes)、监控告警(Prometheus/Grafana)。
Claude Code 的安装类型是 per-agent + identity 格式——意味着源文件直接复制到目标目录,无需任何格式转换。
# 完整安装(所有 Agent,所有已检测到的工具) cd /root/agency-agents ./scripts/install.sh # 只安装 Claude Code(最快) ./scripts/install.sh --tool claude-code # 只安装 Engineering 部门的 Agent 到 Claude Code ./scripts/install.sh --tool claude-code --select engineering # 干运行模式(不实际复制,只看会装什么) ./scripts/install.sh --tool claude-code --dry-run
执行 --tool claude-code 时,install.sh 内部做了这些事:
1. detect_claude_code() ← 检测 ~/.claude/ 目录是否存在
2. 解析目标路径 → ~/.claude/agents/
3. 遍历所有部门目录中的 *.md 文件
4. 对每个文件:
a. is_agent_file() ← 校验是否以 YAML frontmatter 开头
b. agent_slug() ← 从 name 字段生成 slug
c. slug_allowed() ← 检查是否在白名单/黑名单中
d. install_file() ← 复制源文件到 ~/.claude/agents/{slug}.md
5. 输出统计:"Claude Code: N agents -> ~/.claude/agents"
slug 是安装过程中的关键中间值。它由 name 字段经过 agent_slug() 函数生成:
# agent_slug() 实现(简化)
agent_slug() {
local name
name="$(get_field name "$1")" # 提取 YAML name 字段
[[ -n "$name" ]] && slugify "$name" # 转为 kebab-case
}
# slugify 将 "DevOps Automator" → "devops-automator"
# 规则:小写 + 空格变连字符 + 去除非字母数字
| 源文件 | name 字段 | 生成的 slug | 目标路径 |
|---|---|---|---|
engineering-devops-automator.md | DevOps Automator | devops-automator | ~/.claude/agents/devops-automator.md |
engineering-systems-architect.md | Systems Architect | systems-architect | ~/.claude/agents/systems-architect.md |
security-penetration-tester.md | Penetration Tester | penetration-tester | ~/.claude/agents/penetration-tester.md |
engineering-devops-automator.md(含部门前缀),但 slug 是从 name: DevOps Automator 提取的 devops-automator。所以目标文件名是 devops-automator.md,不是 engineering-devops-automator.md。安装完成后,~/.claude/agents/ 目录变成这样:
~/.claude/ ├── agents/ ← Agent 存放目录 │ ├── devops-automator.md ← 我们刚装的 DevOps Automator │ ├── systems-architect.md ← 其他工程的 Agent │ ├── lead-software-engineer.md │ ├── penetration-tester.md ← 安全部门的 Agent │ ├── marketing-aeo.md ← 营销部门的 Agent │ └── ... (安装了多少就有多少) ├── projects/ ← Claude 项目配置 └── CLAUDE.md ← 项目级指导文件
与源文件的对比:
# 源码目录(完整结构,含部门分类) /root/agency-agents/ ├── engineering/ │ ├── engineering-devops-automator.md ← 原名 │ ├── engineering-systems-architect.md │ └── ... ├── security/ ├── marketing/ └── ... # 安装后(扁平化,所有 Agent 在一个目录下,以 slug 命名) ~/.claude/agents/ ├── devops-automator.md ← slug 化后的文件名 ├── systems-architect.md ├── penetration-tester.md └── ...
format: identity 意味着安装到 ~/.claude/agents/ 的文件和源文件完全一样——就是完整 375 行的 Markdown 内容,含 YAML frontmatter。不是只有提示词部分,是整个文件原封不动复制。安装完成后,在 Claude Code CLI 中有两种用法:
# 启动 Claude Code claude # 在对话中切换到 DevOps Automator Agent /agent devops-automator # 效果:Claude 的角色立即变成 DevOps Automator # 它会加载 engineering-devops-automator.md 中的系统提示词 # 以该 Agent 的身份和逻辑回答后续问题
# 一次性任务,以 DevOps Automator 的身份运行 claude --agent devops-automator "帮我设计一个 GitHub Actions CI/CD 流水线" # 或者简写 claude -a devops-automator "分析我的 Terraform 配置"
| 场景 | 命令 | Agent 行为 |
|---|---|---|
| 审查 CI/CD 配置 | /agent devops-automator → 贴入你的 GitHub Actions 配置 | 检测安全漏洞、缺少的阶段、建议优化 |
| 架构 Terraform | claude -a devops-automator "设计 AWS 三层架构" | 输出完整 IaC + 监控 + 自动扩缩配置 |
| K8s 排障 | claude -a devops-automator "Pod 一直 CrashLoopBackOff" | 按自动化流程诊断并提出修复方案 |
| 审计安全 | /agent devops-automator → "审查这个 Dockerfile" | 检查镜像安全、非 root 运行、分层优化 |
当你在 Claude Code 中使用 /agent devops-automator 后:
/agent devops-automator = 把你的 Claude 瞬间变成一个专注 DevOps 的高级工程师。再 /agent default 就切回通用模式。# 卸载:直接删除文件即可 rm -i ~/.claude/agents/devops-automator.md # 更新:重新运行 install.sh(覆盖旧文件) ./scripts/install.sh --tool claude-code # 或者只更新特定部门 ./scripts/install.sh --tool claude-code --select engineering
学到这里,你可能会问:这个项目叫 Agency Agents,但我们 Hermes 里也有 Skills。它们到底有什么区别?什么时候该用 Agent,什么时候该用 Skill?
| 维度 | Agent(Claude Code /agent) | Skill(Hermes skill_view) |
|---|---|---|
| 本质 | 🎭 人格替换 | 📋 工作流手册 |
| 回答的问题 | "我是谁?我的领域是什么?" | "该怎么做?步骤是什么?" |
| 激活方式 | /agent devops-automator | skill_view('teach-course') |
| 文件位置 | ~/.claude/agents/*.md | ~/.hermes/skills/*/SKILL.md |
| 文件结构 | YAML frontmatter + Identity & Memory + Mission + Rules | YAML frontmatter + 前置条件 + 步骤 + 注意事项 |
| 影响范围 | 替换整个系统提示词 | 附加到现有上下文,补充分片 |
| 工具声明 | 无内置——依赖宿主工具 | 可声明所需工具集和外部命令 |
| 复用方式 | 一次安装,全工具可用 | 按需加载到当前会话 |
# ── Agent 场景:需要 AI「成为」某个角色 ──
# ✅ 适合 Agent
/agent devops-automator
"帮我审查这个 GitHub Actions 配置,看看安全问题"
→ Agent 以 DevOps 专家的身份深入分析,主动提出
Terraform/K8s/监控等 DevOps 领域细节
# ❌ 不适合 Agent
/agent devops-automator
"教我安装 PostgreSQL"
→ Agent 可能给出冗长的 DevOps 视角回答,
但缺少安装 Postgres 的标准化步骤
# ── Skill 场景:需要 AI「执行」标准化流程 ──
# ✅ 适合 Skill
skill_view('teach-course')
→ 加载完整教学课程创建流程:
材料准备 → 目录结构 → 课程页 → Nginx → Git
# ❌ 不适合 Skill
skill_view('teach-course')
"帮我调试这个 Kubernetes Pod"
→ Skill 不包含 K8s 调试知识,无效加载
| 对比项 | Agent(Agency Agents) | Skill(Hermes Skills) |
|---|---|---|
| 定义方式 | Markdown 人格文件(自然语言描述角色) | YAML+Markdown 步骤文件(结构化指令) |
| 粒度 | 粗粒度——整段系统提示词替换 | 细粒度——步骤级指令、可选子任务 |
| 确定性 | 低——人格驱动,AI 自由发挥空间大 | 高——步骤明确,减少 LLM 自由发挥 |
| 工具绑定 | 无——只提供人格,工具由宿主环境决定 | 可能——可声明 terminal、web、file 等工具 |
| 版本管理 | Git 管理 273 个文件,CI 校验格式 | Git 管理 Skill 目录,无 CI 校验 |
| 可测试性 | 弱——人格效果依赖主观判断 | 强——步骤可逐条验证 |
| 跨工具兼容 | 强——15 个工具(Claude/Cursor/Copilot/Hermes…) | 弱——通常绑定到特定 Agent 框架 |
| 学习成本 | 低——写一段 Markdown 描述角色即可 | 中——需要理解 frontmatter 和步骤编排 |
Agent 和 Skill 不是二选一,而是互补关系。最佳实践是两者搭配使用:
# 模式 1:Skill 提供流程 + Agent 提供角色
skill_view('teach-course') ← 加载「教学课程」工作流
/agent devops-automator ← 以 DevOps 专家身份执行
"帮我设计第3课中的 CI/CD 实战示例"
# 结果:既遵循了 teach-course 的标准化步骤,
# 又以 DevOps 专家的深度输出内容
# 模式 2:Agent 做深度诊断 + Skill 做标准化修复
/agent devops-automator ← DevOps 专家诊断问题
"这个 K8s Pod 为什么 CrashLoopBackOff?"
→ 给出诊断结论
skill_view('systematic-debugging') ← 调试 skill 引导修复
→ 按 4 阶段流程系统化修复
# 结果:Agent 发现病灶,Skill 提供手术流程
| Agent | Skill | |
|---|---|---|
| ✅ 优势 |
• 一次安装,15 个工具通用 • 人格驱动,回答有"人情味"和专业感 • 无需编程,纯 Markdown 即可创建 • CI 自动校验格式完整性 |
• 步骤明确,结果可预期 • 可声明所需工具(terminal、web 等) • 适合标准化、重复性任务 • 可包含具体命令和代码模板 |
| ❌ 劣势 |
• 人格自由发挥,输出质量不稳定 • 无工具绑定,依赖宿主环境 • 没有步骤保证,复杂任务可能遗漏 • 273 个 Agent 质量参差不齐 |
• 跨工具不通用(Hermes 专属) • 创建门槛较高(需理解技能结构) • 不改变助手人格,缺乏角色深度 • 需要手动加载到会话 |
| 你的需求 | 推荐方案 | 理由 |
|---|---|---|
| 需要领域专家深入回答 | 🎭 Agent | 人格驱动让 AI 进入专家模式 |
| 需要按固定流程操作 | 📋 Skill | 步骤明确,不遗漏任何环节 |
| 既要专家深度又要流程严谨 | 🎭 + 📋 组合 | Agent 提供人格,Skill 提供流程 |
| 创建可复用的团队标准 | 📋 Skill(优先) | 步骤固化,新人也能执行 |
| 制作面向公众的 AI 角色 | 🎭 Agent(优先) | 跨工具兼容,覆盖面广 |
| 执行一次性的探索任务 | 🎭 Agent | 快速加载无需预定义步骤 |
/agent <slug> 在 Claude Code 中切换人格的方法