用途
Vector Search 是一个基于 Upstash Vector 的向量检索技能,用于为智能体实现知识检索。其上下文策略是“检索优先”(retrieval-first),智能体通过稠密与稀疏混合搜索(dense + sparse hybrid search)来查找相关上下文。该技能适用于添加 RAG、语义搜索、知识库功能,或为智能体构建上下文的场景。
主要能力
Upstash Vector 初始化
使用 @upstash/vector 的 Index 类初始化索引,通过环境变量 UPSTASH_VECTOR_URL 和 UPSTASH_VECTOR_TOKEN 提供连接信息。
文档类型
采用单一索引配合类型过滤器(type filters)管理文档。VectorDocument 接口包含 id、data(文本内容,需经 PII 脱敏)和 metadata。metadata 中的 type 可为 conversation、knowledge 或 response,并包含 appId。
- 对话元数据:
category、resolution(refund / transfer / info / escalated)、customerSentiment(positive / neutral / negative)、touchCount、resolvedAt。 - 知识元数据:
source(docs / faq / policy / canned-response)、title、lastUpdated。 - 回复元数据:
trustScore、usageCount、conversationId。
PII 脱敏(必需)
在嵌入前必须始终对 PII 进行脱敏。redactPII 函数会替换邮箱为 [EMAIL]、电话为 [PHONE]、信用卡号为 [CARD],并可将已知姓名替换为 [NAME]。
写入模式
使用 index.upsert 写入文档,传入 id、经 redactPII 处理后的 data 以及 metadata。
智能体上下文构建
buildAgentContext 函数通过并行查询(Promise.all)同时检索三类内容:
- 相似已解决工单:
topK: 3,过滤条件为appId匹配、type = 'conversation'且resolution != 'escalated'。 - 知识库文章:
topK: 5,过滤条件为appId匹配且type = 'knowledge'。 - 高信任度回复:
topK: 3,过滤条件为appId匹配、type = 'response'且trustScore > 0.85。
所有查询均设置 includeData: true 和 includeMetadata: true。
可选:Cohere Rerank
为获得更高质量的结果,可使用重排序。buildAgentContextWithRerank 函数先从稠密(queryMode: 'DENSE')和稀疏(queryMode: 'SPARSE')搜索各取 topK: 30 的候选结果,按 id 去重后,使用 Cohere 的 rerank 方法(模型 rerank-v4.0-pro)对候选文档重排序,取 topN: 10,再按类型分别截取:相似工单 3 条、知识 5 条、优质回复 3 条。
使用方式
文件位置
- 向量客户端:
packages/core/src/vector/client.ts - 上下文构建:
packages/core/src/vector/context.ts - PII 脱敏:
packages/core/src/vector/redact.ts
参考文档
完整细节参见:
docs/support-app-prd/71-vector-search.mddocs/support-app-prd/72-context-strategy.md
适用场景
适用于需要为智能体添加 RAG、语义搜索、知识库功能或上下文构建能力的项目,尤其是客服支持类应用,需要检索相似工单、知识库文章和高信任度回复的场景。
限制
资料中未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤的更多信息。PII 脱敏为必需步骤,嵌入前必须执行。