name: create-agent description: 使用 Claude Agent SDK 模式构建新的自定义代理配置。适用于添加新的专业子代理。 argument-hint: [代理名称] [目的描述] allowed-tools: Read, Write, Glob
创建代理
构建一个新的自定义代理配置。
参数
$1: 代理名称(kebab-case)$ARGUMENTS: 高级目的描述(名称之后)
指令
您正在使用 Claude Agent SDK 模式创建新的自定义代理脚手架。
步骤 1: 解析参数
提取:
- 从
$1中获取代理名称(必需) - 从剩余参数中获取目的
如果没有提供名称,停止并询问代理名称。 如果没有提供目的,停止并询问目的描述。
步骤 2: 设计代理
基于目的,确定:
模型选择:
- 简单转换 -> Haiku
- 平衡任务 -> Sonnet
- 复杂推理 -> Opus
系统提示架构:
- 构建新产品 -> Override
- 扩展 Claude 代码 -> Append
工具要求:
- 需要什么工具?
- 应该阻止什么工具?
- 需要任何自定义工具吗?
步骤 3: 生成系统提示
创建系统提示,遵循结构:
# [代理名称]
## 目的
[身份和角色 - 2-3 句子]
## 指令
[核心行为 - 项目符号列表]
## 约束
[代理不能做什么]
## 示例(如果需要)
[输入/输出对]
步骤 4: 生成配置
创建 ClaudeAgentOptions 配置:
from claude_agent_sdk import ClaudeAgentOptions
def load_system_prompt() -> str:
prompt_file = Path(__file__).parent / "prompts" / "[agent]_system.md"
with open(prompt_file, "r") as f:
return f.read().strip()
options = ClaudeAgentOptions(
system_prompt=load_system_prompt(),
model="claude-[model]-...",
allowed_tools=[...],
disallowed_tools=[...],
)
步骤 5: 生成入口点
创建基本代理脚本:
import asyncio
from pathlib import Path
from claude_agent_sdk import (
query,
ClaudeAgentOptions,
AssistantMessage,
TextBlock,
ResultMessage,
)
async def main():
options = ClaudeAgentOptions(...)
prompt = input("Enter prompt: ")
async for message in query(prompt=prompt, options=options):
if isinstance(message, AssistantMessage):
for block in message.content:
if isinstance(block, TextBlock):
print(block.text)
elif isinstance(message, ResultMessage):
print(f"Cost: ${message.total_cost_usd:.6f}")
if __name__ == "__main__":
asyncio.run(main())
输出
## 代理已创建
**名称:** [代理名称]
**模型:** [haiku/sonnet/opus]
**架构:** [override/append]
### 要创建的文件
1. `[代理名称]/prompts/[代理]_system.md` - 系统提示
2. `[代理名称]/[代理]_agent.py` - 代理实现
3. `[代理名称]/README.md` - 文档
### 系统提示
```markdown
[生成的系统提示]
配置
[生成的配置]
入口点
[生成的脚本]
后续步骤
- 创建目录结构
- 保存系统提示
- 保存代理脚本
- 用简单提示测试
- 如果需要,添加自定义工具
- 如果需要,添加治理钩子
笔记
- 请参阅 @custom-agent-design 技能以获取设计工作流程
- 请参阅 @core-four-custom.md 以获取配置选项
- 请参阅 @system-prompt-architecture.md 以获取提示模式