自定义代理设计Skill custom-agent-design

这个技能用于设计和构建自定义AI代理,利用Claude Agent SDK,包括定义代理目的、选择合适模型、设计系统提示、配置工具访问等步骤。它帮助开发者和AI工程师创建领域特定的自动化解决方案,优化AI代理的性能和功能。关键词:自定义代理设计、Claude Agent SDK、AI智能体、系统提示、工具配置、领域自动化。

AI智能体 0 次安装 0 次浏览 更新于 3/11/2026

名称:自定义代理设计 描述:使用Claude Agent SDK模式从头设计自定义代理。当构建领域特定的代理、设计具有完全SDK控制的代理或创建具有自定义工具和提示的专用代理时使用。 允许工具:Read, Grep, Glob

自定义代理设计技能

使用Claude Agent SDK模式设计领域特定的代理。

目的

指导设计自定义代理,以解决领域特定的问题,通过完全SDK控制上下文、模型、提示和工具。

何时使用

  • 构建新的自定义代理
  • 将通用工作流转换为专用代理
  • 设计领域特定的自动化
  • 创建可重复的代理模式

先决条件

  • 对领域问题的清晰理解
  • 访问Claude Agent SDK文档
  • 理解何时自定义代理是合适的(参见@agent-evolution-path.md)

设计过程

步骤1:定义代理目的

回答这些问题:

  • 这个代理解决什么具体问题?
  • 它需要什么领域专业知识?
  • 单一目的是什么?(一个代理,一个目的)
  • 利益相关者是谁?

输出:目的陈述(2-3句话)

步骤2:选择模型

基于任务复杂性选择:

任务类型 模型 为什么
简单转换 Haiku 快速、廉价
平衡任务 Sonnet 良好权衡
复杂推理 Opus 最高质量

决策因素

  • 速度要求
  • 质量要求
  • 成本约束
  • 任务复杂性

步骤3:设计系统提示

选择架构:

覆盖 (system_prompt=...)

  • 当:构建新产品时
  • 结果:不再是Claude Code
  • 完全控制行为

附加 (append_system_prompt=...)

  • 当:扩展Claude Code时
  • 结果:增强的Claude Code
  • 添加能力

系统提示模板

# [代理名称]

## 目的
[身份和角色定义 - 2-3句话]

## 指令
[核心行为 - 项目符号列表]
- 行为1
- 行为2

## 约束
[代理不能做什么]

## 示例(如果需要)
[输入/输出对]

步骤4:配置工具访问

要回答的问题

  • 这个代理需要什么工具?
  • 应该阻止什么工具?
  • 是否需要自定义工具?

工具配置

# 白名单方法
allowed_tools=["Read", "Write", "Bash"]

# 黑名单方法
disallowed_tools=["WebFetch", "WebSearch", "TodoWrite"]

# 无默认工具
disallowed_tools=["*"]

# 自定义工具
mcp_servers={"domain": custom_mcp_server}
allowed_tools=["mcp__domain__tool1", "mcp__domain__tool2"]

步骤5:添加治理(可选)

如果需要安全/治理:

hooks = {
    "PreToolUse": [
        HookMatcher(matcher="Read", hooks=[block_sensitive_files]),
        HookMatcher(hooks=[log_all_tool_usage]),
    ]
}

步骤6:选择部署形式

形式 使用时机
脚本 一次性自动化、ADWs
终端REPL 交互式工具
后端API UI集成
数据流 实时处理
多代理 复杂工作流

步骤7:创建配置

组装ClaudeAgentOptions:

options = ClaudeAgentOptions(
    # 上下文
    system_prompt=load_system_prompt("agent_system.md"),

    # 模型
    model="opus",

    # 工具
    allowed_tools=["Read", "Write", "custom_tool"],
    disallowed_tools=["WebFetch", "WebSearch"],

    # 自定义工具(如果需要)
    mcp_servers={"domain": domain_mcp_server},

    # 治理(如果需要)
    hooks=security_hooks,

    # 会话(如果需要)
    resume=session_id,
)

输出格式

当设计自定义代理时,提供:

## 自定义代理设计

**名称:** [代理名称]
**目的:** [1-2句话]
**领域:** [专业知识领域]

### 配置

**模型:** [haiku/sonnet/opus] - [原因]

**系统提示架构:**
- 类型: [覆盖/附加]
- 原因: [为什么选择这个]

**工具访问:**
- 允许: [列表]
- 不允许: [列表]
- 自定义: [如果有列出]

**治理:**
- 钩子: [如果有列出]
- 安全: [考虑]

**部署:**
- 形式: [脚本/repl/api/流/多代理]
- 原因: [为什么选择这种形式]

### 系统提示

[完整系统提示内容]

### 实现注释

[任何特殊考虑]

设计检查清单

  • [ ] 目的具体清晰
  • [ ] 模型匹配任务复杂性
  • [ ] 系统提示架构选择(覆盖 vs 附加)
  • [ ] 系统提示遵循模板
  • [ ] 工具访问最小(仅需所需)
  • [ ] 如果需要安全,添加治理钩子
  • [ ] 部署形式选择
  • [ ] 配置组装

反模式

避免 为什么 替代
与Claude Code竞争 无法击败通用代理 专门化
通用系统提示 无领域优势 领域特定
太多工具 上下文开销 最小工具集
缺少治理 安全风险 添加钩子
当附加有效时覆盖 失去Claude Code优势 使用附加

交叉引用

  • @agent-evolution-path.md - 何时构建自定义代理
  • @core-four-custom.md - 核心四配置
  • @system-prompt-architecture.md - 覆盖 vs 附加
  • @custom-tool-patterns.md - 工具创建
  • @model-selection skill - 模型选择指南

版本历史

  • v1.0.0 (2025-12-26): 初始发布

最后更新

日期: 2025-12-26 模型: claude-opus-4-5-20251101