微信扫码
添加专属顾问
我要投稿
AI智能体框架大比拼,Google ADK能否后来居上? 核心内容: 1. AI多智能体框架的潜力与应用前景 2. Google ADK与Autogen、Langchain、CrewAI的对比分析 3. ADK集成生态系统的优势与代码示例
人工智能(AI)领域对多智能体系统的潜力充满期待——这种框架允许多个专业化 AI 智能体协作,以比单一模型更高效地解决复杂问题。这一转变预示着更精细的自动化、复杂的问题解决能力以及自主化工作流程。
近期,Google 推出了其智能体开发工具包(Agent Development Kit,ADK),进入这一领域。然而,面对 Microsoft 的 Autogen、灵活的 Langchain 和以协作为核心的 CrewAI 等成熟框架,开发者需要做出关键选择:哪款框架最适合他们的需求?
本文将深入探讨 Google 的 ADK,并将其与 Autogen、Langchain 和 CrewAI 在关键维度上进行严谨对比。
选择框架时,需考虑是否需要与特定云基础设施深度集成(例如 ADK 的 Google Cloud Platform 可选路径),还是优先考虑模型选择和部署位置的最大灵活性。目前大多数框架支持广泛的模型,但其基础设施和生态系统集成的实现方式差异显著。
ADK 的独特优势在于其与 Google Cloud Platform(GCP)基础设施(Vertex AI 智能体引擎、Cloud Run)的可选深度集成,提供托管服务。然而,通过 LiteLLM 等封装工具,ADK 可连接 100 多种大语言模型(LLM)提供商,模型访问高度灵活。
ADK 适合希望在 Google 优化基础设施与广泛模型访问之间取得平衡的用户,具体选择取决于优先考虑 GCP 优化还是模型多样性。
代码示例 1(原生 Gemini):
from google.adk.agents importAgentfrom google.adk.tools import google_searchassistant =Agent(name="gcp_assistant",model="gemini-2.0-flash",# 直接使用,可能会在 Vertex AI 上优化instruction="回答问题,必要时使用搜索。",# google_search 是预构建工具,允许智能体执行 Google 搜索tools=[google_search])print("ADK 智能体已配置为使用原生 Gemini。")
代码示例 2(通过 LiteLLM 使用 OpenAI 及其他模型):
# 需要:pip install litellmfrom google.adk.agents importAgentfrom google.adk.llm_config importLiteLlm# 假设的 LiteLLM 集成封装openai_llm =LiteLlm(model="openai/gpt-4o-mini")# 通过 LiteLLM 指定提供商/模型openai_agent =Agent(name="openai_via_adk",llm=openai_llm,# 传递 LiteLLM 配置instruction="你由 OpenAI 提供支持,通过 ADK + LiteLLM 访问。")print("ADK 智能体已配置为通过 LiteLLM 使用 OpenAI。")# 需要设置 OPENAI_API_KEY 环境变量
Autogen 采用配置驱动方法,通过列表定义大语言模型端点(例如 OpenAI、Azure OpenAI、本地模型如 LLaMA)。它还支持 LiteLLM 以扩展模型访问。由于对基础设施依赖极少,Autogen 高度灵活,可跨云提供商或本地部署,无锁定限制。
其与基础设施无关的设计和基于配置的灵活性使 Autogen 非常适合重视可移植性、希望在模型或环境之间无缝切换的用户。
代码示例(加载配置):
from autogen importAssistantAgent, config_list_from_jsonconfig_list_openai = config_list_from_json(env_or_file="OAI_CONFIG_LIST")assistant_openai =AssistantAgent(name="openai_assistant",llm_config={"config_list": config_list_openai})print("Autogen 智能体通过 OAI_CONFIG_LIST 配置完成。")# OAI_CONFIG_LIST 是指定 API 密钥和端点的 JSON 文件或环境变量# 例如:[{"model": "gpt-4", "api_key": "..."}]
Langchain 在提供商无关设计上表现卓越,允许用户从几乎任何来源(例如 Google、OpenAI、Hugging Face)显式实例化模型。它提供最深入的工具集成库(例如检索、记忆)和向量存储(例如 Pinecone、FAISS 等),且与特定云基础设施无固有联系,适应性极强。
Langchain 广泛的生态系统和灵活性使其成为需要强大集成和独立于单一提供商或基础设施的用户的首选。
代码示例(显式 Google 模型):
from langchain_openai importChatOpenAI# 显式导入 OpenAIfrom langchain_core.prompts importChatPromptTemplatefrom langchain_core.output_parsers importStrOutputParser# 实例化特定提供商的模型类openai_llm =ChatOpenAI(model="gpt-4o-mini", temperature=0)prompt =ChatPromptTemplate.from_template("告诉我关于 {topic} 的信息")chain_openai = prompt | openai_llm |StrOutputParser()print("Langchain 使用显式导入的 ChatOpenAI 模型。")# result = chain_openai.invoke({"topic": "Langchain"})
CrewAI 专注于智能体编排和角色定义,要求用户提供已配置的大语言模型实例(通常来自 Langchain 或通过 LiteLLM)。它与基础设施无关,无特定云或模型依赖,保持轻量且适应性强。
CrewAI 的独立性适合希望定义协作智能体工作流程、同时完全控制大语言模型和部署环境的用户。模型灵活性取决于提供的实例。
代码示例(传递 Langchain 大语言模型):
from crewai importAgentfrom langchain_community.llms importOllama# 需要 langchain-community# 概念性:通过 Ollama 配置本地模型连接local_llm =Ollama(model="llama3")# 假设 Ollama 服务器正在运行local_agent =Agent(role='编码者',goal='编写 Python 代码',backstory='...',llm=local_llm # 传递本地大语言模型实例)print("CrewAI 智能体概念性使用传入的本地 Ollama 实例。")
选择 AI 框架时,一个关键考虑因素是您在开发过程中偏好的抽象程度。这一权衡决定了设计和实现智能体及工作流程的方式。以下比较了四种框架——ADK、Autogen、Langchain 和 CrewAI——它们各自采用不同的范式:面向对象类实例化、分层 API、函数式组合和声明式角色。
ADK 采用传统的面向对象编程(OOP)方法。开发者通过构造函数参数实例化智能体类(例如 Agent、SequentialAgent)并配置其行为。这种方法对熟悉 OOP 的用户直观,提供代码优先的定义智能体和工作流程的方式。
代码示例(工作流程智能体):
from google.adk.agents importAgent,SequentialAgentstep1 =Agent(name="step1", model="gemini-2.0-flash", instruction="...")step2 =Agent(name="step2", model="gemini-2.0-flash", instruction="...")# 使用特定的工作流程智能体类pipeline =SequentialAgent(name="my_sequential_task",sub_agents=[step1, step2]# 通过参数配置)print("ADK:实例化特定工作流程智能体(SequentialAgent)。")
Autogen 提供分层 API,平衡了易用性和自定义能力。它包括用于常见任务(例如助手-用户交互)的高层智能体(如 AssistantAgent 和 UserProxyAgent),以及用于需要更多行为控制的低层智能体 ConversableAgent。
适合希望通过高层智能体快速原型设计、同时保留深入自定义逻辑选项的用户。
代码示例 1(高层智能体):
from autogen importAssistantAgent,UserProxyAgent, config_list_from_jsonconfig_list = config_list_from_json("OAI_CONFIG_LIST")llm_config ={"config_list": config_list}# 用于常见角色的高层智能体类型assistant =AssistantAgent(name="assistant", llm_config=llm_config)user_proxy =UserProxyAgent(name="user_proxy", human_input_mode="NEVER", code_execution_config=False)print("Autogen:使用高层 AssistantAgent 和 UserProxyAgent。")
代码示例 2(概念性 - 自定义智能体):
from autogen importConversableAgent# 提供更多控制的基类classMyCustomAgent(ConversableAgent):# 继承以实现自定义逻辑def __init__(self, name, custom_param,**kwargs):super().__init__(name,**kwargs)self.custom_param = custom_param# 重写方法如 generate_reply 以实现自定义行为# ...# custom_agent = MyCustomAgent(...)print("Autogen:概念性自定义智能体,继承自 ConversableAgent。")
Langchain 注重模块化和可组合性,允许开发者通过 LangChain 表达式语言(LCEL)使用管道(|)操作符组合组件(例如提示、模型、工具)。它还提供工厂函数如 create_tool_calling_agent,用于预配置智能体组装。
代码示例 2(智能体工厂函数):
from langchain_openai importChatOpenAIfrom langchain_core.prompts importChatPromptTemplatefrom langchain.agents import create_tool_calling_agent,AgentExecutorfrom langchain_core.tools import tool@tooldef get_length(s: str)->int:"""获取字符串长度。"""return len(s)tools =[get_length]model =ChatOpenAI(model="gpt-4o-mini")# 使用工厂函数组装智能体可运行对象# 注意:提示结构对这些智能体有特定要求prompt =ChatPromptTemplate.from_messages([("system","你是一个有用的助手。"),("human","{input}"),("placeholder","{agent_scratchpad}")# 关键占位符])agent_runnable = create_tool_calling_agent(model, tools, prompt)agent_executor =AgentExecutor(agent=agent_runnable, tools=tools, verbose=True)print("Langchain:使用工厂函数创建智能体。")# result = agent_executor.invoke({"input": "‘hello’ 的长度是多少?"})
CrewAI 采用声明式、基于角色的方法,通过自然语言描述智能体的角色、目标和背景故事来定义智能体。框架根据这些描述塑造智能体行为,优先考虑可访问性而非技术复杂性。
代码示例(具有特定配置的智能体):
from crewai importAgentfrom langchain_openai importChatOpenAIllm =ChatOpenAI(model="gpt-4o-mini")# 具有更多特定配置选项的智能体senior_researcher =Agent(role='高级 AI 研究员',goal='探索尖端 AI 技术',backstory='拥有数十年 AI 研究经验的博士。',llm=llm,allow_delegation=False,# 禁止该智能体委托任务max_iter=5,# 限制其任务的迭代次数verbose=True)print("CrewAI:具有附加配置(allow_delegation、max_iter)的智能体。")
设计多智能体系统时,核心权衡在于如何组织智能体之间的协作。每个框架提供不同的智能体交互编排方式,平衡控制、灵活性和易用性。以下探讨这些范式,提供验证过的代码示例,并突出其优势和理想应用场景。
ADK 通过专用工作流程智能体(如 SequentialAgent 和 ParallelAgent)或可能的 LLM 驱动的路由智能体,构建多智能体协作。这种方法强调显式的层次化组合,工作流程预定义,子智能体按结构化顺序或并发执行任务。
代码示例(概念性 - 并行工作流程):
from google.adk.agents importAgent,ParallelAgenttask_a =Agent(name="task_a", model="gemini-2.0-flash", instruction="执行任务 A。")task_b =Agent(name="task_b", model="gemini-2.0-flash", instruction="执行任务 B。")# 概念性:并发运行子智能体parallel_tasks =ParallelAgent(name="concurrent_work",sub_agents=[task_a, task_b])print("ADK:概念性 ParallelAgent 工作流程。")# results = parallel_tasks.run("输入数据") # 返回两者的结果
Autogen 将多智能体协作建模为对话,使用 initiate_chat 实现双智能体交互,或通过 GroupChat 和 GroupChatManager 实现多智能体讨论。智能体根据预定义角色或动态编排轮流执行,模仿类人对话。
代码示例(概念性 - 群聊):
from autogen importAssistantAgent,UserProxyAgent,GroupChat,GroupChatManager# 定义多个智能体...config_list = config_list_from_json("OAI_CONFIG_LIST")llm_config ={"config_list": config_list}coder =AssistantAgent(name="coder", llm_config=llm_config)pm =AssistantAgent(name="project_manager", llm_config=llm_config)tester =AssistantAgent(name="tester", llm_config=llm_config)user_proxy =UserProxyAgent(name="user", human_input_mode="NEVER")groupchat =GroupChat(agents=[user_proxy, coder, pm, tester], messages=[], max_round=10)manager =GroupChatManager(groupchat=groupchat, llm_config=llm_config)# user_proxy.initiate_chat(manager, message="开发并测试功能 X。")print("Autogen:概念性群聊设置。")
Langchain 的基础智能体以线性方式处理简单工具使用,但对于复杂、有状态的多智能体交互,LangGraph 是首选解决方案。LangGraph 允许开发者定义状态图,包含节点(智能体)和边(转换),支持循环和条件流。
代码示例(概念性 - LangGraph 结构):
# 文件名:langchain_multi_2_conceptual.pyfrom typing importTypedDict,Annotatedfrom langgraph.graph importStateGraph,ENDclassAgentState(TypedDict):# 共享状态input: strresult: strsender: str# 占位符智能体可运行对象(实现省略)def agent_1_runnable(state):return{"result":"A1","sender":"agent1"}def agent_2_runnable(state):return{"result":"A2","sender":"agent2"}workflow =StateGraph(AgentState)workflow.add_node("agent1", agent_1_runnable)workflow.add_node("agent2", agent_2_runnable)workflow.set_entry_point("agent1")workflow.add_conditional_edges("agent1",lambda state: state['sender'],{"agent2":"agent2","__end__":END})workflow.add_edge('agent2','agent1')# 循环流app = workflow.compile()print("Langchain:概念性 LangGraph 结构,用于有状态的多智能体流。")
CrewAI 将智能体组织成团队,每个智能体具有角色,任务根据定义的流程(例如顺序或层次)执行。协作由任务依赖和委托驱动,由角色定义引导。
代码示例(概念性 - LangGraph 结构):
from crewai importAgent,Task,Crew,Processfrom langchain_openai importChatOpenAIllm =ChatOpenAI(model="gpt-4o-mini")manager =Agent(role='管理者', goal='监督项目', backstory='...', llm=llm)# 管理者智能体worker1 =Agent(role='工作者1', goal='...', backstory='...', llm=llm)worker2 =Agent(role='工作者2', goal='...', backstory='...', llm=llm)task_delegation =Task(description="为项目 X 分配子任务", agent=manager, expected_output="...")# 工作者任务可能动态创建或定义以供拾取# 具有管理者智能体委托任务的团队hierarchical_crew =Crew(agents=[manager, worker1, worker2],tasks=[task_delegation],# 从管理者的任务开始process=Process.hierarchical,# 启用委托流程manager_llm=llm # 为管理者角色指定大语言模型)# 顺序任务执行的团队# sequential_crew = Crew(# agents=[researcher, writer],# tasks=[task1, task2],# process=Process.sequential # 任务按顺序运行# )print("CrewAI:定义了具有层次流程的团队(管理者委托)。")# result = hierarchical_crew.kickoff()
在将工具集成到 AI 框架时,核心权衡在于是否优先选择庞大的预构建工具库(Langchain)、无缝的 Google 服务集成(ADK),还是强大的自定义工具定义(各框架均支持,但方式不同)。以下详细分析这些方法,提供验证过的示例和见解。
ADK 在与 Google 服务(例如 Google 搜索、Vertex AI 工具)的轻松集成方面表现突出,利用其与 GCP 的对齐。它支持通过 Python 函数(通过文档字符串定义功能)实现自定义工具,并可能支持 OpenAPI 规范以实现结构化工具定义,尽管这方面的文档较少。
代码示例 1(带有文档字符串的函数):
from google.adk.agents importAgentimport datetimedef get_current_iso_time()-> str:"""返回当前日期和时间的 ISO 格式。"""# 文档字符串解释工具功能return datetime.datetime.now().isoformat()time_agent =Agent(name="time_agent", model="gemini-2.0-flash",instruction="如果被问到,告知当前时间。",tools=[get_current_iso_time]# 直接传递函数)print("ADK:工具定义为带有文档字符串的 Python 函数。")
代码示例 2(概念性 - @tool 装饰器):
# 概念性:ADK 可能提供类似于其他框架的装饰器from google.adk.tools import tool # 假设导入from google.adk.agents importAgent@tool("weather_lookup")# 装饰器定义名称/模式def get_weather(city: str, unit: str ="celsius")-> str:"""获取城市天气。单位可以是 'celsius' 或 'fahrenheit'。"""# (API 调用实现)return f"{city} 的天气是晴天,25 {unit}。"weather_agent =Agent(name="weather_agent", model="gemini-2.0-flash",instruction="提供天气预报。",tools=[get_weather])print("ADK:概念性工具定义,使用 @tool 装饰器。")
Autogen 通过 register_function 支持工具注册,将 Python 函数链接到智能体,或通过在 llm_config 中传递工具模式(例如 OpenAI 格式)实现大语言模型原生工具调用。这种双重方法平衡了显式控制和大语言模型驱动的调用。
代码示例(大语言模型工具调用配置):
from autogen importAssistantAgent, config_list_from_jsonimport json# 以 OpenAI 格式定义工具模式calculator_schema ={"type":"function","function":{"name":"calculator","description":"计算表达式的结果。","parameters":{"type":"object","properties":{"expression":{"type":"string","description":"数学表达式"}},"required":["expression"],},},}# 实际计算器函数需在其他地方可调用/注册def calculator(expression: str)-> str:return str(eval(expression))# 不安全的 evalconfig_list = config_list_from_json("OAI_CONFIG_LIST")llm_config_tools ={"config_list": config_list,"tools":[calculator_schema]# 将模式传递到大语言模型配置}calculator_agent =AssistantAgent(name="calculator_agent",llm_config=llm_config_tools)print("Autogen:通过 llm_config 中的 'tools' 列表配置工具,以实现大语言模型工具调用。")# 如果配置正确,智能体将直接输出工具调用
Langchain 提供最庞大的预构建工具库(例如 DuckDuckGo、Wikipedia)和工具包(例如 SQL、文件管理)。自定义工具可通过 @tool 装饰器实现简单定义,或使用 BaseTool 类实现有状态的复杂逻辑。
代码示例(导入预构建 + 自定义工具):
from langchain_community.tools importDuckDuckGoSearchRun# 导入特定工具# from langchain.agents import load_tools # 替代批量加载from langchain.agents importAgentExecutor# ... 其他导入from langchain_core.tools import tool@tooldef get_word_length(word: str)->int:return len(word)# 初始化预构建工具search =DuckDuckGoSearchRun()# 组合自定义和预构建工具tools =[get_word_length, search]# agent_executor = AgentExecutor(..., tools=tools, ...)print("Langchain:使用预构建工具(DuckDuckGoSearchRun)结合自定义工具。")
CrewAI 提供自有的 crewai-tools 包(例如用于搜索的 SerperDevTool),支持直接使用 Langchain 工具,并允许通过 crewai_tools 的 @tool 装饰器或 BaseTool 子类化实现自定义工具,类似于 Langchain 的方法。
from crewai_tools import tool # 从 crewai_tools 导入# 需要:pip install 'crewai[tools]'from crewai_tools importSerperDevTool# 示例预构建搜索工具from crewai importAgent# ... 其他导入@tool("FileReadTool")def read_file(file_path: str)-> str:"""读取文件内容。"""try:with open(file_path,'r')as f:return f.read()exceptExceptionas e:return f"读取文件错误:{e}"search_tool =SerperDevTool()file_agent =Agent(# ... 其他参数 ...tools=[read_file, search_tool])print("CrewAI:使用 crewai_tools 的 @tool 装饰器定义工具。")
虽然 ADK、Autogen、Langchain 和 CrewAI 主要是基于代码的库,设计用于构建 AI 智能体,但它们的生态系统为添加用户界面(UI)和实现部署准备提供了强大支持。这些框架满足开发者对灵活性和生产就绪解决方案的需求,在内置 UI 支持和部署优化方面各有不同。
用户界面:提供开发者 UI 和 Web UI 用于调试和智能体可视化;支持通过 Streamlit 或 Gradio 实现自定义 UI。
# 文件名:adk_web_ui.pyfrom google.adk.agents importAgent# 定义简单智能体agent =Agent(name="chat_agent",model="gemini-2.0-flash",instruction="回答用户查询。")# 保存此文件,然后在终端运行:# 1. 安装:pip install google-adk# 2. 运行:adk web --agent-file adk_web_ui.py# 访问 http://localhost:8080(默认端口)print("ADK:运行 'adk web --agent-file adk_web_ui.py' 以启动原生 Web UI。")
部署:通过 Vertex AI 智能体引擎或 Cloud Run(可扩展、受监控)优化用于 Google Cloud;Docker 支持在 AWS、Azure、Kubernetes 或本地部署,但 GCP 特定优势在外部生态系统中会丢失。
用户界面:提供 Autogen Studio,一个无代码/低代码 Web UI,用于构建和管理智能体;也支持通过 Streamlit 或 Gradio 实现自定义 UI。
# 终端命令安装并运行 Autogen Studiopip install autogenstudioautogenstudio ui --port 8081# 访问 http://localhost:8081
部署:完全与平台无关;Docker 容器可部署在 Kubernetes、服务器less 平台(AWS Lambda、Azure Functions —— 注意状态管理)或任何云/本地设置。
用户界面:无原生 UI,但与 Langflow 和 Flowise 集成以实现可视化构建;常用 Streamlit 或 Gradio 实现自定义 UI。
部署:LangServe 简化 REST API 创建;Docker 支持跨任何云、服务器less 环境或 Kubernetes 集群部署。
用户界面:提供 UI Studio 用于无代码自动化;支持第三方 UI(例如 CrewAI-UI)和通过 Streamlit/Gradio 的自定义选项。
部署:支持本地部署以控制,或云部署;Docker 支持在 Kubernetes、服务器less 平台或任何基础设施上使用。
# 文件名:crewai_streamlit_ui.py# 安装:pip install crewai streamlit langchain-openaifrom crewai importAgent,Task,Crewfrom langchain_openai importChatOpenAIimport streamlit as st# 定义简单团队llm =ChatOpenAI(model="gpt-4o-mini")agent =Agent(role="助手", goal="协助用户", backstory="友好的 AI", llm=llm)task =Task(description="回答用户查询:{query}", agent=agent, expected_output="文本响应")crew =Crew(agents=[agent], tasks=[task])# Streamlit UIst.title("CrewAI 助手")query = st.text_input("提问:")if query:task.description = f"回答用户查询:{query}"result = crew.kickoff()st.write(result)# 运行:streamlit run crewai_streamlit_ui.pyprint("CrewAI:运行 'streamlit run crewai_streamlit_ui.py' 以启动 UI。")
此 UI 在 http://localhost:8501 运行,提供简单的团队交互界面。
这些平台代表了不同的理念,优先考虑可访问性:
Manus & Genspark AI:它们提供图形用户界面(GUI)用于定义任务。原因?赋能非技术用户(业务分析师、市场人员、普通用户)无需编写代码即可自动化任务。(Manus 网站,Genspark 网站)。
工作方式:用户通常选择预构建模板或组件(例如“计划旅行”、“研究主题”、“总结文档”),通过可视化界面或简单表单连接。平台自主处理底层智能体执行、模型交互和任务管理。
权衡:这种易用性以牺牲灵活性和自定义能力为代价。用户通常受限于平台提供商提供的功能和集成。
在快速发展的 AI 智能体开发领域,选择合适的框架对项目的成功至关重要。没有通用的“最佳”框架——Google ADK、Autogen、Langchain 和 CrewAI 各有独特优势和权衡。您的选择取决于框架与项目独特需求、团队专业知识和基础设施优先级的契合。
•Google ADK:适合深入 Google Cloud 生态系统的用户,需要通过代码优先方式精确控制,或设计优化的 GCP 部署结构化多智能体工作流程。•Autogen:适合灵活的多智能体模拟,提供分层 API 用于原型设计和自定义,具有合理的云无关性和外部大语言模型配置。•Langchain:适合需要最大灵活性的用户,拥有最广泛的集成和工具生态系统,适合多样化的大语言模型应用或通过 LangGraph 进行复杂编排。•CrewAI:适合专注于自主协作智能体的项目,采用声明式方法定义角色和目标,利用 Langchain 工具简化多智能体流程。•基于 UI 的智能体:适合非技术用户自动化简单任务,优先考虑易用性和速度而非深度自定义。
AI 智能体领域发展迅速,需要持续关注新兴工具和技术。通过了解每个框架的核心优势并根据项目目标选择合适的框架,您可以构建推动创新和效率的智能系统。保持适应性,持续评估,并让您的具体需求引导您选择赋能愿景的框架。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-29
为什么我们选择 LangGraph 作为智能体系统的技术底座?
2025-10-27
Langchain 、 Manus 组了一个研讨会:Agent越智能,死得越快!
2025-10-23
LangChain V1.0 深度解析:手把手带你跑通全新智能体架构
2025-10-23
LangChain 与 LangGraph 双双发布 1.0:AI 智能体框架迎来里程碑时刻!
2025-10-19
AI 不再“乱跑”:LangChain × LangGraph 打造可控多阶段智能流程
2025-10-15
LangChain对话Manus创始人:顶级AI智能体上下文工程的“满分作业”首次公开
2025-10-09
Langchain回应OpenAI:为什么我们不做拖拉拽工作流
2025-09-21
告别无效检索:我用LangExtract + Milvus升级 RAG 管道的实战复盘
2025-09-13
2025-09-21
2025-10-19
2025-08-19
2025-08-17
2025-09-19
2025-09-12
2025-09-06
2025-08-03
2025-08-29
2025-10-29
2025-07-14
2025-07-13
2025-07-05
2025-06-26
2025-06-13
2025-05-21
2025-05-19