上下文服务(Context0)快速入门

更新时间:
复制 MD 格式

本文介绍如何开通上下文服务(Context0)、获取连接地址与 API Key,并通过 CLI 插件、API 直连或知识同步三种方式完成首次接入。

适用范围

条件

说明

阿里云账号

用于登录阿里云 PolarDB-X 控制台

PolarDB-X 实例

已购买 PolarDB-X 标准版或企业版实例

智能搜索(Search引擎)实例

上下文服务依赖 PolarDB-X Search引擎(兼容 OpenSearch)作为向量与全文存储(需同地域)

Node.js ≥ 22

仅路径 A(CLI 插件接入)需要

步骤一:开通上下文服务

上下文服务是 PolarDB-X 的 AI 增强能力之一,需在控制台手动开通。

1. 进入上下文服务页面

  1. 登录 阿里云 PolarDB-X 控制台,在实例列表中点击目标 PolarDB-X 实例名称。

  2. 在左侧导航栏展开 AI能力,点击 上下文服务。

2. 创建上下文服务实例

  1. 在上下文服务页面,点击右上角 创建上下文服务。

  2. 在创建面板中选择一个同地域已购买的智能搜索(Search引擎)实例作为依赖向量存储。

  3. 确认后单击右下角的创建上下文服务按钮。

  4. 等待实例状态从 创建中 变为 运行中 即开通完成。

步骤二:获取连接地址与凭证

上下文服务实例创建完成后,进入实例详情页获取连接信息和 API Key。

连接信息

点击 基本信息 页签,连接信息 区域展示以下端点:

地址类型

主机名格式

端口

用途

内网地址(服务)

pxt-<实例ID>-s.polarxcontextdb.rds.aliyuncs.com

4040

Agent / SDK / API 直连数据面接口(/v1/*)

公网地址(服务)

同上(开通后分配)

自定义

从公网调用数据面接口

Dashboard 内网地址

pxt-<实例ID>-d.polarxcontextdb.rds.aliyuncs.com

8080

浏览器访问 Context0 可视化控制台

Dashboard 公网地址

同上(开通后分配)

自定义

从公网访问 Context0 控制台

说明

地址后缀说明:主机名中 -s 表示 Service(数据面),-d 表示 Dashboard(管理面),两者是不同端点,切勿混用。

公网访问:内网地址仅 VPC 内可达。若需从公网访问,在对应行点击 立即开通 即可分配公网地址。

后续 API 调用中 $HOST 使用的即为服务访问地址(内网或公网),格式示例:

http://pxt-xxxx-s.polarxcontextdb.rds.aliyuncs.com:4040

配置与管理(Admin Key / Owner Key)

点击 配置与管理 页签,表格中展示当前实例的关键凭证:

字段

示例值

说明

Context0逻辑实例名

pxt-xxxx

上下文服务实例标识

Admin Key

ctx-admin-****

平台级管理凭证

Owner Key

ctx_G-****

工作空间级业务凭证

依赖的 PolarDB-X 实例名

pxc-xxxx

底层关系存储

依赖的 PolarDB-X Search 实例名

pxs-xxxx

底层向量/全文存储

每个 Key 右侧提供显示和复制按钮,点击即可获取完整凭证。

Admin Key 与 Owner Key 对比

维度

Admin Key

Owner Key

级别

平台级(实例唯一)

租户级(工作空间级)

绑定关系

绑定整个上下文服务实例

与单一工作空间 1:1 绑定

主要用途

  • 创建/删除工作空间

  • 签发和吊销 Owner Key

  • 该工作空间内数据面业务调用(写入记忆、检索、装配上下文)

  • 管理成员、签发 USER Key

数据面调用

不可用于 /v1/* 数据面接口

直接作为 X-API-Key 调用数据面接口

唯一性

每个上下文服务实例仅一个

每个工作空间各有一个,可通过 Admin Key 签发多个

警告

安全提示:Admin Key 权限极高,请妥善保管,仅在创建工作空间等管理操作时使用。日常 Agent 接入应使用 Owner Key 或由 Owner 签发的 USER Key。

Key 类型总览

类型

权限范围

典型使用者

ADMIN

平台级:创建/删除 Workspace、签发/吊销 OWNER Key

平台管理员

OWNER

单一工作空间全权限:数据面调用、管理成员、签发 USER Key

团队负责人

USER

绑定单一成员,仅访问自身记忆/会话

终端用户的 Agent

  • 开通服务后在配置与管理中拿到的是 Admin Key 和首个 Owner Key。

  • Owner Key 可为每个成员签发 USER Key,分发给 Agent 使用。

  • 一般 Agent 接入使用USER Key(权限最小化原则)。

登录 Context0 控制台(Dashboard)

使用浏览器打开Dashboard 地址(VPC 内使用内网地址,公网已开通则使用公网地址):

http://pxt-xxxx-d.polarxcontextdb.rds.aliyuncs.com:8080

登录后可进行:

  • 工作空间管理(创建/编辑工作空间、分配成员)

  • 记忆与知识浏览(查看、搜索、删除记忆条目)

  • 成员与权限管理

  • 用量监控与审计日志

  • Feature Flag 管理(功能开关的启用/禁用与灰度发布)

  • Provider 配置(Embedding / LLM / Rerank 模型提供商管理)

  • GDPR 合规操作(数据擦除与导出)

  • 监控面板(Prometheus 指标、实时运维看板)

步骤三:选择接入方式

路径

适用场景

是否需要写代码

A:CLI 插件

Qoder / Claude Code / Codex 等 AI 编程工具

否

B:API 直连

自研 Agent、业务系统集成

是

C:知识同步

钉钉/飞书文档批量导入知识库

否

路径 A:CLI 插件接入

ctxdb0 是 Context0 的接入层插件(Hooks + CLI + 静态 Skill)。安装后 AI 编程工具在后台自动沉淀上下文,并可通过 CLI 主动读写记忆、检索知识库。

1. 安装

npm install -g @polardbx/ctxdb0

2. 配置

先建立连接,再安装到目标 AI 工具:

说明

CTXDB0_API_KEY为控制台的Owner Key,也可以使用Owner Key分配的User Key。

printf '%s' "$CTXDB0_API_KEY" | ctxdb0 connect \
  --profile default \
  --endpoint http://<your-endpoint> \
  --user-id <终端用户标识> \
  --api-key-stdin \
  --json

ctxdb0 attach --host claude --json
ctxdb0 doctor --host claude --json
说明

user-id 建议:建议始终在 connect 时提供 --user-id。未提供时,Prompt Hook 会跳过自动 memory recall,避免 OWNER 凭据意外扩大召回范围;显式 CLI 操作不受影响。

--host 取值:

AI 工具

--host 取值

安装位置

Claude Code

claude

~/.claude/settings.json + ~/.claude/skills/ctxdb0-context

Qoder

qoder

~/.qoder/settings.json + ~/.qoder/skills/ctxdb0-context

QoderWork

qoderwork

~/.qoderwork/settings.json + 静态 Skill(自动回合沉淀为降级模式,CLI 与静态 Skill 可用)

Codex

codex

Codex plugin marketplace(安装后需在 /hooks 审阅并信任 Hook)

Hermes

hermes

~/.hermes/config.yaml + 静态 Skill(首次安装后需显式接受 allowlist)

说明

ctxdb0 不包含 stdio MCP Server,不支持以 MCP 协议接入。后端原生 MCP 是 Context0 的独立能力,需按后端 MCP 设计文档单独配置,与本插件无关。

3. 验证

ctxdb0 doctor --host claude --json

doctor 同时检查连接 profile 与 API 可达性、Host 安装状态、受管资产完整性,全部通过即接入成功。

4. 工作原理

插件由三部分组成:

  • 生命周期 Hooks(自动):会话开始时注入历史上下文;每个有效完成回合自动提交至后端,异步提炼长期记忆。

  • 显式 CLI(主动):Agent 按需调用 ctxdb0 memory / knowledge / sessions / skills 等命令读写记忆、检索知识库。

  • 静态 Skill(指导):随插件安装 ctxdb0-context Skill,Agent 根据用户自然语言自动选择合适的 CLI 命令。

5. 命令速查

所有命令均支持 --json,Agent 调用时应始终携带。

# 连接与诊断
ctxdb0 connect --profile <name> --endpoint <url> --user-id <id> --api-key-stdin --json
ctxdb0 setup --host <host> --endpoint <url> --user-id <id> --api-key-stdin --json
ctxdb0 attach  --host <host> --json
ctxdb0 doctor  --host <host> --json
ctxdb0 config show --json
ctxdb0 refresh --host <host> --json

# 记忆
printf '%s' '项目选用 TypeScript + Prisma' | ctxdb0 memory remember --stdin --json
ctxdb0 memory recall '技术栈选型' --limit 5 --json
ctxdb0 memory browse --offset 0 --limit 20 --json
ctxdb0 memory show <memory-id> --json
printf '%s' '替换后的内容' | ctxdb0 memory revise <memory-id> --stdin --json
ctxdb0 memory forget <memory-id> --confirm-id <memory-id> --json

# 知识库
ctxdb0 knowledge sources --json
ctxdb0 knowledge sources create --name <name> --description '<描述>' --json
ctxdb0 knowledge query '灰度发布要求' --source <source> --json
ctxdb0 knowledge documents --source <source> --json
ctxdb0 knowledge documents show <document-id> --source <source> --json
ctxdb0 knowledge import --source <source> --file ./docs/adr.md --json

# 会话与托管 Skill
ctxdb0 sessions browse --page 0 --limit 20 --json
ctxdb0 sessions restore <session-id> --json
ctxdb0 skills search 'incident response' --json
ctxdb0 skills fetch <skill-id> --json

# 迁移与清理
ctxdb0 migrate --plan --json
ctxdb0 migrate --apply --confirm <confirmation-token> --json
ctxdb0 purge --plan --json
ctxdb0 purge --confirm <confirmation-token> --json

# 卸载
ctxdb0 detach --host <host> --json

6. 配置项

connect 将非敏感配置写入 ~/.ctxdb0/plugin/config.json,API Key 单独写入权限为 0600 的 credentials.json。行为配置默认值:

字段

默认值

说明

recall_mode

intent

Prompt Hook 记忆召回策略:manual(不自动召回)/ intent(用户明显引用历史时召回)/ always(每轮均召回)

startup_budget

1200

会话启动上下文注入的 token 预算

recall_budget

600

Prompt 记忆召回的 token 预算

prompt_knowledge_recall.enabled

false

是否在 Prompt 阶段自动查询知识库;开启时须固化知识源 ID 范围

prompt_knowledge_recall.source_ids

[]

开启时限定查询的知识源 ID 列表

prompt_knowledge_recall.scope_origin

"explicit"

范围来源标记(explicit 或 all-accessible)

prompt_knowledge_recall.scope_captured_at

null

--all-accessible 模式下快照时间戳

prompt_knowledge_recall.limit

4

每次 Prompt-KB 召回的最大文档片段数

session_batch_enabled

false

是否改为 Session 批处理模式(逐轮保存原始消息,会话结束统一提炼)

debug

false

调试开关

行为配置通过 CLI 修改:

ctxdb0 config set recall-mode intent --json
ctxdb0 config set session-batch off --json
ctxdb0 config set prompt-knowledge-recall off --json

# 开启 Prompt-KB 召回(指定知识源名称)
ctxdb0 config set prompt-knowledge-recall on --source <name> --json

# 使用当前所有可访问知识源(快照固化到配置)
ctxdb0 config set prompt-knowledge-recall on --all-accessible --json
说明

--source(可重复)与 --all-accessible 互斥。空范围、名称歧义、不存在、无权限或超过 100 个知识源都会失败关闭。

项目级收紧:在项目根目录放 .ctxdb0.json,只能收紧全局配置(降低召回模式、关闭 session batch、关闭 Prompt-KB 召回),不能选择 profile、endpoint 或放宽行为,也不允许包含任何密钥字段。

路径 B:API 直连

准备工作

所有请求携带 X-API-Key 头。先设置环境变量:

export API_KEY="<YOUR_API_KEY>"
export HOST="http://<your-endpoint>"

鉴权支持三种等价头格式:

-H "X-API-Key: $API_KEY"              # 推荐
-H "Authorization: Token $API_KEY"
-H "Authorization: Bearer $API_KEY"

1. 验证连通(whoami)

curl "$HOST/v1/auth/whoami" \
  -H "X-API-Key: $API_KEY"

响应:

{
  "code": 0,
  "msg": "ok",
  "data": {
    "authenticated": true,
    "workspace_id": 1,
    "member_id": 1,
    "key_type": "USER",
    "bound_user_id": "user_001"
  }
}

data.authenticated 为 true 即连通。

2. 写入对话(ingest)

把对话写入会话,服务端异步蒸馏出记忆:

curl -X POST "$HOST/v1/context/ingest" \
  -H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
  -d '{
    "session_id": "sess_789",
    "user_id": "user_001",
    "agent_id": "my-agent",
    "messages": [
      {"role": "user", "content": "我想用 Docker 部署应用"},
      {"role": "assistant", "content": "可以用 Docker Compose 一键起栈"}
    ]
  }'

响应:

{
  "code": 0,
  "data": {
    "session_id": "sess_789",
    "session_internal_id": 1234,
    "message_ids": [{"id": 1001, "seq": 1}, {"id": 1002, "seq": 2}],
    "event_id": 99001
  }
}

3. 装配上下文(assemble)

按 query 召回相关记忆和知识,在 token_budget 预算内精选,输出可直接拼进 system prompt 的 prompt_blocks:

curl -X POST "$HOST/v1/context/assemble" \
  -H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
  -d '{
    "session_id": "sess_789",
    "user_id": "user_001",
    "query": "如何部署应用?",
    "token_budget": 4000,
    "recall": {"top_k": 8}
  }'

响应(节选):

{
  "code": 0,
  "data": {
    "prompt_blocks": [
      {"role": "system", "tag": "user_profile", "content": "用户偏好 Docker 部署", "tokens": 20, "sources": []}
    ],
    "token_used": 255,
    "token_budget": 4000,
    "trace_id": "550e8400-..."
  }
}
说明

使用 USER Key 时,user_id 必须与 Key 绑定的 bound_user_id 一致,否则返回 403。Owner Key 无此限制。

4. 搜索记忆(search)

按语义检索长期记忆(向量 + BM25 融合):

响应(裸 JSON 数组):

[
  {"id": "mem_123", "memory": "项目选用 TypeScript + Prisma", "score": 0.92, "user_id": "user_001"},
  {"id": "mem_124", "memory": "鉴权方案选 NextAuth", "score": 0.85, "user_id": "user_001"}
]

更多接口见 使用指南。

路径 C:知识同步(钉钉 / 飞书)

ctxdb0-sync 将钉钉知识库或飞书云文档批量同步进 Context0 知识库,支持增量更新与去重。

# 安装
npm install -g @polardbx/ctxdb0-sync

# 同步飞书知识空间到知识库 ID=1
ctxdb0-sync run \
  --provider feishu \
  --space-id <飞书空间ID> \
  --kb-id 1 \
  --api-key <YOUR_API_KEY> \
  --base-url http://<your-endpoint>

# 同步钉钉知识库(预认证 MCP URL,无需单独配置 appKey/appSecret)
ctxdb0-sync run \
  --provider dingtalk \
  --workspace-id <钉钉知识库ID> \
  --endpoint "https://mcp-gw.dingtalk.com/server/XXXX?key=your_key" \
  --kb-id 1 \
  --api-key <YOUR_API_KEY> \
  --base-url http://<your-endpoint>
说明

钉钉 MCP endpoint 获取:钉钉 MCP 广场 → 企业管理员登录 → 搜索「钉钉文档」→ 获取 MCP Server 服务配置 → 复制 URL。该 URL 已包含认证信息。

支持的数据源:

Provider

--provider

凭证

飞书云文档

feishu

FEISHU_APP_ID / FEISHU_APP_SECRET

钉钉知识库

dingtalk

预认证 MCP URL(endpoint 含 ?key=);或裸 endpoint + DINGTALK_APP_KEY / DINGTALK_APP_SECRET

本地目录

local

无(--path 指定目录)

同步基于内容哈希做增量,未变更的文档自动跳过。加 --dry-run 可预览变更而不实际写入。

下一步

使用指南:记忆、知识库、上下文装配、记忆晋升等详细用法。

常见问题

  • ctxdb0 doctor 检查失败:确认 connect 时的 endpoint 与 API Key 是否正确。

  • whoami 返回 authenticated: false:Key 无效或已吊销,在管控台重新签发。

  • 记忆未出现:插件默认逐回合提交后端异步提炼,稍候片刻;如需手动写入,使用 ctxdb0 memory remember。