使用现有工具
既然您已经构建了一个能干的智能体,我们希望您对其所能实现的一切感到兴奋。扩展智能体能力的核心在于可用的工具,我们有好消息:来自LlamaIndex的LlamaHub拥有数百个集成,包括数十种现有的智能体工具,您可以立即使用。我们将向您展示如何使用其中一个现有工具,以及如何构建并贡献您自己的工具。
使用 LlamaHub 中的现有工具
Section titled “Using an existing tool from LlamaHub”在我们的示例中,我们将使用来自LlamaHub的雅虎财经工具。它提供了一套包含六个智能体工具的工具集,用于查找关于股票代码的各种信息。
首先我们需要安装该工具:
pip install llama-index-tools-yahoo-finance我们的依赖项与之前的示例相同,只需要添加雅虎财经工具:
from llama_index.tools.yahoo_finance import YahooFinanceToolSpec为了展示如何将自定义工具与LlamaHub工具结合使用,我们将保留add和multiply函数,尽管这里并不需要它们。我们将引入我们的工具:
finance_tools = YahooFinanceToolSpec().to_tool_list()工具列表只是一个数组,因此我们可以使用 Python 的 extend 方法将我们自己的工具添加到组合中:
finance_tools.extend([multiply, add])这次我们将提出一个与上次不同的问题,需要使用新的工具:
workflow = FunctionAgent( name="Agent", description="Useful for performing financial operations.", llm=OpenAI(model="gpt-4o-mini"), tools=finance_tools, system_prompt="You are a helpful assistant.",)
async def main(): response = await workflow.run( user_msg="What's the current stock price of NVIDIA?" ) print(response)我们得到这个响应:
The current stock price of NVIDIA Corporation (NVDA) is $128.41.(这有点作弊,因为我们的模型已经知道英伟达的股票代码。如果是一家不太知名的公司,你就需要添加像Tavily这样的搜索工具来查找股票代码。)
就是这样!你现在可以在你的智能体中使用 LlamaHub 中的任何工具了。
一如既往,你可以查看代码仓库来查看完整的代码。
我们热爱新工具的开源贡献!你可以查看雅虎财经工具的代码示例:
- 一个继承自
BaseToolSpec的类 - 一组任意的 Python 函数
- 一个
spec_functions列表,用于将函数映射到工具的API
一旦您的工具能够正常工作,请按照我们的贡献指南获取正确设置元数据并提交拉取请求的说明。
接下来我们将了解如何在您的智能体中维护状态。