跳转到内容

使用现有工具

既然您已经构建了一个能干的智能体,我们希望您对其所能实现的一切感到兴奋。扩展智能体能力的核心在于可用的工具,我们有好消息:来自LlamaIndex的LlamaHub拥有数百个集成,包括数十种现有的智能体工具,您可以立即使用。我们将向您展示如何使用其中一个现有工具,以及如何构建并贡献您自己的工具。

在我们的示例中,我们将使用来自LlamaHub的雅虎财经工具。它提供了一套包含六个智能体工具的工具集,用于查找关于股票代码的各种信息。

首先我们需要安装该工具:

Terminal window
pip install llama-index-tools-yahoo-finance

我们的依赖项与之前的示例相同,只需要添加雅虎财经工具:

from llama_index.tools.yahoo_finance import YahooFinanceToolSpec

为了展示如何将自定义工具与LlamaHub工具结合使用,我们将保留addmultiply函数,尽管这里并不需要它们。我们将引入我们的工具:

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

一旦您的工具能够正常工作,请按照我们的贡献指南获取正确设置元数据并提交拉取请求的说明。

接下来我们将了解如何在您的智能体中维护状态