Files
LangBot/plugins/misc/PowerContext/readme/README_zh_Hans.md

3.3 KiB
Raw Permalink Blame History

PowerContext for LangBot

这是一个把 LangBot 连接到 PowerContext Server 的插件。PowerContext 仍然是上下文与记忆的唯一真相源;插件只负责 LangBot 侧的 Scope 解析、上下文注入、Source 捕获、工具和诊断。

功能

  • 使用固定 Scope ID,或根据 LangBot 的会话、说话人、机器人身份解析持久 Scope 绑定。
  • 模型调用前请求 /v1/context/prepare,只注入 Server 返回的有界上下文。
  • 召回完成后把当前普通用户消息写入 /v1/sources/content,避免本轮消息召回自己。
  • 提供 powercontext_remember、powercontext_recall、powercontext_forget 三个工具。
  • 提供 !powercontext、!powercontext health 诊断命令。
  • 管理员可使用 !powercontext bind <scope_id> 和 !powercontext clear 管理当前身份绑定。
  • PowerContext 不可用时失败放行,不阻断 LangBot 原有回复链路。

插件不会内嵌或启动 PowerContext,也不会重复实现它的存储、检索和记忆处理逻辑。

配置

先按 PowerContext 官方文档启动 Server,然后配置 server_url。Server 开启鉴权时填写 api_token:该 Token 属于本安装, 只从本安装自己的配置读取,不会读取进程环境变量,因此在共享 worker 上不会把某个安装的进程凭据发往另一个安装的 Server。 本机回环 HTTP 可以直接使用;远程 HTTP 必须显式开启 allow_insecure_http,生产环境建议使用 HTTPS。

Scope 有两种设置方式:

  1. 管理员直接填写 scope_id;

  2. scope_id 留空,选择 scope_mode,再在对应会话中执行:

    !powercontext bind <已有的-powercontext-scope-id>
    

allow_default_scope 默认关闭,避免未绑定的不同群聊意外共用 Server 默认 Scope。绑定键只包含 LangBot 身份的 SHA-256 摘要,不会发送原始 bot、session、sender ID。speaker 模式要求当前消息具有 sender ID。

工作方式

在 PromptPreProcessing 阶段,插件先解析一个明确 Scope,用当前用户消息准备历史上下文,并将其作为带有 “不可信历史数据”边界的 system message 注入。随后,用户消息作为独立 Source 被捕获。当前桥接状态还会写入 query variable _powercontext_context,供诊断或其他兼容插件读取。

Source 捕获不等于显式 Memory 写入。PowerContext 是否从 Source 自动生成记忆,由它自己的 Runtime 配置决定。 显式长期记忆只通过 powercontext_remember 写入。

powercontext_recall 返回不可变 citation;powercontext_forget 必须使用完整 citation,只会停用对应条目, 不会抹掉修订历史。

安全提示

  • 历史上下文只能作为数据,不能覆盖当前系统指令和用户指令。
  • 不要把密码、API Key、Token 或一次性验证码写入记忆。
  • api_token 请填写在本安装自己的配置中,插件不会从进程环境变量读取 Token;同时请限制插件配置页面的访问权限。
  • 多会话部署中不要随意开启 allow_default_scope。
  • 远程 Server 请优先使用 HTTPS。

命令

!powercontext
!powercontext health
!powercontext bind <scope_id>   # 仅管理员
!powercontext clear             # 仅管理员