Agent智能体从概念到实践(三)--- 创建你的第一个智能体
2026/7/2 4:49:42 网站建设 项目流程

一、技术选型:路径怎么选

常见的智能体搭建路径:

路径代表工具适合谁优点缺点
零代码/低代码Coze(扣子)、Dify产品、运营、无编程基础者上手快,可视化编排,内置插件丰富定制化能力有限
开发者框架LangChain、CrewAI有Python基础的开发者灵活可控,可深度定制学习曲线较陡
自动化工作流n8n需要定时、跨平台采集的场景支持800+应用节点,定时触发需额外配置LLM
官方SDK快速起步Claude Agent SDK想最快跑通Demo的开发者几行代码即可运行依赖特定模型

如果你是新手,建议从Coze或Dify开始;如果你有Python基础,可以用LangChain或CrewAI做深度定制;如果只是想最快跑通一个Demo,Claude Agent SDK的几行代码就能搞定。

现在,我们尝试自主的定制开发路线看看。

1.1 LangChain:

LangChain 是一个功能强大的开源框架,旨在帮助开发者构建各种基于大语言模型(LLM)的复杂应用。它的核心是“组件化”,提供了从模型调用、数据连接、记忆管理到智能体工作流编排的全套“零件”。

  • 核心特点

    • 生态最完善:它集成了数百种 LLM、向量数据库和外部工具,是当前社区最活跃、生产应用最广泛的框架。截至2026年,已有超过10万个生产级应用基于它构建。

    • 功能全面:它提供了构建 AI 应用所需的各种抽象,如链(Chain)、智能体(Agent)、记忆(Memory)等,并拥有 LangGraph、LangSmith 等子项目来处理复杂工作流、监控和评估。

    • 上手快速:对于简单场景,如问答、总结等,可以快速搭建出演示原型(Demo)。

  • 主要劣势

    • 抽象层次高,灵活性代价大:由于其高度封装,当需要进行深度定制时,开发者可能需要绕过多层抽象,增加了复杂性。有研究表明,使用 LangChain 可能会带来高达42%的额外计算开销。

    • 性能与维护成本:每一步操作都要经过框架的中间层,会带来一定的性能开销。同时,其版本迭代快,API 经常变动,升级和维护成本较高。

1.2 CrewAI:

CrewAI 则是一个专注于多智能体协作的框架。它的核心思想是让 AI 智能体扮演不同“角色”(如研究员、写手、审稿人),像人类团队一样分工合作完成任务。

  • 核心特点

    • 概念直观:其“角色扮演”的团队协作模式非常易于理解,即使是产品经理等非技术人员也能快速上手。

    • 协作原生支持:框架原生支持多智能体之间的任务委派和信息共享,能轻松构建和管理一个“AI 团队”。

    • 轻量且独立:CrewAI 是一个从头构建的轻量级 Python 框架,不依赖 LangChain。

    • 拥抱新标准:截至2026年,CrewAI 已原生支持 MCP (模型上下文协议) 和 A2A (智能体间通信协议),在智能体互操作性方面具有优势。

  • 主要劣势

    • 生态相对较小:与 LangChain 相比,其第三方集成和社区规模较小,遇到复杂问题时可参考的资源有限。

    • 灵活性有限:对于非常复杂或非结构化的场景,其基于角色的固定协作模式可能不够灵活。

    • 潜在的管理开销:如果角色定义不清或任务边界模糊,可能导致智能体间无效沟通,甚至陷入“互相踢皮球”的死循环。

1.3 核心差异对比

维度LangChainCrewAI
核心定位通用的 AI 应用开发框架专注于多智能体协作的框架
设计哲学组件化,像搭乐高一样构建应用角色化,像管理团队一样组织 AI
主要优势生态完善、功能全面、社区庞大概念直观、协作原生支持、轻量
主要劣势抽象层次高、性能开销大、学习曲线陡生态较小、灵活性有限、可能有管理开销
上手速度快(简单场景)快(多智能体场景)
适用场景通用 LLM 应用、RAG、需要深度定制的复杂系统内容生产、研究分析、模拟团队协作

1.4 总结与选型建议

选择哪个框架,取决于你的具体需求:

  • 选择 LangChain,如果你需要

    • 构建一个功能复杂的 AI 应用,而不仅仅是多智能体协作。

    • 深度集成各种外部工具和数据源。

    • 你的团队对 AI 应用开发有较深的理解,能够驾驭其复杂性。

  • 选择 CrewAI,如果你需要

    • 快速构建一个多智能体协作系统,例如自动化的内容生成流水线或研究分析团队。

    • 你的需求能够清晰地映射为“角色-任务”模型。

    • 希望快速看到可工作的原型,并且团队成员(包括非技术人员)都能理解其工作方式。

不过值得一提的是,这两个框架并非互斥。在实际的企业级应用中,混合架构正成为一种趋势,例如使用LangGraph(LangChain生态) 来管理主流程,而在需要多角色协作的子任务中调用CrewAI团队。

我们选择LangChain尝试一下,做一些机器人的数据分析。

二、环境准备

我是在Ubuntu 22.04中进行环境搭建的。

2.1 系统更新与基础依赖

# 更新系统 sudo apt update && sudo apt upgrade -y # 安装基础开发工具 sudo apt install -y python3 python3-pip python3-venv git curl wget # 确认Python版本(需要3.9+) python3 --version

2.2 创建项目目录与虚拟环境

# 创建项目目录 mkdir ~/humanoid-robot-agent cd ~/humanoid-robot-agent # 创建Python虚拟环境 python3 -m venv .venv # 激活虚拟环境 source .venv/bin/activate # 确认虚拟环境已激活(命令行前会出现(.venv))

2.3 安装核心依赖包

# 升级pip pip install --upgrade pip # 安装LangChain生态 pip install langchain langgraph langchain-community # 安装模型提供商(根据你使用的模型选择) pip install langchain-openai # OpenAI # 或 pip install langchain-anthropic # Claude # 或(国内推荐) pip install langchain-deepseek # DeepSeek # 安装搜索工具 pip install tavily-python # Tavily搜索API # 或 pip install google-search-results # SerpAPI # 安装网页解析 pip install beautifulsoup4 lxml requests # 安装向量数据库(用于记忆) pip install chromadb # 安装环境变量管理 pip install python-dotenv # 安装其他辅助工具 pip install pandas openpyxl # 数据处理和Excel导出

2.4 配置API密钥

# 创建.env文件 cat > .env << 'EOF' # 根据你选择的模型和工具填写 OPENAI_API_KEY=your_openai_key_here # 或 DEEPSEEK_API_KEY=your_deepseek_key_here # 搜索工具(至少配置一个) TAVILY_API_KEY=your_tavily_key_here # 或 SERPAPI_API_KEY=your_serpapi_key_here # 可选:如果使用其他服务 # ANTHROPIC_API_KEY=your_anthropic_key_here EOF

获取API密钥

  • Tavily:访问 tavily.com 注册获取免费额度

  • DeepSeek:访问 platform.deepseek.com 注册

  • OpenAI:访问 platform.openai.com 注册

三、编写智能体代码

创建主程序文件:

touch agent.py

将以下完整代码写入agent.py

#!/usr/bin/env python3 """ 人形机器人行业信息搜集智能体 基于 LangChain 1.0+ 构建(无记忆模块,单次查询) 运行环境:Ubuntu 22.04 + Python 3.10.20 """ import os from datetime import datetime from dotenv import load_dotenv # LangChain 1.0 新 API from langchain_openai import ChatOpenAI from langchain.agents import create_agent from langchain.tools import tool from langchain_core.messages import HumanMessage # 独立的 Tavily 集成包(需 pip install langchain-tavily) from langchain_tavily import TavilySearch load_dotenv() # ============================================================ # 工具定义 # ============================================================ @tool def scrape_webpage(url: str) -> str: """ 抓取指定URL的网页文本内容,用于深度阅读行业报告和新闻。 输入:完整的网页URL 输出:网页的纯文本内容(限制3000字符) """ try: import requests from bs4 import BeautifulSoup headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'} response = requests.get(url, timeout=15, headers=headers) response.raise_for_status() soup = BeautifulSoup(response.content, 'html.parser') for script in soup(["script", "style"]): script.decompose() text = soup.get_text(separator='\n', strip=True) return text[:3000] except Exception as e: return f"抓取网页时出错: {str(e)}" # 搜索工具 search_tool = TavilySearch( name="web_search", description="搜索最新的行业新闻、报告和动态。", max_results=5, api_key=os.getenv("TAVILY_API_KEY") ) tools = [search_tool, scrape_webpage] # ============================================================ # 初始化 LLM # ============================================================ def init_llm(): deepseek_key = os.getenv("DEEPSEEK_API_KEY") openai_key = os.getenv("OPENAI_API_KEY") if deepseek_key: print("✓ 使用 DeepSeek 模型") return ChatOpenAI( model="deepseek-chat", temperature=0.1, api_key=deepseek_key, base_url="https://api.deepseek.com/v1" ) elif openai_key: print("✓ 使用 OpenAI 模型") return ChatOpenAI( model="gpt-4o-mini", temperature=0.1, api_key=openai_key ) else: raise ValueError("请在 .env 中配置 DEEPSEEK_API_KEY 或 OPENAI_API_KEY") llm = init_llm() # ============================================================ # 创建智能体(无记忆,单次查询) # ============================================================ system_prompt = """你是一个专业的**人形机器人行业信息搜集助手**。 【任务】 为用户搜集人形机器人行业的全面、准确信息,包括: 1. 行业整体规模(企业数量、增长率) 2. 重点城市分布(北京、上海、深圳、杭州的企业数量) 3. 融资情况(融资规模、头部企业融资动态) 4. 头部企业经营情况(出货量、营收、估值) 【要求】 - 使用工具进行实时搜索,验证数据。 - 如果信息不足,诚实说明,不要编造。 - 最终回答需结构化,分点清晰,并标注数据来源和时间(如果可用)。 """ agent = create_agent( model=llm, tools=tools, system_prompt=system_prompt, ) print("=" * 60) print("🤖 人形机器人行业信息搜集智能体 已就绪") print("=" * 60) # ============================================================ # 执行任务 # ============================================================ def collect_industry_info(): query = """ 请帮我全面搜集人形机器人行业的最新信息,包括以下内容: 1. **行业整体规模**: - 全国人形机器人/具身智能相关企业总数 - 上市公司数量 - 相比去年的增长情况 2. **重点城市分布**: - 北京、上海、深圳、杭州分别有多少家相关企业 - 各城市的产业特点(简要) 3. **融资情况**: - 2026年行业融资规模 - 主要的融资事件(列举3-5个) 4. **头部企业经营情况**(前5家): - 公司名称、总部城市 - 出货量、营收、估值等核心经营数据 请确保数据准确,标注数据来源和时间。 """ print("\n📡 开始搜集信息...\n") try: # 使用 HumanMessage 包装用户问题 result = agent.invoke({"messages": [HumanMessage(content=query)]}) # 提取最终回答(新 API 返回内容在最后一条消息中) final_output = result["messages"][-1].content return final_output except Exception as e: return f"执行出错: {str(e)}" if __name__ == "__main__": report = collect_industry_info() print("\n" + "=" * 60) print("📊 人形机器人行业信息报告") print(f"📅 生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print("=" * 60) print(report) # 保存报告 filename = f"report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt" with open(filename, "w", encoding="utf-8") as f: f.write(f"人形机器人行业信息报告\n生成时间: {datetime.now()}\n{'='*60}\n{report}") print(f"\n💾 报告已保存至: {filename}")

四、运行智能体

# 确保虚拟环境已激活 source .venv/bin/activate # 运行智能体 python3 agent.py

然后在终端就可以看到运行结果了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询