Agent智能体从概念到实践(三)--- 创建你的第一个智能体

Agent智能体从概念到实践(三)--- 创建你的第一个智能体 一、技术选型路径怎么选常见的智能体搭建路径路径代表工具适合谁优点缺点零代码/低代码Coze扣子、Dify产品、运营、无编程基础者上手快可视化编排内置插件丰富定制化能力有限开发者框架LangChain、CrewAI有Python基础的开发者灵活可控可深度定制学习曲线较陡自动化工作流n8n需要定时、跨平台采集的场景支持800应用节点定时触发需额外配置LLM官方SDK快速起步Claude Agent SDK想最快跑通Demo的开发者几行代码即可运行依赖特定模型如果你是新手建议从Coze或Dify开始如果你有Python基础可以用LangChain或CrewAI做深度定制如果只是想最快跑通一个DemoClaude Agent SDK的几行代码就能搞定。现在我们尝试自主的定制开发路线看看。1.1 LangChainLangChain 是一个功能强大的开源框架旨在帮助开发者构建各种基于大语言模型LLM的复杂应用。它的核心是“组件化”提供了从模型调用、数据连接、记忆管理到智能体工作流编排的全套“零件”。核心特点生态最完善它集成了数百种 LLM、向量数据库和外部工具是当前社区最活跃、生产应用最广泛的框架。截至2026年已有超过10万个生产级应用基于它构建。功能全面它提供了构建 AI 应用所需的各种抽象如链Chain、智能体Agent、记忆Memory等并拥有 LangGraph、LangSmith 等子项目来处理复杂工作流、监控和评估。上手快速对于简单场景如问答、总结等可以快速搭建出演示原型Demo。主要劣势抽象层次高灵活性代价大由于其高度封装当需要进行深度定制时开发者可能需要绕过多层抽象增加了复杂性。有研究表明使用 LangChain 可能会带来高达42%的额外计算开销。性能与维护成本每一步操作都要经过框架的中间层会带来一定的性能开销。同时其版本迭代快API 经常变动升级和维护成本较高。1.2 CrewAICrewAI 则是一个专注于多智能体协作的框架。它的核心思想是让 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 --version2.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_KEYyour_openai_key_here # 或 DEEPSEEK_API_KEYyour_deepseek_key_here # 搜索工具至少配置一个 TAVILY_API_KEYyour_tavily_key_here # 或 SERPAPI_API_KEYyour_serpapi_key_here # 可选如果使用其他服务 # ANTHROPIC_API_KEYyour_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, timeout15, headersheaders) response.raise_for_status() soup BeautifulSoup(response.content, html.parser) for script in soup([script, style]): script.decompose() text soup.get_text(separator\n, stripTrue) return text[:3000] except Exception as e: return f抓取网页时出错: {str(e)} # 搜索工具 search_tool TavilySearch( nameweb_search, description搜索最新的行业新闻、报告和动态。, max_results5, api_keyos.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( modeldeepseek-chat, temperature0.1, api_keydeepseek_key, base_urlhttps://api.deepseek.com/v1 ) elif openai_key: print(✓ 使用 OpenAI 模型) return ChatOpenAI( modelgpt-4o-mini, temperature0.1, api_keyopenai_key ) else: raise ValueError(请在 .env 中配置 DEEPSEEK_API_KEY 或 OPENAI_API_KEY) llm init_llm() # # 创建智能体无记忆单次查询 # system_prompt 你是一个专业的**人形机器人行业信息搜集助手**。 【任务】 为用户搜集人形机器人行业的全面、准确信息包括 1. 行业整体规模企业数量、增长率 2. 重点城市分布北京、上海、深圳、杭州的企业数量 3. 融资情况融资规模、头部企业融资动态 4. 头部企业经营情况出货量、营收、估值 【要求】 - 使用工具进行实时搜索验证数据。 - 如果信息不足诚实说明不要编造。 - 最终回答需结构化分点清晰并标注数据来源和时间如果可用。 agent create_agent( modelllm, toolstools, system_promptsystem_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(contentquery)]}) # 提取最终回答新 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 freport_{datetime.now().strftime(%Y%m%d_%H%M%S)}.txt with open(filename, w, encodingutf-8) as f: f.write(f人形机器人行业信息报告\n生成时间: {datetime.now()}\n{*60}\n{report}) print(f\n 报告已保存至: {filename})四、运行智能体# 确保虚拟环境已激活 source .venv/bin/activate # 运行智能体 python3 agent.py然后在终端就可以看到运行结果了。