快速上手
本章对齐官方 Starter Tutorial (OpenAI):先跑 FunctionAgent + 工具,再接 VectorStoreIndex,最后 persist 与多轮 Context。
示例 LLM 用 gpt-4o-mini。框架历史默认曾是 gpt-3.5-turbo,请以当前文档为准。先设置 OPENAI_API_KEY,并准备一个 data/ 目录(任意 .txt / .md 即可)。
最小 FunctionAgent
把普通 Python 函数当成工具:类型注解 + docstring 会进 schema,模型据此决定是否调用。
发生了什么: 问题与工具 schema 送给 LLM → 选出 multiply 并填参 → 框架执行函数 → 模型把结果写成自然语言。官方建议用 async(许多 LLM 客户端支持异步)。
多轮对话:把 Context 传回去
FunctionAgent 的会话状态在 Context 里。同一 ctx 连续 run,模型才能记住上一轮。
每次都新建 Context 等于失忆。生产环境要把 Context 按用户 / 会话 ID 持久化(官方 Workflow 文档有 checkpoint 示例)。
五分钟 RAG:目录 → 索引 → 查询引擎
默认会用 OpenAI embedding(历史默认 text-embedding-ada-002)把切块写入内存向量库。把查询包成工具,就能和计算器一起交给 Agent:
持久化,避免每次重新 embedding
若索引建在 Chroma / pgvector / Qdrant 上,向量已经在库里,通常改为 VectorStoreIndex.from_vector_store(vector_store),不必再 load_index_from_storage。见 向量库集成。
自定义过 transformations / embed_model 时,加载必须用同一套 Settings,否则检索空间对不齐。
第一个任务清单
pip install llama-index,设置OPENAI_API_KEY- 运行最小
FunctionAgent乘法脚本 - 把几份文档放进
data/,跑VectorStoreIndex+as_query_engine - 加上
search_documents工具,问一个文档里才有的事实 persist后重启进程再查询;用同一个Context问两轮名字