Skip to content

Lisuiwen/agent_patterns

Repository files navigation

智能体设计模式实战学习项目

基于 LangGraph 的 21 种核心智能体模式实现

📚 项目简介

本项目是基于《智能体设计模式》及业界最佳实践,使用 LangGraph 实现的 21 种核心智能体模式。所有模式分为四大类:核心架构类推理增强类系统稳健类高级交互类

🎯 模式分类

一、核心架构类 (Architectural Patterns)

定义智能体的基本工作流结构和组织方式。

  • 提示链 (Prompt Chaining) - 线性流水线:A -> B -> C
  • 路由 (Routing) - 条件分发:根据意图分类,将任务派发给特定专家
  • 并行化 (Parallelization) - 并发执行:同时运行多个任务,最后聚合结果
  • 规划 (Planning) - 拆解-执行:生成 Todo List,逐个击破,动态调整
  • 多智能体协作 (Multi-Agent) - 分工合作:不同角色的智能体协同

二、推理与认知增强类 (Cognitive & Inference Patterns)

增强模型解决复杂问题的"脑力"。

  • 推理技术 (CoT/ToT) - 思维树/思维链:展示思考过程,探索多条路径并回溯
  • 探索与发现 (Exploration) - 假设-验证:主动提出假设,搜集信息验证
  • 学习与适应 (Learning) - 经验库:任务结束后总结经验,存入库中供下次参考
  • 记忆管理 (Memory) - 上下文压缩:摘要长对话,管理短期/长期记忆

三、系统稳健与工程化类 (Robustness & Engineering Patterns)

确保系统在生产环境稳定、高效、安全运行。

  • 异常处理 (Exception Handling) - 重试与降级:Try-Catch 机制,失败时切换备用模型
  • 资源感知优化 (Resource-Aware) - 成本路由:简单任务用小模型,难任务用大模型
  • 护栏/安全 (Guardrails) - 输入/输出审计:增加审查节点,拦截违规内容

四、高级交互与策略类 (Interaction & Strategy Patterns)

处理人机关系及复杂决策策略。

  • 人机协同 (HITL) - 中断与审批:关键步骤暂停,等待人类确认或修改
  • 知识检索 (RAG) - 挂载知识库:检索相关文档 -> 注入 Prompt -> 生成

📁 项目结构

agent_patterns/
├── agentLearning/          # 中文命名的模式实现
│   ├── 提示链.ts
│   ├── 路由.ts
│   ├── 并行化.ts
│   ├── 规划.ts
│   ├── 多智能体协作.ts
│   ├── 推理技术.ts
│   ├── 探索与发现.ts
│   ├── 学习与适应.ts
│   ├── 记忆管理.ts
│   ├── 异常处理.ts
│   ├── 资源感知优化.ts
│   ├── 护栏.ts
│   ├── 人机协同.ts
│   └── 知识检索.ts
├── src/                    # 英文命名的模式实现
├── agent_patterns_summary.md  # 模式总结文档
├── package.json
└── tsconfig.json

🚀 快速开始

安装依赖

npm install

配置环境变量

创建 .env 文件:

OPENAI_API_KEY=your_api_key_here

运行示例

# 运行提示链模式
npm run dev agentLearning/提示链.ts

# 运行路由模式
npm run dev agentLearning/路由.ts

📖 详细文档

查看 agent_patterns_summary.md 了解每个模式的详细说明、核心逻辑和适用场景。

🛠️ 技术栈

  • LangGraph - 构建有状态的智能体工作流
  • LangChain - LLM 应用开发框架
  • TypeScript - 类型安全的 JavaScript
  • OpenAI API - 大语言模型接口

📝 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

About

智能体设计模式实战学习项目 - 基于 LangGraph 的 21 种核心智能体模式实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published