虾觅 Xiami · 记忆体 HTTP API

面向任意 Agent 运行时(自研 Bot、LangChain、AutoGen、Dify、n8n、桌面助手等):使用标准 HTTPS + JSON 接入记忆写入、检索、知识库、结构化图谱、RAG 对话。机器可读契约以 OpenAPI(Swagger) 为准,本页为叙述性导读。

生产示例根地址:站点 https://xiami.aiznrc.com, API 前缀 https://xiami.aiznrc.com/api/v1。 若你自托管,请替换为你的公网域名。环境变量 XIAMI_API_BASE 表示站点根(不含 /api/v1),与安装脚本约定一致。

文档受众:开发者与自动化代理

人类开发者

  • API 密钥 创建平台密钥xiami_sk_):一把密钥对应一个虾觅账户,用于服务端、CI;可通过权限限制可见记忆体。
  • 每个记忆体另有记忆体 Tokenxiami_):仅能访问该记忆体数据,适合嵌入单一 Agent。
  • 同一平台密钥操作多个记忆体:调用 /memory/* 时在 body 或 query 传入对应 api_token_id;或先调 GET /third-party/memory/integration-manifest 获取映射表。
  • 控制台创建/支付等敏感操作需浏览器登录 JWT(部分接口不接受平台密钥)。

自动化 / Agent

  1. 设置 XIAMI_API_BASE 为可访问的站点根 URL。
  2. 使用 Bearer(xiami_sk_ 或 JWT)请求 GET …/third-party/memory/integration-manifest,解析 manifest.agents[]
  3. 写入记忆:POST /memory/write默认返回 202,Neo4j 后台写入);JWT/平台密钥需在 body 带 api_token_id;纯 xiami_ Token 通常可省略。
  4. 批量写入:优先 POST /memory/write-batchPOST /third-party/memory/batch-write(≤100 条,默认 202)。
  5. 搜索:推荐 POST /search;关键词可用 queryqsearch_query 等(见下文「字段兼容」)。
  6. 快捷接口:write-by-agentsearch-by-agent,body 填 xiami_agent_id(或别名 agent_id)。

第三方记忆集成 /api/v1/third-party/memory

外部系统用一把平台密钥操作账户内多个记忆体。鉴权:接受账号 JWT 或 xiami_sk_不接受记忆体 xiami_ Bearer(避免与单 Agent 场景混淆)。

方法路径说明
GET /third-party/memory/integration-manifest 返回套餐记忆上限、平台密钥权限、各可见记忆体的 memory_scope_token_id(在 JWT/平台模式下作为 api_token_id 传入)、常用 /memory/* 相对路径与示例。
POST /third-party/memory/write-by-agent xiami_agent_idcontent;默认 ?async=true 返回 202
POST /third-party/memory/batch-write items[](≤100);默认 202,后台 UNWIND 写入。
POST /third-party/memory/search-by-agent xiami_agent_id(或 agent_id)+ 关键词(query/q/search_query 等);等同 POST /search,额外返回 memories[]
POST /third-party/memory/clear Body:xiami_agent_idconfirm: true;可选 include_knowledge_graph
curl -sS "https://xiami.aiznrc.com/api/v1/third-party/memory/integration-manifest" \
  -H "Authorization: Bearer xiami_sk_你的平台密钥"

GET /openclaw/install.sh(安装脚本路径名)

脚本由服务端动态生成。需已安装 bashcurlpython3;Windows 原生环境可使用 GET /openclaw/install.ps1

  • 设置可访问的 XIAMI_API_BASE(公网或 VPN 可达,勿用仅本机回环地址)。
  • 传入平台密钥 xiami_sk_…;脚本会下载 CLI 并执行 install,将凭据写入用户目录(如 ~/.xiami/)。
  • 安装完成后可用 python3 …/xiami_code_cli.py api … 子命令访问与本文一致的 REST。
export XIAMI_API_BASE=https://xiami.aiznrc.com
curl -fsSL "$XIAMI_API_BASE/openclaw/install.sh" | bash -s -- "xiami_sk_你的密钥"

鉴权

除登录、注册、验证码等公开接口外,业务接口在 Header 携带:

Authorization: Bearer <凭证>
类型形式典型用途
记忆体 API Token xiami_(非 xiami_sk_ 单 Agent 长期运行;读写该记忆体范围内记忆、搜索、图谱等。
平台 API 密钥 xiami_sk_ 服务端 / CI;等同账户能力(受密钥权限矩阵约束)。
账号 JWT 登录后的 access_token 浏览器会话、创建记忆体、管理订单与个人资料。

使用 JWT 或平台密钥调用 POST /memory/write 时,body 通常需包含 api_token_id(控制台「记忆体」详情中的 token_id)。使用 xiami_ 时服务端已绑定记忆体,一般无需重复传递。

推荐:多记忆体场景先调 GET /auth/whoami 查看 agents[]memory_scope_token_id

能力矩阵(节选)

前缀均为 https://<你的域名>/api/v1。完整路径与模型见 OpenAPI。

能力方法路径说明摘要
鉴权GET/auth/whoami当前密钥类型与可见记忆体
记忆POST/memory/write写入一条;默认 202?async=false 同步)
记忆POST/memory/write-batch批量写入(≤100,默认 202)
记忆POST/memory/search记忆体检索;关键词字段兼容见「智能搜索」
搜索POST/search记忆体 + 知识图谱统一搜索(推荐)
记忆GET/memory/list分页列表(含 total
记忆POST/memory/clear清空 scope(confirm: true
记忆GET/memory/graph合并 Memory 与结构化 KG;支持 api_token_idxiami_agent_idmax_nodes
记忆POST/memory/timeline时间线筛选
记忆POST/memory/forgetmemory_id 删除
记忆PATCH/memory/update编辑名称、标签、摘要、正文
记忆GET/memory/account-agents账号记忆体列表 + memory_count + Token
记忆GET/PUT/memory/forgetting/settings遗忘机制配置
记忆POST/memory/forgetting/dream梦境巩固,删除低于阈值记忆
搜索POST/search/rerank重排序
知识库GET/POST/PATCH/DELETE/ai/knowledge-base/folders|docs文件夹与文档
同步POST/ai/knowledge-base/sync触发结构化同步;可用 doc_ids 限定范围
同步POST/ai/knowledge-base/sync-text纯文本片段直接写入图谱
AI 对话GET/POST/ai/chats/ai/chats/{id}/send会话与 SSE 流式对话;可选 RAG
统计POST/ai/memory/stats按记忆体统计 Neo4j 规模
用量GET/ai/token-usage/summary对话 Token 用量统计(可选对接账单页)

远程终端 CLI(可选)

部署到公网后,可在任意电脑终端通过固定 URL 下载 xiami_code_cli.py,使用平台密钥完成 install 后调用 api profileapi agentsapi memory-* 等子命令(实际请求发往 $XIAMI_API_BASE/api/v1)。

资源路径说明
安装脚本GET /openclaw/install.shbash 管道安装
CLI 本体GET /openclaw/xiami_code_cli.py保存后长期复用
部署清单GET /api/v1/openclaw/deployment-manifest当前 Bearer 可见的接口与记忆体矩阵(JSON)

完整子命令:python3 xiami_code_cli.py api --help

记忆 API /api/v1/memory

方法路径说明
POST/memory/write默认 202;JWT/平台密钥需 api_token_id
POST/memory/write-batchitems[];默认 202
POST/memory/searchquery/q/search_querylimittop_k
GET/memory/listlimitoffset;响应含 total
POST/memory/clearconfirm: true 清空当前 scope
GET/memory/graph合并视图;字段 graph_source 说明数据来源
POST/memory/timeline时间范围等筛选
POST/memory/forget删除一条:memory_id
PATCH/memory/update编辑 entity_nametagssummary、正文
GET/memory/account-agents记忆体 + Token + memory_count(平台密钥/JWT)
GET/PUT/memory/forgetting/settings遗忘阈值、衰减率、梦境时刻等
POST/memory/forgetting/dream立即梦境巩固

写入时元数据按《智能体长期结构化记忆系统 v1.0》自动补全 memory_classstrengthdecay_rate 等字段。

异步写入(202)

环境变量 XIAMI_MEMORY_WRITE_ASYNC_DEFAULT=true(默认)时,POST /memory/write/memory/write-batch 及第三方 write-by-agentbatch-write 在校验通过后立即返回 HTTP 202,响应含 accepted: truememory_id / memory_ids;Neo4j 落库在后台执行。高并发同步(OpenClaw 等)属正常现象,不代表用户打开网页。

需确认已写入再搜索时:可设 ?async=false(同步 200),或写入后稍候再调 /memory/search

示例:写入记忆

import requests
BASE = "https://xiami.aiznrc.com/api/v1"
TOKEN = "xiami_xxx"
r = requests.post(f"{BASE}/memory/write", json={
    "content": "要记住的内容",
    "memory_type": "default",
    "api_token_id": "你的_token_uuid",
}, headers={"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}, timeout=30)
print(r.json())
curl -sS -X POST "https://xiami.aiznrc.com/api/v1/memory/write" \
  -H "Authorization: Bearer xiami_xxx" \
  -H "Content-Type: application/json" \
  -d '{"content":"要记住的内容","memory_type":"default","api_token_id":"你的_token_uuid"}'

记忆体(智能体)/api/v1/agents

鉴权:须为账号 JWT 或平台密钥 xiami_sk_不可使用记忆体 xiami_。创建后在详情页获取 xiami_ 供运行时调用记忆接口。

方法路径说明
GET/agents分页列表
GET/agents/visible当前用户可见记忆体
POST/agentsmultipart 创建
POST/agents/jsonJSON 创建
POST/agents/delete-preview删除前 Neo4j 规模预估
PATCH/agents/{agent_id}更新元数据
POST/agents/{agent_id}/reset-token重置记忆体 Token
DELETE/agents/{agent_id}删除并级联清理图谱数据

广场相关:/api/v1/agent-plaza/* 见 OpenAPI。

知识库与结构化同步

文档入库后可同步到指定记忆体,抽取实体、关系等写入 Neo4j,供图谱与 RAG 使用。需 JWT 或平台密钥。

  • /ai/knowledge-base/folders/docs:文件夹与文档 CRUD
  • POST /ai/knowledge-base/sync:触发同步;doc_ids 可限定仅同步列出的文档
  • POST /ai/knowledge-base/sync-text:文本抽取为知识图谱;默认 raw_storage: true 另存可检索记忆条目
  • GET /ai/knowledge-base/sync/{task_id}:任务状态与明细
  • /ai/knowledge-summary-model/probe:校验总结模型连通性

AI 对话与 RAG /api/v1/ai

  • GET /ai/modelsGET|POST /ai/chats:模型与会话
  • GET /ai/chats/{chat_id}/messages:历史消息
  • POST /ai/chats/{chat_id}/send:发送消息(SSE 流式,请求体 stream: true,客户端 Accept: text/event-stream);可选 use_rag
  • POST /ai/chats/{chat_id}/memory/quick-save:从对话快速写入记忆
  • POST /ai/memory/stats:记忆体规模统计
  • GET /ai/token-usage/*:用量统计(可选)

公共内容 /api/v1/public

公开预览页与上传接口;上传/保存需平台密钥 xiami_sk_ 或账号 JWT。控制台预览页支持在线编辑(HTML/Markdown)、图片删除/替换、保存与下载。

方法路径说明
GET/public/pages/{owner}/{slug}元数据;含 download_url
GET/public/pages/{owner}/{slug}/renderiframe 渲染 HTML
GET/public/pages/{owner}/{slug}/download下载正文(format=html|markdown|auto,智能体可读)
PUT/public/pages/{owner}/{slug}/content在线编辑保存 JSON
POST/public/pages/{owner}/{slug}/assets/image上传/替换图片
POST/public/pages/{slug}multipart 上传/覆盖

错误与限流

  • 业务错误为 JSON:{"detail": "..."}。请求体字段不合法时返回 HTTP 400(含可读中文说明),请按上文「字段兼容」检查关键词与 xiami_agent_id
  • 常见状态:401 鉴权失败;403 配额/权限;404 记忆体不可见。
  • 记忆写入受套餐记忆条数上限约束;异步 202 仅表示已接受,超额时后台可能丢弃写入。
  • 生产环境建议配置 REDIS_URLXIAMI_LIGHT_BOOT=1;MySQL 与 Neo4j 分机部署。
  • 删除记忆体前建议 POST /agents/delete-preview