智能体#
在LlamaIndex中构建智能体可以通过定义一组工具,并将其提供给我们的ReActAgent或FunctionAgent实现来完成。这里我们以OpenAI为例,但它可以用于任何能力足够强大的LLM。
通常情况下,对于API中内置函数调用/工具功能的LLM(如OpenAI、Anthropic、Gemini等),应优先选择FunctionAgent。
from llama_index.core.tools import FunctionTool
from llama_index.llms.openai import OpenAI
from llama_index.core.agent.workflow import ReActAgent, FunctionAgent
# 定义示例工具
def multiply(a: int, b: int) -> int:
"""将两个整数相乘并返回结果整数"""
return a * b
# 初始化llm
llm = OpenAI(model="gpt-4o")
# 初始化智能体
agent = FunctionAgent(
tools=[multiply],
system_prompt="你是一个智能体,在协助用户时可以调用乘法工具。",
)
这些工具可以是如上所示的Python函数,也可以是LlamaIndex的查询引擎:
from llama_index.core.tools import QueryEngineTool
query_engine_tools = [
QueryEngineTool.from_defaults(
query_engine=sql_agent,
name="sql_agent",
description="能够执行SQL查询的智能体。",
),
]
agent = FunctionAgent(
tools=query_engine_tools,
system_prompt="你是一个智能体,可以调用文本转SQL执行代理。",
)