Skip to content

添加其他工具#

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

使用LlamaHub中的现有工具#

在我们的示例中,我们将使用LlamaHub中的雅虎财经工具。它提供了六个智能体工具,用于查询股票代码的各种信息。

首先需要安装该工具:

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.

(这里有点取巧,因为我们的模型已经知道NVIDIA的股票代码。如果是知名度较低的公司,你需要添加像Tavily这样的搜索工具来查找股票代码。)

就是这样!现在你可以在智能体中使用LlamaHub中的任何工具了。

一如既往,你可以查看代码仓库查看完整代码。

构建并贡献你自己的工具#

我们非常欢迎开源贡献新工具!你可以查看雅虎财经工具的代码示例: * 继承BaseToolSpec的类 * 一组任意Python函数 * 将函数映射到工具API的spec_functions列表

当你完成工具开发后,请按照我们的贡献指南设置元数据并提交拉取请求。

接下来我们将探讨如何在智能体中维护状态