mcpField
A
agent-patterns

agent-patterns

github.com/markpittAgent 工作流2445 次安装36 周前更新
代码仓库

关于 agent-patterns

agent-patterns 是面向 AI Agent 开发者的模式与工作流指南,依据任务结构帮助选择和实现编排方案。它覆盖确定性流程、动态编排、迭代改进、模式组合、工具设计及多种语言示例。

主要功能

  1. 01按任务结构选择 Agent 模式
  2. 02涵盖链式、路由与并行模式
  3. 03提供动态编排和质量迭代指南
  4. 04指导组合模式与工具设计
  5. 05包含多种语言实现示例

适用场景

  1. 01为固定步骤的任务设计工作流
  2. 02为分类输入选择处理路径
  3. 03为开放式任务规划 Agent 编排
  4. 04为工具接口或多模式组合寻求实现指引

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/markpitt/claude-skills --skill agent-patterns

安装后在 Claude Code 中输入/agent-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

REFACTORING_COMPLETE_agent-patterns.md
resources/
augmented-llm.md
core-patterns.md
dynamic-orchestration.md
iterative-refinement.md
language-implementation.md
pattern-combinations.md
patterns-reference.md
tool-design.md
templates/c/
autonomous_agent.c
evaluator_optimizer.c
orchestrator_workers.c
parallelization.c
prompt_chaining.c
routing.c
templates/csharp/
AutonomousAgent.cs
EvaluatorOptimizer.cs
OrchestratorWorkers.cs
Parallelization.cs
PromptChaining.cs
Routing.cs
templates/dart/
autonomous_agent.dart
evaluator_optimizer.dart
orchestrator_workers.dart
parallelization.dart
prompt_chaining.dart
routing.dart
templates/genaiscript/
autonomous_agent.genai.mts
evaluator_optimizer.genai.mts
orchestrator_workers.genai.mts

详细介绍

Agent 模式编排技能

此技能实现了 Anthropic《构建高效 Agent》工程指南中的 AI Agent 模式和工作流。它使用模块化资源,帮助你为自身需求选择、设计并实现合适的模式。

快速参考:我需要哪种模式?

任务特征最佳模式加载资源
固定的顺序步骤,且每一步都需要不同的处理方式提示词链core-patterns.md
输入可分为不同类别路由core-patterns.md
需要并行运行的独立任务并行化(分段)core-patterns.md
多次执行同一任务以提高稳健性或达成共识并行化(投票)core-patterns.md
子任务不可预测,需要在运行时确定编排器-工作者dynamic-orchestration.md
需要完全开放式探索自主 Agentdynamic-orchestration.md
需要通过迭代提升质量评估器-优化器iterative-refinement.md
需要组合多种模式参见决策表pattern-combinations.md
特定语言的实现选择语言language-implementation.md
工具设计/优化接口设计tool-design.md

模式类别索引

核心模式(确定性工作流)

适用场景: 工作流完全预先确定

模式:

  1. 提示词链 - 带检查点的顺序大模型调用
  2. 路由 - 分类并路由到专用处理程序
  3. 并行化 - 并发执行(分段或投票)

资源: resources/core-patterns.md(350+ 行)

  • 完整的模式说明和架构
  • 适用和不适用场景
  • 真实案例
  • 每种模式的代码框架
动态编排模式(不可预测的工作流)

适用场景: 工作流无法预先确定

模式:

  1. 编排器-工作者 - 中央大模型进行分解,工作者负责执行
  2. 自主 Agent - 使用工具进行开放式探索

资源: resources/dynamic-orchestration.md(400+ 行)

  • 详细的模式说明和要求
  • 各种方法的适用场景
  • Agent 的关键要求
  • 全面的实现示例
迭代改进

适用场景: 需要通过反馈提高输出质量

模式:

  1. 评估器-优化器 - 生成器 + 评估器反馈循环

资源: 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:我不知道该使用哪种模式
  1. 描述你的问题或用例
  2. 我会针对以下方面提出澄清问题:
    • 工作流的可预测性
    • 输入的多样性
    • 质量与成本之间的权衡
    • 复杂度限制
  3. 我会推荐合适的模式
  4. 你选择要深入了解的资源
工作流 2:我知道要用哪种模式,但需要实现
  1. 告诉我:
    • 需要的具体模式
    • 编程语言
    • 任何约束或要求
  2. 我会生成:
    • 可用于生产环境的代码
    • 错误处理和最佳实践
    • 用法示例
    • 测试建议
工作流 3:我需要组合多种模式
  1. 描述你的需求
  2. 我会参考 pattern-combinations.md
  3. 向你展示如何编排组合
  4. 提供集成实现
工作流 4:我需要设计工具接口
  1. 描述工具的用途
  2. 我会参照 tool-design.md 中的最佳实践进行审查
  3. 运用防错原则提出改进建议
  4. 提供优化后的工具架构

资源导航指南

我想要……加载此文件所需时间
了解基本模式core-patterns.md15 分钟
学习动态编排dynamic-orchestration.md20 分钟
了解迭代优化iterative-refinement.md15 分钟
设计工具接口tool-design.md20 分钟
组合多种模式pattern-combinations.md20 分钟
使用特定语言实现language-implementation.md20-30 分钟
快速查阅所有模式阅读此 SKILL.md10 分钟

核心原则(适用于所有模式)

  1. 从简单开始 – 使用满足需求的最简单模式
  2. 衡量复杂度 – 只有在确实有益时才增加复杂度
  3. 优先设计工具 – 相比提示词工程,应更多投入工具质量
  4. 保持透明 – 展示计划和决策,以便调试
  5. 严格测试 – 对生产环境中的 Agent 尤为重要

验证清单

实现所选模式之前:

设计阶段:

  • 工作流的复杂度有需求作为依据
  • 模式选择适合问题
  • 已了解成本影响,且可以接受
  • 已定义成功指标

实现阶段:

  • 每个步骤都有错误处理
  • 工具接口遵循防错原则
  • 已定义停止条件(尤其适用于 Agent)
  • 已规划监控和日志记录
  • 外部内容/检索内容已明确界定,并作为不可信数据处理(W011 提示词注入防御)
  • 系统提示词明确指示模型不要遵循检索内容中的指令

测试阶段:

  • 已全面测试正常路径
  • 已识别并处理边缘情况
  • 已实现成本跟踪
  • 已验证生产就绪状态

关键文件参考

文件用途行数阅读时机
SKILL.md(此文件)编排中心和决策指南280首先阅读(概览)
resources/augmented-llm.md基础构建模块300+使用任何模式之前
resources/core-patterns.md提示词链、路由、并行化350+需要基本模式时
resources/dynamic-orchestration.md编排者-工作者、自主 Agent400+需要动态模式时
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:客户支持系统

用例: 将支持工单路由给合适的处理人员

解决方案:

  1. 按类别路由(路由模式)
  2. 为每种类型设置不同的处理人员:
    • 常见问题 → FAQ 查询(提示词链式调用)
    • 退款 → 政策检查 + 回复生成(提示词链式调用)
    • 技术问题 → 诊断 → 搜索解决方案 → 回复(编排器-工作者)

要加载的资源:

  1. 首先:core-patterns.md(路由)
  2. 然后:pattern-combinations.md(路由 + 链式调用组合)
  3. 最后:language-implementation.md(你的语言)
示例 2:高质量内容生成

用例: 生成符合严格质量标准的营销文案

解决方案:

  1. 生成器创建内容(简单的 LLM 调用)
  2. 评估器根据标准进行检查
  3. 如果未通过:生成器根据反馈进行优化
  4. 迭代,直到符合标准

要加载的资源:

  1. 首先:iterative-refinement.md(评估器-优化器)
  2. 然后:language-implementation.md(你的语言)
示例 3:复杂代码修改

用例: 处理涉及多个文件的代码修改

解决方案:

  1. 编排器分析需求
  2. 工作者将任务分解为:分析代码库 → 生成代码 → 编写测试 → 编写文档
  3. 所有工作者并行运行
  4. 编排器将结果整合为协调一致的变更集
  5. 评估器验证功能

要加载的资源:

  1. 首先:dynamic-orchestration.md(编排器-工作者)
  2. 然后:pattern-combinations.md(编排器 + 评估)
  3. 然后:tool-design.md(设计用于修改代码的工具)
  4. 最后:language-implementation.md(你的语言)

后续步骤

  1. 识别任务类型 → 使用上方的快速参考表
  2. 加载合适的资源 → 阅读专题指南(15-30 分钟)
  3. 选择实现语言 → 加载语言示例
  4. 从简单版本开始 → 仅在必要时增加复杂度
  5. 迭代并测试 → 持续衡量质量和成本

版本历史

  • 2.0 - 重构为模块化编排模式,并拆分为专题资源文件
  • 1.0 - 原始的单体技能文档,包含所有模式

评论

支持 Markdown