[ PROMPT_NODE_22218 ]
Agents Llamaindex 智能体
[ SKILL_DOCUMENTATION ]
# LlamaIndex 智能体指南
使用工具和 RAG 能力构建智能体。
## 基础智能体
python
from llama_index.core.agent import FunctionAgent
from llama_index.llms.openai import OpenAI
def multiply(a: int, b: int) -> int:
"""将两个数字相乘。"""
return a * b
llm = OpenAI(model="gpt-4o")
agent = FunctionAgent.from_tools(
tools=[multiply],
llm=llm,
verbose=True
)
response = agent.chat("25 * 17 等于多少?")
## RAG 智能体
python
from llama_index.core.tools import QueryEngineTool
# 将查询引擎创建为工具
index = VectorStoreIndex.from_documents(documents)
query_tool = QueryEngineTool.from_defaults(
query_engine=index.as_query_engine(),
name="python_docs",
description="对 Python 编程问题很有用"
)
# 带有 RAG + 计算器的智能体
agent = FunctionAgent.from_tools(
tools=[query_tool, multiply],
llm=llm
)
response = agent.chat("根据文档,Python 是什么?")
## 多文档智能体
python
# 多个知识库
python_tool = QueryEngineTool.from_defaults(
query_engine=python_index.as_query_engine(),
name="python_docs",
description="Python 编程文档"
)
numpy_tool = QueryEngineTool.from_defaults(
query_engine=numpy_index.as_query_engine(),
name="numpy_docs",
description="NumPy 数组文档"
)
agent = FunctionAgent.from_tools(
tools=[python_tool, numpy_tool],
llm=llm
)
# 智能体选择正确的知识库
response = agent.chat("我该如何创建 numpy 数组?")
## 最佳实践
1. **清晰的工具描述** - 智能体需要知道何时使用每个工具
2. **限制工具数量在 5-10 个** - 工具过多会使智能体困惑
3. **开发期间使用详细模式 (verbose mode)** - 查看智能体的推理过程
4. **结合 RAG + 计算** - 强大的组合
5. **测试工具组合** - 确保它们能协同工作
## 资源
- **智能体文档**: https://developers.llamaindex.ai/python/framework/modules/agents/