添加其他工具#
现在你已经构建了一个功能强大的智能体,我们希望你对其所能实现的功能感到兴奋。扩展智能体能力的核心在于可用工具,我们有个好消息:LlamaIndex的LlamaHub提供了数百种集成,包括数十种现成的智能体工具可供立即使用。我们将展示如何使用现有工具,以及如何构建并贡献你自己的工具。
使用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.
(这里有点取巧,因为我们的模型已经知道NVIDIA的股票代码。如果是知名度较低的公司,你需要添加像Tavily这样的搜索工具来查找股票代码。)
就是这样!现在你可以在智能体中使用LlamaHub中的任何工具了。
一如既往,你可以查看代码仓库查看完整代码。
构建并贡献你自己的工具#
我们非常欢迎开源贡献新工具!你可以查看雅虎财经工具的代码示例:
* 继承BaseToolSpec
的类
* 一组任意Python函数
* 将函数映射到工具API的spec_functions
列表
当你完成工具开发后,请按照我们的贡献指南设置元数据并提交拉取请求。
接下来我们将探讨如何在智能体中维护状态。