第三方工具


文档摘要

第三方工具 第三方工具使您能够集成来自 LangChain、CrewAI 等框架的现有工具生态系统。这极大地扩展了您的智能体功能,让您能够利用更广泛的 AI 社区中久经考验的工具。 您将学到的内容 LangChain 集成:使用 LangChain 丰富的工具库 CrewAI 工具:利用 CrewAI 的专用智能体工具 工具适配器:ADK 如何封装外部工具 生态系统优势:使用成熟工具库的优势 最佳实践:何时以及如何使用第三方工具 核心概念:第三方工具 第三方工具是为 ADK 封装的外部库: LangChain 工具:网络爬虫、文档加载器、API CrewAI 工具:网络爬虫、文件操作、专用功能 自定义集成:任何外部服务或库 包装类:ADK 提供适配器以实现无缝集成 主要优势 ✅

第三方工具

第三方工具使您能够集成来自 LangChain、CrewAI 等框架的现有工具生态系统。这极大地扩展了您的智能体功能,让您能够利用更广泛的 AI 社区中久经考验的工具。

您将学到的内容

  • LangChain 集成:使用 LangChain 丰富的工具库
  • CrewAI 工具:利用 CrewAI 的专用智能体工具
  • 工具适配器:ADK 如何封装外部工具
  • 生态系统优势:使用成熟工具库的优势
  • 最佳实践:何时以及如何使用第三方工具

核心概念:第三方工具

第三方工具是为 ADK 封装的外部库

  • LangChain 工具:网络爬虫、文档加载器、API
  • CrewAI 工具:网络爬虫、文件操作、专用功能
  • 自定义集成:任何外部服务或库
  • 包装类:ADK 提供适配器以实现无缝集成

主要优势

  • 丰富生态系统:可访问数百个预构建工具
  • 久经考验:数千开发者使用的成熟工具
  • 社区支持:活跃的社区和文档
  • 快速开发:无需重复造轮子

可用的第三方集成

1. LangChain 工具

  • 用途:全面的工具生态系统
  • 示例:网络爬虫、文件操作、API
  • 优势:成熟、文档齐全的工具

2. CrewAI 工具

  • 用途:专用智能体工具
  • 示例:网络爬虫、文件操作、内容处理
  • 优势:针对智能体工作流优化

3. 自定义集成

  • 用途:任何外部服务或库
  • 示例:数据库连接器、API 客户端
  • 优势:无限扩展性

教程示例

本子示例包含两个实用实现:

LangChain 智能体

位置./langchain_agent/

  • 网络搜索:集成了 DuckDuckGo 搜索,提供实时信息
  • 维基百科集成:可访问百科全书知识与文章
  • 研究能力:综合多个来源的研究功能
  • 内容分析:信息整合与来源引用

CrewAI 智能体

位置./crewai_agent/

  • 网站操作:网站内容搜索与爬取功能
  • 文件系统工具:目录搜索与文件读取操作
  • 内容提取:高级网络爬虫与数据提取
  • 文档处理:本地文件分析与内容处理

项目结构

4_3_thirdparty_tools/ ├── README.md # This file - third-party tools guide ├── requirements.txt # Dependencies for third-party tools ├── ../env.example # Environment variables template (shared) ├── langchain_agent/ # LangChain integration │ ├── __init__.py │ └── agent.py # Agent with LangChain tools └── crewai_agent/ # CrewAI integration ├── __init__.py └── agent.py # Agent with CrewAI tools

学习目标

完成本子示例后,您将掌握:

  • ✅ 如何将 LangChain 工具与 ADK 集成
  • ✅ 如何在 ADK 智能体中使用 CrewAI 工具
  • ✅ 第三方工具集成的最佳实践
  • ✅ 何时选择第三方工具而非自定义工具
  • ✅ 如何处理工具兼容性问题

开始使用

  1. 设置环境

    cd 4_3_thirdparty_tools # Copy the environment template cp ../env.example .env # Edit .env and add your Google AI API key # Get your API key from: https://aistudio.google.com/
  2. 安装依赖:安装所需软件包

    pip install -r requirements.txt
  3. 运行智能体

    # Start the ADK web interface adk web # In the web interface, select: # - langchain_agent: For web search and Wikipedia research # - crewai_agent: For website scraping and file operations
  4. 试用智能体

    • LangChain 智能体:“搜索最新 AI 新闻”、“告诉我关于机器学习的信息”
    • CrewAI 智能体:“从 example.com 抓取内容”、“搜索当前目录中的 Python 文件”
  5. 比较方法:了解各工具生态系统的差异与优势

专业提示

  • 选择成熟工具:使用维护良好的库
  • 阅读文档:理解工具的限制与要求
  • 管理依赖:谨慎处理外部库版本
  • 测试集成:验证工具与 ADK 的兼容性
  • 监控性能:部分工具可能比自定义实现慢

集成模式

1. LangChain 工具包装器

from google.adk.tools.langchain_tool import LangchainTool from langchain_community.tools import DuckDuckGoSearchRun # Wrap LangChain tool for ADK search_tool = LangchainTool(DuckDuckGoSearchRun())

2. CrewAI 工具包装器

from google.adk.tools.crewai_tool import CrewaiTool from crewai_tools import ScrapeWebsiteTool, DirectorySearchTool, FileReadTool # Basic tool - minimal configuration scrape_tool = CrewaiTool( name="scrape_website", description="Scrape and extract content from websites", tool=ScrapeWebsiteTool( config=dict( llm=dict( provider="google", # Use Google instead of default OpenAI config=dict(model="gemini-3-flash-preview"), ), ) ) ) # Search tool - needs embeddings for semantic search search_tool = CrewaiTool( name="website_search", description="Search for content within websites", tool=WebsiteSearchTool( config=dict( llm=dict( provider="google", config=dict(model="gemini-3-flash-preview"), ), embedder=dict( provider="google", config=dict( model="gemini-embedding-001", task_type="retrieval_document", ), ), ) ) )

3. 自定义集成模式

from google.adk.tools import FunctionTool import external_library def custom_integration(query: str) -> dict: """Integrate with external library.""" result = external_library.process(query) return {"result": result, "status": "success"} # Use as function tool tool = FunctionTool(custom_integration)

常见第三方工具

LangChain 工具

  • DuckDuckGoSearchRun:网络搜索
  • WebBaseLoader:网络爬虫
  • WikipediaQueryRun:维基百科搜索
  • PythonREPLTool:Python 代码执行
  • ShellTool:Shell 命令执行

CrewAI 工具

  • ScrapeWebsiteTool:网络爬虫与内容提取
  • DirectorySearchTool:文件系统搜索与探索
  • FileReadTool:文件读取与内容分析

自定义集成

  • 数据库连接器:SQLAlchemy、MongoDB
  • API 客户端:REST、GraphQL
  • 文件处理器:PDF、Excel、CSV
  • 云服务:AWS、GCP、Azure

重要注意事项

  • 依赖关系:第三方工具会引入外部依赖
  • 兼容性:确保工具版本与 ADK 兼容
  • 性能:部分工具可能比自定义实现慢
  • 维护:外部工具可能会变化或过时
  • 安全:验证外部工具的安全性与权限

CrewAI 模型配置

⚠️ 重要:CrewAI 工具默认使用 OpenAI 模型。在使用 Google ADK 时,请将其配置为使用 Google 模型以保持一致性:

# ❌ Default - Uses OpenAI models tool = WebsiteSearchTool() # ✅ Correct configuration - All tools need both LLM and embeddings tool = ScrapeWebsiteTool( config=dict( llm=dict( provider="google", config=dict(model="gemini-3-flash-preview"), ), embedder=dict( provider="google", config=dict( model="gemini-embedding-001", task_type="retrieval_document", ), ), ) ) # ✅ Same configuration pattern for all tools tool = DirectorySearchTool( config=dict( llm=dict( provider="google", config=dict(model="gemini-3-flash-preview"), ), embedder=dict( provider="google", config=dict( model="gemini-embedding-001", task_type="retrieval_document", ), ), ) )

关键点

  • LLM 配置:始终设置 provider="google" to avoid OpenAI defaults
  • Embeddings: Required for all CrewAI tools to prevent OpenAI fallback
  • Available providers: google, openai, anthropic, ollama, llama2 等。

常见应用场景

网络与研究

  • 网络爬虫与内容提取
  • 网站内容分析
  • 文档处理
  • 内容研究与分析

文件操作

  • 文件系统搜索与探索
  • 文件读取与内容分析
  • 目录导航
  • 本地文件处理

开发工具

  • 代码执行
  • 文档搜索
  • 版本控制操作
  • 测试工具

云与服务

  • 云存储操作
  • 邮件与消息
  • 身份认证服务
  • 监控与日志记录

对比:第三方 vs 自定义 vs 内置

方面 第三方 自定义 内置
开发时间 快速 即刻
灵活性 中等
性能 可变 最高
维护 外部 内部
功能 丰富 定制 基本
依赖

免责声明
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


作者与出处
原作者: Shubhamsaboo
来源:Shubhamsaboo
许可证:Apache-2.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Shubhamsaboo 转发
评论区 (0)
U