您的位置:首页 > 文旅 > 美景 > 开发定制软件_经典营销案例100例_互联网营销案例_软文营销代理

开发定制软件_经典营销案例100例_互联网营销案例_软文营销代理

2025/4/24 14:32:25 来源:https://blog.csdn.net/u010778229/article/details/147275515  浏览:    关键词:开发定制软件_经典营销案例100例_互联网营销案例_软文营销代理
开发定制软件_经典营销案例100例_互联网营销案例_软文营销代理

LangChain Agent Tools 参考文档

本文档详细介绍了LangChain框架中可用的Agent工具及其使用方法。这些工具可以赋予AI智能体与外部系统和服务交互的能力,从而构建功能更强大的应用程序。

目录

  • 工具加载方法
  • 基础工具
  • 文件和系统工具
  • 搜索和信息检索工具
  • 语言模型增强工具
  • API和集成工具
  • 数据库工具
  • 浏览器和网页工具
  • AI服务工具
  • 办公和生产力工具
  • 人工交互工具
  • 工具集合(Toolkits)

工具加载方法

LangChain提供了两种主要方式来加载和使用工具:

1. 使用load_tools函数

from langchain_community.agent_toolkits import load_tools# 加载单个工具
tools = load_tools(["wikipedia"])# 加载多个工具
tools = load_tools(["wikipedia", "llm-math"], llm=llm)# 加载需要API密钥的工具
tools = load_tools(["google-search"], google_api_key="your_api_key", google_cse_id="your_cse_id")# 加载危险工具(需要特别允许)
tools = load_tools(["terminal"], allow_dangerous_tools=True)

2. 直接导入工具类

from langchain_community.tools.google_search import GoogleSearchRun
from langchain_community.utilities.google_search import GoogleSearchAPIWrapper# 创建API包装器
search = GoogleSearchAPIWrapper(google_api_key="your_api_key", google_cse_id="your_cse_id")# 创建工具实例
tool = GoogleSearchRun(api_wrapper=search)

获取所有可用工具名称

from langchain_community.agent_toolkits import get_all_tool_names
names = get_all_tool_names()
print(names)

基础工具

Sleep Tool (休眠工具)

描述:让程序暂停执行一段时间

参数:无特殊参数

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["sleep"])

文件和系统工具

Terminal Tool (终端命令工具)

描述:执行shell/CMD/PowerShell命令的工具

注意:此工具被归类为危险工具,因为它可以执行任意系统命令

参数

  • allow_dangerous_tools=True:必须明确允许使用危险工具

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["terminal"], allow_dangerous_tools=True)# 方法2: 直接导入
from langchain.tools.shell.tool import ShellTool
shell_tool = ShellTool()# 执行命令
result = shell_tool.run("dir")  # Windows
result = shell_tool.run("ls -la")  # Linux/Mac
result = shell_tool.run("powershell -Command Get-Process")  # PowerShell

File Management Toolkit (文件管理工具集)

描述:提供文件系统操作功能的工具集

包含的工具

  • ReadFileTool - 读取文件内容
  • WriteFileTool - 写入文件
  • ListDirectoryTool - 列出目录内容
  • CopyFileTool - 复制文件
  • DeleteFileTool - 删除文件
  • MoveFileTool - 移动文件
  • FileSearchTool - 搜索文件

参数

  • root_dir:(可选) 限制文件操作的根目录,默认为当前工作目录

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["file-management"])# 方法2: 使用工具集
from langchain_community.agent_toolkits import FileManagementToolkit
toolkit = FileManagementToolkit(root_dir="./data")
tools = toolkit.get_tools()# 方法3: 单独使用工具
from langchain_community.tools.file_management import ReadFileTool, WriteFileTool
read_tool = ReadFileTool()
write_tool = WriteFileTool()

搜索和信息检索工具

Wikipedia (维基百科搜索)

描述:从维基百科搜索和获取信息

参数

  • top_k_results:(可选) 返回的最大结果数,默认为2

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["wikipedia"])# 方法2: 直接导入
from langchain_community.tools.wikipedia.tool import WikipediaQueryRun
from langchain_community.utilities.wikipedia import WikipediaAPIWrapper
wikipedia_tool = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())

Google Search (谷歌搜索)

描述:使用Google搜索引擎进行搜索

参数

  • google_api_key:Google API密钥
  • google_cse_id:Google自定义搜索引擎ID
  • top_k_results:(可选) 返回的最大结果数,默认为4

注册

  • Google Custom Search API: https://developers.google.com/custom-search/v1/introduction
  • 创建自定义搜索引擎: https://programmablesearchengine.google.com/

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["google-search"], google_api_key="your_api_key", google_cse_id="your_cse_id"
)# 方法2: 直接导入
from langchain_community.tools.google_search import GoogleSearchRun
from langchain_community.utilities.google_search import GoogleSearchAPIWrapper
search = GoogleSearchAPIWrapper(google_api_key="your_api_key", google_cse_id="your_cse_id")
google_tool = GoogleSearchRun(api_wrapper=search)

Bing Search (必应搜索)

描述:使用Bing搜索引擎进行搜索

参数

  • bing_subscription_key:Bing API密钥
  • bing_search_url:(可选) Bing搜索API URL

注册

  • Bing Search API: https://www.microsoft.com/en-us/bing/apis/bing-web-search-api

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["bing-search"], bing_subscription_key="your_api_key")# 方法2: 直接导入
from langchain_community.tools.bing_search import BingSearchRun
from langchain_community.utilities.bing_search import BingSearchAPIWrapper
bing_api = BingSearchAPIWrapper(bing_subscription_key="your_api_key")
bing_tool = BingSearchRun(api_wrapper=bing_api)

DuckDuckGo Search (DuckDuckGo搜索)

描述:使用DuckDuckGo搜索引擎进行搜索,不需要API密钥

参数:无特殊参数

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["ddg-search"])# 方法2: 直接导入
from langchain_community.tools.ddg_search import DuckDuckGoSearchRun
ddg_tool = DuckDuckGoSearchRun()

SerpAPI (搜索引擎结果API)

描述:通过SerpAPI获取搜索引擎结果

参数

  • serpapi_api_key:SerpAPI密钥

注册

  • SerpAPI: https://serpapi.com/

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["serpapi"], serpapi_api_key="your_api_key")

Arxiv (arXiv论文查询)

描述:搜索和获取arXiv上的学术论文

参数

  • top_k_results:(可选) 返回的最大结果数,默认为3

用法

from langchain_community.agent_toolkits import load_tools# 方法1: 使用load_tools
tools = load_tools(["arxiv"])# 方法2: 直接导入
from langchain_community.tools.arxiv.tool import ArxivQueryRun
arxiv_tool = ArxivQueryRun()

PubMed (医学文献查询)

描述:搜索和获取PubMed上的医学文献

参数

  • top_k_results:(可选) 返回的最大结果数,默认为3

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["pubmed"])

Tavily Search (Tavily搜索)

描述:使用Tavily API搜索网络信息

参数

  • tavily_api_key:Tavily API密钥
  • max_results:(可选) 返回的最大结果数,默认为5

注册

  • Tavily: https://tavily.com/

用法

from langchain.tools.tavily_search import TavilySearchResults
tavily_tool = TavilySearchResults(tavily_api_key="your_api_key")

语言模型增强工具

LLM Math (LLM数学计算)

描述:利用语言模型解决数学问题

参数

  • llm:语言模型实例,必需

用法

from langchain_community.agent_toolkits import load_tools
from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-3.5-turbo")
tools = load_tools(["llm-math"], llm=llm)

PAL (程序辅助语言模型)

描述:程序辅助语言模型,用于解决复杂问题

参数

  • llm:语言模型实例,必需
  • pal_type:(可选) PAL类型,如"math"或"colored_objects"

用法

from langchain_community.agent_toolkits import load_tools
from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-3.5-turbo")
tools = load_tools(["pal-math"], llm=llm)

API和集成工具

Requests Tools (HTTP请求工具)

描述:发送HTTP请求的工具集,包括GET、POST、PUT、PATCH、DELETE方法

注意:这些工具被归类为危险工具,因为它们可以发送任意HTTP请求

参数

  • allow_dangerous_tools=True:必须明确允许使用危险工具

用法

from langchain_community.agent_toolkits import load_tools# 加载所有HTTP请求工具
tools = load_tools(["requests_get","requests_post","requests_put","requests_patch", "requests_delete"
], allow_dangerous_tools=True)# 或者只加载GET请求工具
tools = load_tools(["requests_get"], allow_dangerous_tools=True)

Wolfram Alpha (Wolfram Alpha计算引擎)

描述:使用Wolfram Alpha计算引擎进行计算和获取知识

参数

  • wolfram_alpha_appid:Wolfram Alpha App ID

注册

  • Wolfram Alpha API: https://developer.wolframalpha.com/

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["wolfram-alpha"], wolfram_alpha_appid="your_app_id")

OpenWeatherMap (天气查询API)

描述:获取实时天气和预报信息

参数

  • openweathermap_api_key:OpenWeatherMap API密钥

注册

  • OpenWeatherMap API: https://openweathermap.org/api

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["openweathermap-api"], openweathermap_api_key="your_api_key")

GraphQL (GraphQL查询工具)

描述:执行GraphQL查询的工具

参数

  • graphql_endpoint:GraphQL端点URL
  • headers:(可选) HTTP请求头

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["graphql"], graphql_endpoint="https://your-graphql-endpoint.com")

Twilio (短信服务)

描述:发送SMS短信的工具

参数

  • twilio_account_sid:Twilio账户SID
  • twilio_auth_token:Twilio认证令牌

注册

  • Twilio: https://www.twilio.com/

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["twilio"], twilio_account_sid="your_sid", twilio_auth_token="your_token"
)

数据库工具

SQL Database Toolkit (SQL数据库工具集)

描述:提供SQL数据库操作功能的工具集

包含的工具

  • QuerySQLDataBaseTool - 执行SQL查询
  • InfoSQLDatabaseTool - 获取数据库信息
  • ListSQLDatabaseTool - 列出数据库表
  • QueryCheckerTool - 检查SQL查询

参数

  • db:SQLAlchemy数据库连接对象

用法

from langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain_community.utilities import SQLDatabase# 连接数据库
db = SQLDatabase.from_uri("sqlite:///chinook.db")# 创建工具集
toolkit = SQLDatabaseToolkit(db=db)
tools = toolkit.get_tools()

Vector Store Tools (向量存储工具)

描述:用于向量数据库检索的工具

包含的工具

  • VectorStoreQATool - 问答工具
  • VectorStoreQAWithSourcesTool - 带来源的问答工具

参数

  • vectorstore:向量存储实例

用法

from langchain.tools.vectorstore import VectorStoreQATool
from langchain_openai import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain_openai import ChatOpenAI# 创建向量存储
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_texts(["文本1", "文本2"], embeddings)# 创建工具
llm = ChatOpenAI(model="gpt-3.5-turbo")
vector_tool = VectorStoreQATool.from_llm(llm, vectorstore)

浏览器和网页工具

PlayWright Browser Toolkit (浏览器自动化工具集)

描述:基于Playwright的浏览器自动化工具集

包含的工具

  • NavigateTool - 导航到URL
  • ExtractTextTool - 提取网页文本
  • ExtractHyperlinksTool - 提取链接
  • GetElementsTool - 获取HTML元素
  • ClickTool - 点击元素
  • CurrentWebPageTool - 获取当前页面信息

用法

from langchain_community.agent_toolkits import PlayWrightBrowserToolkit
from langchain_community.utilities.playwright import PlaywrightBrowser# 创建浏览器实例
browser = PlaywrightBrowser()# 创建工具集
toolkit = PlayWrightBrowserToolkit.from_browser(browser)
tools = toolkit.get_tools()

AI服务工具

DALL-E (图像生成)

描述:使用OpenAI DALL-E生成图像

参数

  • openai_api_key:OpenAI API密钥

注册

  • OpenAI API: https://platform.openai.com/

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["dalle-image-generator"], openai_api_key="your_api_key")

ElevenLabs Text2Speech (文本转语音)

描述:使用ElevenLabs将文本转换为逼真的语音

参数

  • eleven_api_key:ElevenLabs API密钥

注册

  • ElevenLabs: https://elevenlabs.io/

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["eleven-labs-text2speech"], eleven_api_key="your_api_key")

Google Cloud Text-to-Speech (谷歌云文本转语音)

描述:使用Google Cloud将文本转换为语音

参数

  • google_cloud_credentials_json:GCP凭证JSON文件路径

注册

  • Google Cloud: https://cloud.google.com/text-to-speech

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["google-cloud-texttospeech"], google_cloud_credentials_json="path/to/credentials.json"
)

办公和生产力工具

Gmail Toolkit (Gmail工具集)

描述:操作Gmail邮箱的工具集

包含的工具

  • GmailSearch - 搜索邮件
  • GmailGetMessage - 获取邮件内容
  • GmailGetThread - 获取邮件线程
  • GmailSendMessage - 发送邮件
  • GmailCreateDraft - 创建草稿

参数

  • credentials_path:(可选) Google API凭证JSON文件路径
  • token_path:(可选) Google API令牌文件路径

用法

from langchain_community.agent_toolkits import GmailToolkittoolkit = GmailToolkit(credentials_path="credentials.json")
tools = toolkit.get_tools()

Office 365 Toolkit (Office 365工具集)

描述:操作Microsoft 365服务的工具集

包含的工具

  • O365SearchEmails - 搜索邮件
  • O365SendMessage - 发送邮件
  • O365CreateDraftMessage - 创建草稿
  • O365SearchEvents - 搜索日历事件
  • O365SendEvent - 创建日历事件

用法

from langchain_community.agent_toolkits import O365Toolkit
from O365 import Account# 设置Office 365账户
credentials = ('client_id', 'client_secret')
account = Account(credentials)
account.authenticate()# 创建工具集
toolkit = O365Toolkit(account=account)
tools = toolkit.get_tools()

Jira Toolkit (Jira工具集)

描述:操作Jira项目管理软件的工具集

参数

  • jira_api_token:Jira API令牌
  • jira_username:Jira用户名
  • jira_instance_url:Jira实例URL

注册

  • Jira API: https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/

用法

from langchain_community.agent_toolkits import JiraToolkit
from langchain_community.utilities.jira import JiraAPIWrapperjira = JiraAPIWrapper(jira_api_token="your_api_token",jira_username="your_username",jira_instance_url="https://your-domain.atlassian.net"
)toolkit = JiraToolkit(jira_api_wrapper=jira)
tools = toolkit.get_tools()

人工交互工具

Human Input Tool (人类输入工具)

描述:请求人类用户提供输入的工具

参数:无特殊参数

用法

from langchain_community.agent_toolkits import load_toolstools = load_tools(["human"])

工具集合(Toolkits)

LangChain提供了多个工具集合(Toolkits),每个工具集包含多个相关工具:

FileManagementToolkit

文件管理工具集,包含文件读写、目录列表等功能

OpenAPIToolkit

基于OpenAPI规范自动生成API工具

JsonToolkit

处理JSON数据的工具集

SQLDatabaseToolkit

SQL数据库操作工具集

PlayWrightBrowserToolkit

基于Playwright的浏览器自动化工具集

GmailToolkit

Gmail操作工具集

O365Toolkit

Office 365操作工具集

JiraToolkit

Jira项目管理工具集

AINetworkToolkit

AI Network区块链平台工具集

ZapierToolkit

Zapier集成工具集

SparkSQLToolkit

Spark SQL查询工具集

PowerBIToolkit

Microsoft Power BI工具集

使用示例

创建一个使用多种工具的智能体

from langchain_community.agent_toolkits import load_tools
from langchain.agents import initialize_agent, AgentType
from langchain_openai import ChatOpenAI# 创建语言模型
llm = ChatOpenAI(model="gpt-3.5-turbo")# 加载工具
tools = load_tools(["wikipedia","llm-math","ddg-search"],llm=llm
)# 创建智能体
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,verbose=True
)# 运行智能体
agent.run("谁是现任法国总统?他的年龄是多少?")

使用多个工具集合

from langchain_openai import ChatOpenAI
from langchain_community.agent_toolkits import FileManagementToolkit, PlayWrightBrowserToolkit
from langchain_community.utilities.playwright import PlaywrightBrowser
from langchain.agents import initialize_agent, AgentType# 创建语言模型
llm = ChatOpenAI(model="gpt-3.5-turbo")# 创建文件管理工具集
file_toolkit = FileManagementToolkit()
file_tools = file_toolkit.get_tools()# 创建浏览器工具集
browser = PlaywrightBrowser()
browser_toolkit = PlayWrightBrowserToolkit.from_browser(browser)
browser_tools = browser_toolkit.get_tools()# 合并工具
all_tools = file_tools + browser_tools# 创建智能体
agent = initialize_agent(all_tools, llm, agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True
)# 运行智能体
agent.run("""
请访问https://news.baidu.com,抓取今日头条新闻,
并将结果保存到'news.txt'文件中
""")

注意事项

  1. 安全性:某些工具(如ShellTool和RequestsTool)可以执行任意命令或发送请求,使用时应特别注意安全问题

  2. API密钥:许多工具需要API密钥,请确保妥善保管这些凭证

  3. 费用:某些第三方服务可能会收取使用费,请在使用前了解相关费用

  4. 权限:使用工具集合时,请确保你的应用程序具有适当的权限

  5. 依赖项:某些工具可能需要额外的依赖项,请确保安装所需的包

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com