# Paged Context Protocol

在应用、会话与模型之间保存、组织和检索长期上下文的开放协议及 Rust 实现。

## Metadata

- HTML: https://glenzli.com/projects/paged-context-protocol/
- Markdown: https://glenzli.com/projects/paged-context-protocol.md
- Collection: Projects
- Language: zh-CN
- Published: 2026-08-14
- Updated: 2026-08-27
- Status: active
- Tags: llm-context, protocol, pages, revisions, provenance, memory

## Content

Paged Context Protocol（PCP）用于在应用、会话和模型之间保存、组织和检索长期上下文。它以稳定 Page、不可变 Revision、Scope、Relation 和 Provenance 表达内容，再通过有界查询把需要的部分交给当前任务。

PCP 可以作为单个应用的上下文层，也可以让多个租户在同一个 Identity 下贡献不同 Scope。上层产品仍决定这些内容何时记录、怎样展示，以及哪些结果进入当前上下文。

  ![长期内容经过身份、版本、来源与有界查询进入当前任务](/images/projects/paged-context-protocol-banner.webp)

## 协议对象

    **Page 与 Revision**
    Page 是可以长期寻址的记录；Revision 是不可变内容快照。原始记录通常 sealed，维护型记录可以 revisioned。

    **Identity、Tenant 与 Scope**
    一个 Store/Runtime 服务一个持久 Identity。租户只能访问获授权的 Scope，请求身份由服务端注入。

    **Relation 与 Provenance**
    Relation 连接稳定 Page，关系依据与派生来源引用精确 Revision。文本相似或时间相邻不会自动形成领域关系。

    **Search、Read 与 Projection**
    检索先返回候选，再按需读取 Payload、Summary、Sources、Relations 或 History。Host 决定实际使用哪些投影。

## 当前实现

仓库同时维护协议和 Rust 实现，包括 SQLite Store、embedded 与 remote client、Unix socket RPC、Runtime、CLI、MCP、Console、维护协调器和只读设施观测。

  ![PCP Console 使用合成数据展示本地 Store 概览](/images/projects/paged-context-protocol-console.webp)
  截图使用合成数据，不包含真实 Page、Scope 或客户端身份。

当前实现支持精确、文本、图、时间与自动检索，Runtime 侧的语义搜索和 intent matching，以及 Summary、Topic、Validity、Relation、Provenance、archive/restore、无损 packing 和 retention 规划。普通租户通过 `PcpTenantApi` 接入；Runtime 维护器与本机管理工具使用权限更高的 `PcpApi`。

  ![PCP Console 的 Page 列表与来源信息](/images/projects/paged-context-protocol-pages.webp)

## 状态与边界

当前版本是 `v0.8.0-draft`，协议、接口和 Store 格式仍可能调整。v0.8 不兼容 v0.7 Store，迁移需要新建 Store，并从租户保留的原始内容重新导入。

外部聊天、媒体与领域对象仍由上层应用保存和展示，PCP 记录其长期上下文与来源引用。语义查询需要显式配置 Provider；缺少 Provider 时会返回不可用。
