Agents 可以使用检索增强生成(RAG)来检索相关信息并使用它来增强对 AI 模型的调用。存储用户的聊天历史记录以用作未来对话的上下文,总结文档以引导 Agent 的知识库,和/或使用来自 Agent 的网页浏览任务的数据来增强您的 Agent 的能力。
您可以使用 Agent 自己的 SQL 数据库作为数据的事实来源,并将嵌入存储在 Vectorize(或任何其他支持向量的数据库)中,以允许您的 Agent 检索相关信息。
您可以从 Agent 上的任何方法查询向量索引(或索引):您附加的任何 Vectorize 索引都可以在 Agent 内的 this.env
上使用。如果您已经将元数据关联到映射回存储在 Agent 中的数据的向量,您可以使用 this.sql
直接在 Agent 内查找数据。
以下是如何为 Agent 提供检索功能的示例:
import { Agent } from "agents";
export class RAGAgent extends Agent { // 我们 Agent 上的其他方法 // ... // async queryKnowledge(userQuery) { // 将查询转换为嵌入 const queryVector = await this.env.AI.run("@cf/baai/bge-base-en-v1.5", { text: [userQuery], });
// 从我们的向量索引中检索结果 let searchResults = await this.env.VECTOR_DB.query(queryVector.data[0], { topK: 10, returnMetadata: "all", });
let knowledge = []; for (const match of searchResults.matches) { console.log(match.metadata); knowledge.push(match.metadata); }
// 使用元数据将向量搜索结果重新关联 // 到我们 Agent 的 SQL 数据库中的数据 let results = this .sql`SELECT * FROM knowledge WHERE id IN (${knowledge.map((k) => k.id)})`;
// 返回它们 return results; }}
import { Agent } from "agents";
interface Env { AI: Ai; VECTOR_DB: Vectorize;}
export class RAGAgent extends Agent<Env> { // 我们 Agent 上的其他方法 // ... // async queryKnowledge(userQuery: string) { // 将查询转换为嵌入 const queryVector = await this.env.AI.run("@cf/baai/bge-base-en-v1.5", { text: [userQuery], });
// 从我们的向量索引中检索结果 let searchResults = await this.env.VECTOR_DB.query(queryVector.data[0], { topK: 10, returnMetadata: "all", });
let knowledge = []; for (const match of searchResults.matches) { console.log(match.metadata); knowledge.push(match.metadata); }
// 使用元数据将向量搜索结果重新关联 // 到我们 Agent 的 SQL 数据库中的数据 let results = this .sql`SELECT * FROM knowledge WHERE id IN (${knowledge.map((k) => k.id)})`;
// 返回它们 return results; }}
您还需要将您的 Agent 连接到您的向量索引:
{ // ... "vectorize": [ { "binding": "VECTOR_DB", "index_name": "your-vectorize-index-name", }, ], // ...}
[[vectorize]]binding = "VECTOR_DB"index_name = "your-vectorize-index-name"
如果您有多个要提供的索引,您可以提供一个 vectorize
绑定数组。
- 了解更多关于如何结合 Vectorize 和 Workers AI
- 查看 Vectorize 查询 API
- 使用元数据过滤为您的结果添加上下文
- @2025 Cloudflare Ubitools
- Cf Repo