关于 agent-patterns
agent-patterns 是面向 AI Agent 开发者的模式与工作流指南,依据任务结构帮助选择和实现编排方案。它覆盖确定性流程、动态编排、迭代改进、模式组合、工具设计及多种语言示例。
主要功能
- 01按任务结构选择 Agent 模式
- 02涵盖链式、路由与并行模式
- 03提供动态编排和质量迭代指南
- 04指导组合模式与工具设计
- 05包含多种语言实现示例
适用场景
- 01为固定步骤的任务设计工作流
- 02为分类输入选择处理路径
- 03为开放式任务规划 Agent 编排
- 04为工具接口或多模式组合寻求实现指引
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ markpitt/ claude-skills --skill agent-patterns安装后在 Claude Code 中输入/agent-patterns确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
REFACTORING_COMPLETE_agent-patterns.mdresources/augmented-llm.mdcore-patterns.mddynamic-orchestration.mditerative-refinement.mdlanguage-implementation.mdpattern-combinations.mdpatterns-reference.mdtool-design.mdtemplates/c/autonomous_agent.cevaluator_optimizer.corchestrator_workers.cparallelization.cprompt_chaining.crouting.ctemplates/csharp/AutonomousAgent.csEvaluatorOptimizer.csOrchestratorWorkers.csParallelization.csPromptChaining.csRouting.cstemplates/dart/autonomous_agent.dartevaluator_optimizer.dartorchestrator_workers.dartparallelization.dartprompt_chaining.dartrouting.darttemplates/genaiscript/autonomous_agent.genai.mtsevaluator_optimizer.genai.mtsorchestrator_workers.genai.mts详细介绍
Agent 模式编排技能
此技能实现了 Anthropic《构建高效 Agent》工程指南中的 AI Agent 模式和工作流。它使用模块化资源,帮助你为自身需求选择、设计并实现合适的模式。
快速参考:我需要哪种模式?
| 任务特征 | 最佳模式 | 加载资源 |
|---|---|---|
| 固定的顺序步骤,且每一步都需要不同的处理方式 | 提示词链 | core-patterns.md |
| 输入可分为不同类别 | 路由 | core-patterns.md |
| 需要并行运行的独立任务 | 并行化(分段) | core-patterns.md |
| 多次执行同一任务以提高稳健性或达成共识 | 并行化(投票) | core-patterns.md |
| 子任务不可预测,需要在运行时确定 | 编排器-工作者 | dynamic-orchestration.md |
| 需要完全开放式探索 | 自主 Agent | dynamic-orchestration.md |
| 需要通过迭代提升质量 | 评估器-优化器 | iterative-refinement.md |
| 需要组合多种模式 | 参见决策表 | pattern-combinations.md |
| 特定语言的实现 | 选择语言 | language-implementation.md |
| 工具设计/优化 | 接口设计 | tool-design.md |
模式类别索引
核心模式(确定性工作流)
适用场景: 工作流完全预先确定
模式:
- 提示词链 - 带检查点的顺序大模型调用
- 路由 - 分类并路由到专用处理程序
- 并行化 - 并发执行(分段或投票)
资源: resources/core-patterns.md(350+ 行)
- 完整的模式说明和架构
- 适用和不适用场景
- 真实案例
- 每种模式的代码框架
动态编排模式(不可预测的工作流)
适用场景: 工作流无法预先确定
模式:
- 编排器-工作者 - 中央大模型进行分解,工作者负责执行
- 自主 Agent - 使用工具进行开放式探索
资源: resources/dynamic-orchestration.md(400+ 行)
- 详细的模式说明和要求
- 各种方法的适用场景
- Agent 的关键要求
- 全面的实现示例
迭代改进
适用场景: 需要通过反馈提高输出质量
模式:
- 评估器-优化器 - 生成器 + 评估器反馈循环
资源: resources/iterative-refinement.md(350+ 行)
- 模式实现策略
- 评估标准设计
- 停止条件
- 成本与质量的权衡
高级:模式组合
适用场景: 组合多种模式来解决复杂问题
示例:
- 路由 + 提示词链(不同路由采用不同链)
- 编排器 + 评估器-优化器(先分解,再改进)
- 按复杂度路由(路由到合适的模式)
- 并行编排器(多个视角)
资源: resources/pattern-combinations.md(400+ 行)
- 7 种主要组合模式
- 决策框架和决策树
- 成本与复杂度的权衡
- 测试策略
工具设计与实现
适用场景: 为 Agent 使用而设计工具
主题:
- 防错设计
- 自然格式选择
- 参数设计模式
- 常见陷阱
资源: resources/tool-design.md(560+ 行,综合参考资料)
- 核心原则和最佳实践
- 来自 SWE-bench 的实际经验
- 特定语言的注意事项
- 工具接口测试
特定语言的实现
适用场景: 使用所选语言实现模式
语言:
- TypeScript/JavaScript
- Python
- Rust
- C#/.NET
- Go
- Dart
资源: resources/language-implementation.md(450+ 行)
- 各种语言的完整代码示例
- 各种语言的优势和劣势
- 最佳实践和惯用法
- 并发模型
编排协议
阶段 1:确定你的任务
问问自己:
1. 工作流是否预先确定?
- 是 → 使用核心模式(阶段 2A)
- 否 → 使用动态模式(阶段 2B)
2. 输出质量迭代是否重要?
- 是 → 考虑添加评估器-优化器
- 否 → 直接执行
3. 是否需要多个模式?
- 是 → 查看模式组合
- 否 → 单一模式即可
阶段 2A:选择核心模式(预先确定的工作流)
决策:串行还是并行?
串行(按固定顺序执行步骤):
- 每一步都依赖上一步 → 提示词链
- 示例:列提纲 → 撰写 → 校对
分类(由输入类别决定处理方式):
- 可以对输入进行分类 → 路由
- 示例:客户服务工单(退款/技术/投诉)
并行(相互独立的子任务):
- 子任务相互独立 → 并行化(分段)
- 示例:同时评估代码的安全性和性能
并行(多次执行同一任务):
- 需要达成共识/提高稳健性 → 并行化(投票)
- 示例:由多位专家进行安全审查
→ 加载 resources/core-patterns.md 以了解实现方法
阶段 2B:选择动态模式(不可预测的工作流)
决策:你能预测子任务的数量吗?
子任务可预测:
- 知道要做什么,但不知道怎么做 → 编排器-工作者
- 示例:代码审查(需要分析、生成、测试、编写文档)
- 示例:研究任务(需要搜索、分析、综合)
所有环节都不可预测:
- 开放式探索 → 自主 Agent
- 示例:解决 GitHub 问题(步骤完全不可预测)
- 示例:计算机使用任务(可能需要作出许多决策并选择不同方向)
→ 加载 resources/dynamic-orchestration.md 以了解实现方法
阶段 3:考虑质量与优化
符合以下条件时,添加评估器-优化器:
- 存在明确的评估标准
- 迭代能够提升质量
- 初次尝试通常存在可修正的问题
- 质量比速度更重要
可与以下模式组合:
- 核心模式 + 评估器(优化输出)
- 编排器 + 评估器(优化各个组件)
- 路由 + 评估器(路由到不同的优化策略)
→ 加载 resources/iterative-refinement.md 以了解实现方法
阶段 4:处理复杂模式
如果要组合多个模式:
- 遵循
pattern-combinations.md中的决策框架 - 从简单开始;逐步增加复杂度
- 监控每个阶段的成本
- 充分测试边缘情况
阶段 5:使用你的语言实现
选择语言并加载示例:
- 加载
resources/language-implementation.md - 找到对应的语言部分
- 根据你的使用场景调整示例
- 参考 tool-design.md,了解接口最佳实践
模式选择启发式
按问题结构
定义明确、工作流固定 → 核心模式
- 使用提示词链或路由
- 成本:单次调用的 1~3 倍
- 风险:低
工作流灵活,分解方式已知 → 编排器-工作者
- 中央规划器动态分解任务
- 成本:单次调用的 3~10 倍
- 风险:中
开放式探索 → 自主 Agent
- Agent 逐步决定下一步行动
- 成本:单次调用的 10~100 倍
- 风险:高(需要沙盒隔离)
质量迭代很重要 → 评估器-优化器
- 添加到上述任意模式中
- 成本:随迭代次数成倍增加
- 优势:质量提升 5%~15%
多种视角很有价值 → 模式组合
- 策略性地组合模式
- 成本:取决于组合方式
- 优势:更稳健、更全面
按领域
客户服务 → 路由(复杂情况可结合编排器-工作者) 内容生成 → 提示词链(可结合评估器-优化器) 代码更改 → 编排器-工作者(分解、并行处理) 研究 → 编排器-工作者(可结合评估器-优化器) 问题解决 → 自主 Agent(或按复杂度路由) 设计 → 并行编排器(多种视角)
使用工作流
工作流 1:我不知道该使用哪种模式
- 描述你的问题或用例
- 我会针对以下方面提出澄清问题:
- 工作流的可预测性
- 输入的多样性
- 质量与成本之间的权衡
- 复杂度限制
- 我会推荐合适的模式
- 你选择要深入了解的资源
工作流 2:我知道要用哪种模式,但需要实现
- 告诉我:
- 需要的具体模式
- 编程语言
- 任何约束或要求
- 我会生成:
- 可用于生产环境的代码
- 错误处理和最佳实践
- 用法示例
- 测试建议
工作流 3:我需要组合多种模式
- 描述你的需求
- 我会参考
pattern-combinations.md - 向你展示如何编排组合
- 提供集成实现
工作流 4:我需要设计工具接口
- 描述工具的用途
- 我会参照
tool-design.md中的最佳实践进行审查 - 运用防错原则提出改进建议
- 提供优化后的工具架构
资源导航指南
| 我想要…… | 加载此文件 | 所需时间 |
|---|---|---|
| 了解基本模式 | core-patterns.md | 15 分钟 |
| 学习动态编排 | dynamic-orchestration.md | 20 分钟 |
| 了解迭代优化 | iterative-refinement.md | 15 分钟 |
| 设计工具接口 | tool-design.md | 20 分钟 |
| 组合多种模式 | pattern-combinations.md | 20 分钟 |
| 使用特定语言实现 | language-implementation.md | 20-30 分钟 |
| 快速查阅所有模式 | 阅读此 SKILL.md | 10 分钟 |
核心原则(适用于所有模式)
- 从简单开始 – 使用满足需求的最简单模式
- 衡量复杂度 – 只有在确实有益时才增加复杂度
- 优先设计工具 – 相比提示词工程,应更多投入工具质量
- 保持透明 – 展示计划和决策,以便调试
- 严格测试 – 对生产环境中的 Agent 尤为重要
验证清单
实现所选模式之前:
设计阶段:
- 工作流的复杂度有需求作为依据
- 模式选择适合问题
- 已了解成本影响,且可以接受
- 已定义成功指标
实现阶段:
- 每个步骤都有错误处理
- 工具接口遵循防错原则
- 已定义停止条件(尤其适用于 Agent)
- 已规划监控和日志记录
- 外部内容/检索内容已明确界定,并作为不可信数据处理(W011 提示词注入防御)
- 系统提示词明确指示模型不要遵循检索内容中的指令
测试阶段:
- 已全面测试正常路径
- 已识别并处理边缘情况
- 已实现成本跟踪
- 已验证生产就绪状态
关键文件参考
| 文件 | 用途 | 行数 | 阅读时机 |
|---|---|---|---|
SKILL.md(此文件) | 编排中心和决策指南 | 280 | 首先阅读(概览) |
resources/augmented-llm.md | 基础构建模块 | 300+ | 使用任何模式之前 |
resources/core-patterns.md | 提示词链、路由、并行化 | 350+ | 需要基本模式时 |
resources/dynamic-orchestration.md | 编排者-工作者、自主 Agent | 400+ | 需要动态模式时 |
resources/iterative-refinement.md | 评估者-优化器模式 | 350+ | 需要迭代提升质量时 |
resources/tool-design.md | 工具接口设计和优化 | 560+ | 设计工具时 |
resources/pattern-combinations.md | 复杂的多模式工作流 | 400+ | 组合模式时 |
resources/language-implementation.md | 特定语言的代码示例 | 450+ | 需要实现时 |
resources/patterns-reference.md | 原始综合参考资料 | 500+ | 深入查阅时 |
示例
示例 1:客户支持系统
用例: 将支持工单路由给合适的处理人员
解决方案:
- 按类别路由(路由模式)
- 为每种类型设置不同的处理人员:
- 常见问题 → FAQ 查询(提示词链式调用)
- 退款 → 政策检查 + 回复生成(提示词链式调用)
- 技术问题 → 诊断 → 搜索解决方案 → 回复(编排器-工作者)
要加载的资源:
- 首先:
core-patterns.md(路由) - 然后:
pattern-combinations.md(路由 + 链式调用组合) - 最后:
language-implementation.md(你的语言)
示例 2:高质量内容生成
用例: 生成符合严格质量标准的营销文案
解决方案:
- 生成器创建内容(简单的 LLM 调用)
- 评估器根据标准进行检查
- 如果未通过:生成器根据反馈进行优化
- 迭代,直到符合标准
要加载的资源:
- 首先:
iterative-refinement.md(评估器-优化器) - 然后:
language-implementation.md(你的语言)
示例 3:复杂代码修改
用例: 处理涉及多个文件的代码修改
解决方案:
- 编排器分析需求
- 工作者将任务分解为:分析代码库 → 生成代码 → 编写测试 → 编写文档
- 所有工作者并行运行
- 编排器将结果整合为协调一致的变更集
- 评估器验证功能
要加载的资源:
- 首先:
dynamic-orchestration.md(编排器-工作者) - 然后:
pattern-combinations.md(编排器 + 评估) - 然后:
tool-design.md(设计用于修改代码的工具) - 最后:
language-implementation.md(你的语言)
后续步骤
- 识别任务类型 → 使用上方的快速参考表
- 加载合适的资源 → 阅读专题指南(15-30 分钟)
- 选择实现语言 → 加载语言示例
- 从简单版本开始 → 仅在必要时增加复杂度
- 迭代并测试 → 持续衡量质量和成本
版本历史
- 2.0 - 重构为模块化编排模式,并拆分为专题资源文件
- 1.0 - 原始的单体技能文档,包含所有模式