K
Agent 踩坑指南
创建于:2025-07-26 15:06:11
|
更新于:2026-04-04 22:28:39

Cloudflare Vectorize 踩坑记录

向量检索返回 0 条

可能原因一:metadata filter 失效

Vectorize 的 filter 需要提前声明 metadata index,否则静默返回空。必须在插入向量前执行:

yarn wrangler vectorize create-metadata-index ai-companion-memories \
  --property-name sessionId \
  --type string \
  --cwd apps/server

注意:已有向量不会自动生效,需重新 upsert。

可能原因二:metadata 未返回

query() 默认不返回 metadata,content 会全为空字符串。查询时需加 returnMetadata: "all"

await this.deps.vectorize.query(vector, { topK: k, returnMetadata: "all" });

D1 记忆检索不到

可能原因:type 与实际写入不符

检查写入器实际产生的 type,与 SQL 查询条件是否一致。例如写入器只产生 eventkeyword,但查询条件写的是:

WHERE type IN ('fact', 'profile')

改为实际写入的类型即可:

WHERE type IN ('fact', 'profile', 'event', 'keyword')

wrangler cmd

# ===== Vectorize =====
# 查看向量存储列表
yarn wrangler vectorize list --cwd apps/server
 
# 删除向量存储
yarn wrangler vectorize delete ai-companion-memories --cwd apps/server
 
# 创建向量存储
yarn wrangler vectorize create ai-companion-memories --dimensions 768 --metric cosine --cwd apps/server
 
# 创建 metadata index(需在插入向量前执行,已有向量不会自动生效)
yarn wrangler vectorize create-metadata-index ai-companion-memories --property-name sessionId --type string --cwd apps/server
 
# ===== D1 =====
# 执行数据库迁移(本地)
yarn wrangler d1 execute ai-companion-db --local --file=./src/sql/schema.sql --cwd apps/server
 
# 执行数据库迁移(远程)
yarn wrangler d1 execute ai-companion-db --remote --file=./src/sql/schema.sql --cwd apps/server
 
# 清空 memories 表
yarn wrangler d1 execute ai-companion-db --remote --command="DELETE FROM memories" --cwd apps/server
 
# ===== KV =====
# 列出所有 key
yarn wrangler kv key list --binding=KV --remote --cwd apps/server
 
# 批量删除所有 key
yarn wrangler kv key list --binding=KV --remote --cwd apps/server | \
  jq -r '.[].name' | \
  xargs -I {} yarn wrangler kv key delete --binding=KV --remote {} --cwd apps/server
 
# 删除 namespace 并重建
yarn wrangler kv namespace delete --namespace-id=723da0f6fbb848d198127a089cab5b02 --cwd apps/server
yarn wrangler kv namespace create KV --cwd apps/server
 
# ===== 日志 =====
# 查看实时日志
yarn wrangler tail --format pretty --cwd apps/server
我也是有底线的 🫠