为什么不选择Coze / Dify ?
因为太复杂太难以控制,还是利用底层代码和AI框架更合适。我给你展示利用dify做deep research是多么复杂:
要求:
dify实现:
[]
GitHub - AdamPlatin123/Open-Deep-Research-workflow-on-Dify
通过在 GitHub 上创建帐户来为 AdamPlatin123/Open-Deep-Research-workflow-on-Dify 开发做出贡献。
以上就是dify的deep research:
而且这还是最基本的deep research,运行起来各种报错和不稳定,只能当成测试使用而已,不能真正运转。如果我们需要真正可用的,高可用的,高可控的,高性能的复杂agent,还是优先选择LangGraph。这是经过很长时间综合考虑得到的经验,分享给你:
我推荐LangGraph:
LangGraph 是一个基于语言模型(如 OpenAI、Deepseek等)的工作流编排框架,特别适合构建复杂的多步骤、有状态或协作式 AI 应用。
LangGraph实现deep research:
以下是一个基于 LangGraph 的简化版 Deep Research 智能体实现示例,包含核心工作流程和关键代码。该示例模拟了自动研究“气候变化对农业的影响”的过程,重点展示 状态管理、并行搜索 和 反思循环 三大核心机制
核心代码实现(简化版)
1. 定义状态容器
管理研究过程中的动态数据,使用 TypedDict
结构化存储:
from typing import TypedDict, Annotated, Listfrom langchain_core.messages import HumanMessagefrom operator import addclass ResearchState(TypedDict): user_query: str # 用户原始问题 search_queries: Annotated[List[str], add] # 搜索查询列表(可追加) search_results: Annotated[List[str], add] # 搜索结果(可追加) citations: Annotated[List[str], add] # 引用来源 is_sufficient: bool # 信息是否充足
2. 关键节点函数
每个节点对应研究流程中的一个环节:
- 查询生成节点(多样化生成搜索关键词)
def generate_queries(state: ResearchState): user_topic = state["user_query"] # 模拟 Gemini 生成多样化查询(实际需调用 LLM) queries = [ f"{user_topic} 对粮食产量的影响", f"{user_topic} 的农业适应技术", f"{user_topic} 经济成本报告 2025" ] return {"search_queries": queries}
- 并行搜索节点(模拟多线程搜索)
def web_research(state: ResearchState, query: str): # 模拟 Google Search API 调用(返回标题+摘要) results = { "气候变化对粮食产量的影响": "研究显示... [来源: IPCC 报告]", "农业抗旱技术进展": "基因编辑作物可提升... [来源: Nature]" } return { "search_results": [results[query]], "citations": [f"Source_{hash(query)}"] }
- 反思分析节点(判断信息完整性)
def reflection(state: ResearchState): # 模拟反思逻辑:若结果少于3条则判定信息不足 is_sufficient = len(state["search_results"]) >= 3 return {"is_sufficient": is_sufficient}
3. 构建状态图与工作流
用 LangGraph 编排节点逻辑:
from langgraph.graph import StateGraph# 初始化状态图builder = StateGraph(ResearchState)# 添加节点builder.add_node("generate_queries", generate_queries)builder.add_node("reflection", reflection)builder.add_node("web_research", web_research) # 实际需并行化处理# 设置边关系builder.set_entry_point("generate_queries")builder.add_edge("generate_queries", "web_research")builder.add_conditional_edges( "reflection", lambda state: END if state["is_sufficient"] else "web_research")# 编译可执行图research_agent = builder.compile()
4. 执行研究任务
# 启动研究流程result = research_agent.invoke({ "user_query": "气候变化对农业的影响"})# 输出结果print("最终报告摘要:", result["search_results"])print("引用来源:", result["citations"])
执行输出示例
最终报告摘要: [ "研究显示全球变暖导致小麦减产5-10% [来源: IPCC 报告]", "基因编辑作物可提升抗旱性 [来源: Nature]", "2024年亚洲农业损失达$120亿 [来源: FAO]"]引用来源: ["Source_123", "Source_456", "Source_789"]
小结: 本质上你可以说,这和dify的逻辑没有区别,但是程序员会觉得代码形式更靠谱和简单,可控和高效。同时复杂性可以进一步大幅提高,基于工作流的 LangGraph 实现简洁且可维护。
使用 LangGraph 构建多代理系统提供了以下优势:
•结构化工作流 :LangGraph 为定义代理交互提供清晰的结构,使复杂系统更易于设计和维护。
•状态管理 :框架处理多次 LLM 调用之间的状态管理,确保信息在代理之间正确流动。
•条件路由 :LangGraph 允许动态决定下一个代理,创建更适应和响应的系统。
•检查点 :内置检查点功能便于调试和恢复长时间运行的进程。
•可扩展性 :基于图的方法便于添加新代理或修改现有工作流,随着系统的发展。
参考:《How to build a Multi-Agentic Systems for RAG using LangGraph - Full project》nicoladisabato/MultiAgenticRAG | DeepWiki
以下我介绍更多 LangGraph 实现的详细项目示例:
0. 对话与问答系统
- 多轮对话机器人
- 功能:记忆上下文、动态跳转话题、处理模糊查询(如用户连续追问“怎么设置闹钟?”→“音量能调吗?”)。LangGraph 价值:通过状态管理(
MessagesState
)追踪对话历史,结合条件分支实现意图识别(如转人工客服或调用知识库)。案例:医疗科普机器人,根据用户病史动态调整回答深度,并在高风险回答前插入人工审核节点。- 智能问答系统(RAG 增强)
- 功能:检索文档→多轮总结→验证准确性→循环优化答案。LangGraph 价值:动态控制检索流程(例:未找到答案时引导用户重新提问),支持多轮迭代优化回答质量。案例:法律文书助手,解析合同 PDF 后,通过循环判断逻辑处理模糊条款查询。
参考:《 LangChain+LangGraph+RAGAS=可靠的 RAG 系统》,介绍怎样利用langgraph打造工业级的RAG, mp.weixin.qq.com/s/NWo5jJmmw…
1. 自动化工作流与业务流程
智能客服系统
- 多轮对话管理:处理用户查询 → 数据库检索 → 生成回答 → 满意度评估 → 转人工(如果需要)。自动工单分类:用户输入 → 意图识别 → 路由到对应部门 → 生成响应模板。
审批流程自动化
- 结合规则引擎和 LLM:员工提交申请 → 经理审核(自动生成审核意见) → 财务部门处理。
电商订单处理
- 订单确认 → 库存检查 → 支付验证 → 物流分配 → 客户通知(邮件/SMS)。
参考:《Customer Support Email Automation with AI Agents and RAG》 GitHub - kaymen99/langgraph-email-automation: Multi AI agents for customer support email automation built with Langchain & Langgraph
《human-in-the-loop 邮件自动化处理》 GitHub - langchain-ai/agents-from-scratch: Build an email assistant with human-in-the-loop and memory
介绍基于langgraph处理邮件/客服等自动化工作,还有human-in-the-loop的配合使用。
同时,推荐我喜欢的hitl工具:GitHub - ptonlix/gohumanloop: 💯 Perfecting AI workflows with human intelligence
2. 复杂决策与动态规划
旅行规划助手
- 用户输入偏好 → 调用多个 API(航班、酒店、景点)→ 生成个性化行程 → 动态调整(如天气变化)。参考:《 用 AI 打造你的专属旅行计划:多智能体旅行规划工具(实战篇)》mp.weixin.qq.com/s/WszVU5N31…
投资建议引擎
- 用户风险测评 → 市场数据获取 → 投资组合生成 → 定期复盘调整。
医疗诊断辅助
- 症状输入 → 分诊建议 → 推荐检查项目 → 生成通俗易懂的解释(需结合专业数据库)。
参考:《 Gemini 开源了全栈 LangGraph 快速启动项目:开发者的新利器》,deep reseach例子,mp.weixin.qq.com/s/wLYIr1AQy…
《多渠道信息调研和多react_agent》介绍怎样利用多个langgraph节点‘’react_agent‘’来进行多渠道信息收集处理,复杂的决策和动态规划, GitHub - kaymen99/personal-ai-assistant: Your personal AI assistant powered by multiple AI agents. Connects to WhatsApp, Slack, or Telegram to manage your emails, schedule, to-dos, messages, and daily research.
//介绍怎样利用多个react_agent来进行复杂的决策和动态规划llm = get_llm_by_provider(self.model, self.temperature) self.agent = create_react_agent( llm, tools=self.tools, state_modifier=self.system_prompt, **({"checkpointer": self.memory} if self.memory else {"checkpointer": False}) # set to False to avoid "MULTIPLE_SUBGRAPHS" error )
3. 多智能体协作系统
虚拟团队协作
- 分配角色(项目经理、工程师、设计师)→ 模拟会议讨论 → 生成任务清单。
游戏 NPC 交互
- NPC 根据玩家行为动态响应,记忆历史互动并影响后续剧情。
辩论模拟器
- 多个 AI 角色持不同观点,按规则辩论并生成总结报告。
参考:《 使用 LangGraph 打造 Multi-Agent 系统》 mp.weixin.qq.com/s/OmJdNh8zF…
多代理系统是一组相互交互的独立“代理”。可以将每个代理想象成一个能够独立思考和行动的个体,类似于人类。这些代理一起工作或竞争以实现特定目标或完成任务。
简单来说,想象一群机器人清理你的房子。每个机器人是一个代理。一个可能负责吸尘地板,另一个可能负责擦拭家具,还有一个可能负责倒垃圾。它们各自独立工作,但通过沟通和协调确保整个房子被高效清洁。这就是多代理系统的本质:多个实体以协调的方式一起工作,以执行复杂任务或解决问题。
- Researcher :研究员。针对研究主题采集网络资源,做自主研究Editor :编辑。负责初期规划研究大纲和整体结构Reviewer :审阅。根据设定的标准对研究结果进行检查验证Revisor :修订。根据审阅结果对研究结果进行修订Writer :撰写。根据研究输出撰写最终报告内容Publisher :发布。负责用不同的格式发布最终研究报告
参考:
《 学习使用LangGraph x GPT-Researcher构建一个多智能体架构的AI自主研究助理》 mp.weixin.qq.com/s/PlpsIT5bj…
《TradingAgents:多代理 LLM 金融交易框架》 :部署由LLM驱动的专业智能体——从基本面分析师、情绪分析师、技术分析师,到交易员、风险管理团队——平台能够协同评估市场状况并制定交易决策。 GitHub - TauricResearch/TradingAgents: TradingAgents: Multi-Agents LLM Financial Trading Framework
4. 数据处理与分析流水线
自动化报告生成
- 数据库查询 → 数据清洗 → 可视化生成 → 自然语言总结。
实时舆情监控
- 爬取社交媒体 → 情感分析 → 关键事件提取 → 生成日报。
科研文献综述
- 检索论文 → 提取关键结论 → 对比分析 → 生成综述草稿。
《自动化潜在客户线索研究》 1 LinkedIn Profile Scraping:自动从 LinkedIn 收集有关潜在客户及其公司的基本信息,以创建全面的个人资料。 2 公司数字存在分析 :评估公司的网站和博客内容,以深入了解其产品和服务。此外,评估他们在 Facebook、Twitter、YouTube 等平台上的社交媒体活动。 3 最近的公司新闻分析 :跟踪与公司相关的最新新闻和公告,以深入了解他们当前的举措和挑战。 4 痛点识别 :识别公司面临的潜在挑战或差距,并就贵机构的产品和服务如何解决这些问题提供量身定制的建议。 5 报告生成 :为每个分析生成详细的报告,这些报告既保存在本地,也保存在 Google Analytics 中。创建一份综合的全球研究报告,结合来自领导档案,公司档案和数字存在的见解。
《Langgraph故事写作》:langchain-ai/story-writing | DeepWiki
它使用户能够在人工智能的帮助下协作编写故事,具有编辑现有章节、沿着不同路径继续叙述以及维护故事章节之间复杂关系的能力。
所以,为何选择 LangGraph?
- 复杂控制流:突破传统链式结构的限制,支持循环、分支、人工干预等非线性逻辑。状态持久化:自动管理多轮交互状态,降低开发复杂度。多 Agent 原生支持:直接建模 Agent 协作,无需手动调度线程。企业级扩展:内置检查点(Checkpoint)机制,支持高可靠生产部署。