LlamaIndexAgent 将 AG-Kit 连接到 LlamaIndex TS 工作流系统。它可以:
- 从 llm、tools 和 systemPrompt 构建简单的单代理工作流
- 或通过 workflowFactory 接受自定义工作流
- 流式传输 AG-UI 兼容的事件(文本块、工具调用/结果)
- 通过 memoryFactory 维护每个线程的对话记忆
在底层,它使用 AguiLlamaIndexWorkflow 将 LlamaIndex 工作流事件转换为 @ag-ui/client 的 BaseEvent。
pnpm add @ag-kit/agents @ag-kit/adapter-llamaindex llamaindex @llamaindex/openai @llamaindex/workflow zod
所有导出都可以从 @ag-kit/adapter-llamaindex 获取:
导出:
- LlamaIndexAgent - LlamaIndex 集成的主代理类
- AguiLlamaIndexWorkflow - 构建可运行工作流(单代理或多代理)的实用工具
快速入门(单代理)
import { LlamaIndexAgent } from "@ag-kit/adapter-llamaindex";
import { OpenAI } from "@llamaindex/openai";
const llm = new OpenAI({
model: process.env.OPENAI_MODEL!,
apiKey: process.env.OPENAI_API_KEY!,
baseURL: process.env.OPENAI_BASE_URL!,
});
export const agent = new LlamaIndexAgent({
name: "llamaindex-agent",
description: "Single-agent with LlamaIndex LLM",
llm,
// tools, systemPrompt 在这里是可选的
});
自定义工作流(多代理或高级)
import { LlamaIndexAgent, AguiLlamaIndexWorkflow } from "@ag-kit/adapter-llamaindex";
export const agent = new LlamaIndexAgent({
name: "multi-agent",
workflowFactory: () => {
// 使用 AguiLlamaIndexWorkflow 辅助方法构建
return AguiLlamaIndexWorkflow.fromTools({
name: "Orchestrator",
llm,
tools,
systemPrompt: "You are the orchestrator",
});
},
});
服务器集成
import { run } from "@ag-kit/server";
import { agent } from "./agent";
run({ createAgent: () => ({ agent }) });
API
class LlamaIndexAgent
new LlamaIndexAgent(config: AgentConfig & {
// 基本单代理参数(当未提供 workflowFactory 时使用)
llm?: LLM;
tools?: BaseTool[];
systemPrompt?: string;
name?: string;
// 高级:提供您自己的可运行工作流
workflowFactory?: () => RunnableWorkflow;
// 可选的对话记忆提供者
memoryFactory?: () => Memory;
})
代理的唯一标识符。如果省略,默认为 “Agent”。
LlamaIndex LLM 实例。在构建默认单代理工作流时使用。
LlamaIndex 工具数组。这些工具在代理执行期间被调用。
提供自定义工作流。当存在时,它会覆盖默认的单代理工作流。
run()
run(input: RunAgentInput): Observable<BaseEvent>
执行工作流并从 @ag-ui/client 发出 BaseEvent 值。
- input - RunAgentInput,包含 messages、runId、threadId、tools 等。
- returns -
Observable<BaseEvent>
注意:事件类型遵循与 LanggraphAgent 相同的语义(RUN_STARTED、TEXT_MESSAGE_CONTENT、TOOL_CALL_START、TOOL_CALL_ARGS、TOOL_CALL_RESULT、RUN_FINISHED 等)。