Agent 应用开发技术学习笔记
整理日期:2026-09-03
主题:Agent SDK、编排框架、RAG、Harness、低代码平台与生产配套设施
1. 先建立整体认识
Agent 应用不是“选一个框架就完成了”,而是由多个技术层共同组成。不同产品即使界面相似,解决的问题也可能完全不同。
用户界面 / API / 消息渠道 ↓AI 应用平台:Dify、Flowise、Langflow ↓Agent SDK 与编排:LangChain、LangGraph、PydanticAI、OpenAI Agents SDK ↓Agent Harness:Pi、DeepSeek Harness、OpenHands ↓工具与数据:MCP、RAG、数据库、搜索、企业系统 ↓可靠执行与观测:Temporal、Restate、LangSmith、Langfuse这些层可以组合。例如:
n8n 监听邮件并获取附件 → 调用 Dify 完成知识检索与内容分析 → 调用 LangGraph 服务处理复杂审批状态 → n8n 将结果写入 CRM 并发送通知2. 六类核心技术
| 类型 | 主要解决的问题 | 代表技术 |
|---|---|---|
| Agent SDK | 用代码定义 Agent、工具、记忆和结构化输出 | LangChain、PydanticAI、OpenAI Agents SDK |
| Agent 编排框架 | 管理状态、分支、循环、多 Agent 和人工审批 | LangGraph、CrewAI、Google ADK、Microsoft Agent Framework |
| 数据与 RAG 框架 | 让 Agent 检索、理解和处理文档及企业数据 | LlamaIndex、Haystack |
| Agent Harness | 为 Agent 提供完整、可持续执行的运行环境 | Pi、DeepSeek Harness、OpenHands、OpenCode |
| 可视化 AI 平台 | 低代码搭建、测试和发布 AI 应用 | Dify、Flowise、Langflow |
| 自动化集成平台 | 连接业务系统、触发器、Webhook 和消息渠道 | n8n |
另外还有两类生产配套设施:
| 配套类型 | 代表技术 |
|---|---|
| 可靠执行 | Temporal、Restate、DBOS、Prefect |
| 观测与评测 | LangSmith、Langfuse、Phoenix、Braintrust、Logfire、W&B Weave |
3. Agent SDK:提供编程零件
Agent SDK 通常提供:
- 模型统一接口;
- Tool calling;
- Agent loop;
- Memory 和 Session;
- 结构化输入输出;
- 模型厂商适配。
3.1 LangChain
LangChain 生态大、连接器丰富,适合需要同时集成多种模型、工具、Retriever 和向量数据库的项目。它更接近组件与集成层;复杂、状态化的 Agent 通常配合 LangGraph。
3.2 PydanticAI
PydanticAI 强调 Python 类型安全、依赖注入、结构化输出和可测试性。适合已有 FastAPI/Pydantic 技术栈、希望保持代码清晰的后端团队。
3.3 OpenAI Agents SDK
OpenAI Agents SDK 提供 Agent、Runner、Tools、Handoffs、Guardrails、Sessions 和 Tracing。适合主要使用 OpenAI 模型,希望用较少抽象快速构建工具型 Agent 的项目。
4. Agent 编排框架:控制执行过程
编排框架主要解决:
- 状态管理;
- 条件分支与循环;
- 任务拆解;
- 多 Agent 协作;
- 暂停、恢复与人工审批;
- 长流程中的错误处理。
4.1 LangGraph
LangGraph 将 Agent 表达成有状态图:Node 是模型、工具或普通代码,Edge 表示执行路径,State 保存共享状态,Checkpoint 用于中断与恢复。
它适合客服工单、研究报告、编码 Agent、审批流程,以及需要明确控制执行路径的长期任务。
LangChain:模型、Agent 和工具集成LangGraph:状态、流程和执行控制LangSmith:Tracing、评测与监控三者属于同一生态,经常组合使用,并非三选一。
4.2 CrewAI
CrewAI 用 Agent、Task、Crew 和 Flow 表达角色式协作,适合研究、内容生产、市场分析等天然具有角色分工的任务。
多 Agent 并不天然优于单 Agent,它通常增加 Token、延迟、错误传播和评测难度。应先验证“单 Agent + 明确工作流”无法满足需求,再引入多 Agent。
4.3 Google ADK 与 Microsoft Agent Framework
- Google ADK 适合 Gemini、Google Cloud、多语言 SDK 和多 Agent 场景。
- Microsoft Agent Framework 适合 Azure、Microsoft 365、.NET 和企业身份体系。AutoGen 与 Semantic Kernel 的新项目应关注微软统一后的 Agent Framework 路线。
5. 数据与 RAG 框架:让 Agent 使用知识
5.1 LlamaIndex
LlamaIndex 擅长文档接入、解析、索引、检索、Query Engine、RAG 和数据型 Agent,适合企业知识库、研究助手和文档分析。
5.2 Haystack
Haystack 以 Document Store、Retriever、Component 和 Pipeline 为核心,适合企业搜索、文档问答和复杂检索流程。
简单选择:
- 文档、知识库和数据 Agent:优先比较 LlamaIndex 与 Haystack;
- 通用业务 Agent:优先比较 LangGraph、PydanticAI 与 OpenAI Agents SDK。
6. Agent Harness:给模型一个完整工作环境
Harness 可以理解为已经组装好的 Agent 运行外壳:
Agent Harness├── 模型适配与 Agent loop├── 上下文组装与压缩├── Tool、文件系统与 Shell├── 权限审批与沙箱├── Session、持久化和失败恢复├── Skills、Plugins 与 Subagents├── 轨迹、回放和评测└── CLI、TUI 或 Web UIAgent SDK 提供零件;Harness 更接近一台可以直接工作的机器。Harness 与 LangGraph 也不互斥:前者提供环境,后者可以负责业务状态编排。
6.1 Pi Agent Harness
Pi 是 TypeScript monorepo,主要包含:
pi-ai:统一多模型 API;pi-agent-core:Agent runtime、工具调用和状态管理;pi-coding-agent:交互式编码 Agent;pi-tui与pi-web-ui:终端和 Web UI;- Extensions 与 Skills 扩展机制。
Pi 核心相对精简,适合读源码、开发自己的 Coding Agent,或者将 Agent Core 嵌入 TypeScript 应用。
6.2 DeepSeek Harness
DeepSeek Harness(dsh)采用“一切皆插件”的思路,模型、工具、Skills、Session、Sandbox、Storage、Loop、调度和 UI 均可由插件提供。
它的 append-only Session Event Log 支持 Resume、Fork、Replay、Search 和 Trajectory 检查。运行模式包括 Standard、Code、Minimal 和 Creator。
截至本文整理时,它仍处于 Developer Preview,基础 API 可能发生破坏性变化,适合技术预研和插件化运行时研究,不宜未经充分验证直接成为关键生产系统的唯一底座。
6.3 Pi 与 DeepSeek Harness 对比
| 维度 | Pi | DeepSeek Harness |
|---|---|---|
| 主要语言 | TypeScript | TypeScript |
| 核心风格 | 精简、可扩展的 Coding Agent | 全插件化 Agent Runtime |
| 扩展机制 | Extensions、Skills | Cordis Plugins |
| Session 特色 | Agent 状态与会话 | 事件日志、恢复、分叉与回放 |
| 学习用途 | Agent loop、工具和 UI | 插件内核、事件系统和运行时组合 |
| 当前风险 | 相对成熟,但仍需评估版本兼容 | Developer Preview,API 变化风险高 |
选择建议:
- 快速开发自己的 Coding Agent:优先研究 Pi;
- 研究可组合 Agent Runtime:重点研究 DeepSeek Harness;
- 构建稳定的业务流程:优先考虑 LangGraph/PydanticAI 与可靠执行设施;
- 构建 Agent IDE 或开放扩展平台:Pi 和 DeepSeek Harness 都有较高参考价值。
7. 可视化 AI 平台
7.1 Dify
Dify 的主角是 AI 应用,围绕以下能力构建:
- 模型与 Prompt 管理;
- Agent、Workflow 与 Chatflow;
- 知识库、文档解析、Embedding 和检索;
- 会话与上下文;
- Web App 与 API 发布;
- AI 调用日志和运营。
适合企业知识助手、客服机器人、文档问答、内容生成和 AI 产品 MVP。
7.2 Flowise 与 Langflow
- Flowise 偏向 AgentFlow、多 Agent 和复杂节点编排;
- Langflow 偏向 LangChain 组件、RAG 与 MCP 的可视化实验。
低代码平台适合快速验证,但核心业务规则过多时,可视化画布会变得难以测试、Code Review 和版本管理。重要逻辑应逐步下沉到独立代码服务。
8. n8n:自动化与系统集成平台
n8n 虽然也有模型和 Agent 节点,但核心优势是:
- Cron、Webhook 和事件触发;
- HTTP API 与 OAuth 凭证;
- 邮件、IM、CRM、表格和数据库连接器;
- JSON 转换、循环与批处理;
- 错误分支、重试、等待和通知。
它适合将 Agent 接入真实业务系统。例如:
收到客户投诉邮件 → 下载附件 → 查询 CRM → 调用 Agent 分类 → 创建工单 → 高风险投诉通知主管 → 更新客户状态9. n8n 与 Dify 的本质区别
二者都是低代码,但主角不同:
Dify 的主角是 AI 应用;n8n 的主角是业务自动化。
| 维度 | Dify | n8n |
|---|---|---|
| 产品定位 | AI 应用开发平台 | 通用工作流自动化平台 |
| 核心对象 | Prompt、模型、知识库、Agent、对话 | Trigger、API、数据、SaaS、任务 |
| 最擅长 | AI 助手、RAG、对话与内容生成 | 串联系统、数据同步、定时与事件自动化 |
| AI 能力 | 原生核心能力 | 工作流中的一种能力 |
| RAG | 原生完整支持 | 通常需要组合外部组件 |
| 对话状态 | 原生支持 | 通常需要自己设计和存储 |
| 应用发布 | Web App、聊天应用、API | Webhook、后台工作流和任务 |
| 外部连接器 | 有,但不是首要优势 | 核心优势 |
| 数据转换 | 中等 | 强 |
| 技术门槛方向 | Prompt、模型、RAG、上下文 | API、JSON、OAuth、数据库、错误处理 |
可以通过需求中的动词判断:
- “问答、理解、检索、总结、生成、对话”多:倾向 Dify;
- “定时、监听、同步、调用、批处理、通知、审批”多:倾向 n8n;
- 两组动词都多:组合使用 n8n 与 Dify;
- 涉及复杂状态和核心交易:增加独立代码服务或 LangGraph。
9.1 为什么会觉得 n8n 更技术
n8n 更接近“可视化后端代码”,使用者经常需要处理:
- 节点输入输出和 JSON 字段映射;
- API 鉴权、分页与限流;
- 循环、批处理和数据转换;
- 超时、重试和失败分支;
- 外部数据库与系统状态。
Dify 隐藏了更多 AI 基础设施,但深入使用同样需要理解 Prompt 可靠性、文档切分、检索召回、上下文长度、幻觉和评测。
因此更准确的说法是:
n8n 的门槛偏传统软件工程,Dify 的门槛偏 AI 工程。
9.2 推荐组合方式
用户 / 定时器 / Webhook ↓ n8n 获取并整理业务数据 ↓ 调用 Dify API RAG、推理、生成结果 ↓ n8n审批、入库、通知、更新系统10. 生产系统不可忽视的配套技术
10.1 协议与工具接口
- MCP:连接 Agent 与工具、数据源;
- A2A:用于 Agent 之间的发现和通信;
- OpenAPI / JSON Schema:定义传统服务与 Tool 接口;
- AG-UI:处理 Agent 与前端之间的事件交互。
新项目应优先设计清晰、强约束的 Tool Schema。有跨客户端复用需求时,再将工具封装为 MCP Server。
10.2 可靠执行
Temporal、Restate、DBOS 和 Prefect 可用于解决:
- 超时和自动重试;
- 断点恢复;
- 长时间等待人工审批;
- 幂等性和外部副作用;
- 工作流版本升级。
转账、下单、发消息和修改生产数据等工具必须设计幂等键、权限校验和操作日志。
10.3 可观测与评测
常见产品包括 LangSmith、Langfuse、Phoenix、Braintrust、Logfire 和 W&B Weave。至少需要记录:
- 每次模型调用和工具调用;
- Prompt、模型版本和参数;
- Token、成本与延迟;
- 最终状态和失败原因;
- 用户反馈与离线评测结果;
- 工具调用正确率和任务完成率。
没有评测集时,频繁修改 Prompt 很容易沦为凭感觉调参。
10.4 安全
Agent 能执行外部操作,因此应专门设计:
- Prompt Injection 防护;
- 工具最小权限;
- 写操作人工审批;
- 容器或虚拟机沙箱;
- 密钥隔离和 PII 脱敏;
- URL、文件访问边界;
- 调用次数和预算限制;
- 完整审计日志。
11. 按目标选型
| 目标 | 优先考虑 |
|---|---|
| 通用复杂业务 Agent | LangGraph |
| Python 强类型后端 Agent | PydanticAI |
| OpenAI 单一技术栈 | OpenAI Agents SDK |
| 企业知识库和文档 Agent | LlamaIndex / Haystack / Dify |
| 快速交付 AI 产品 MVP | Dify |
| 连接邮件、IM、CRM 和定时任务 | n8n |
| 角色式多 Agent | CrewAI,但先验证是否真的需要多 Agent |
| Google Cloud 与 Gemini | Google ADK |
| Azure、.NET 与 Microsoft 生态 | Microsoft Agent Framework |
| 自研 Coding Agent | Pi |
| 插件化 Agent Runtime 预研 | DeepSeek Harness |
| 完整软件工程 Agent | OpenHands |
| TypeScript 全栈 Agent | Mastra 或 Pi Agent Core |
常见组合:
通用生产 Agent:LangGraph + PostgreSQL + MCP + Langfuse/LangSmithPython 轻量 Agent:PydanticAI + FastAPI + Logfire快速 AI 产品:Dify + 企业知识库 + 独立业务 API企业自动化:n8n + Dify/LangGraph 服务 + 企业系统Coding Agent:Pi/OpenHands + 沙箱 + MCP + Session Store12. 推荐学习顺序
- 不使用框架,理解一次基本的 Tool Calling Loop。
- 学习结构化输出、上下文管理和 Tool Schema。
- 掌握 MCP 的 Client、Server、Tool 和 Resource。
- 使用 PydanticAI 或 OpenAI Agents SDK 完成一个单 Agent。
- 使用 LangGraph 加入状态、分支、审批和断点恢复。
- 使用 Dify 完成一个可视化知识助手。
- 使用 n8n 接入 Webhook、邮件、IM 或定时任务。
- 阅读 Pi 或 DeepSeek Harness 源码,理解完整 Agent Runtime。
- 最后再研究 CrewAI 式多 Agent。
- 从项目早期建立 Trace 和小型评测集。
13. 最简记忆版
LangChain = Agent 和工具的组件库LangGraph = 复杂 Agent 的状态与流程控制LlamaIndex = 数据、文档和 RAGPi / DSH = 能实际持续工作的 Agent 运行外壳Dify = 低代码 AI 应用平台n8n = 低代码业务自动化与系统连接器Temporal/Restate = 长任务的可靠执行Langfuse = Agent 的追踪、观测与评测一句话总结:先按问题所在的技术层选工具。Dify 负责“把 AI 做成应用”,n8n 负责“让系统自动运转”,LangGraph 负责“让复杂 Agent 可控”,Pi 与 DeepSeek Harness 负责“给 Agent 一个完整工作环境”。