跳转至

配置 Codex

安装或刷新插件

执行:

powercontext setup codex --source oceanbase/powercontext --ref master

该命令会把仓库添加为 Codex marketplace,安装 PowerContext 插件,并创建用户数据目录。重复执行是安全的。 --ref 应与安装 PowerContext 工具时使用的 ref 一致。

配置完成后开启新的 Codex 会话。通过 /hooks 查看 PowerContext UserPromptSubmit Hook,并在收到提示时 授予信任。

理解插件行为

插件通过两条路径访问同一个 Server:

  • Prompt Hook 请求 Runtime 准备一个最终、有界的上下文值,然后独立地把用户提示词采集为 Source 证据;
  • MCP 为 Codex 提供记忆、检索、修订、停用和审计 Memory 的显式工具。

存在 Git remote 时,Memory scope 根据规范化后的 remote 生成;否则根据项目路径生成。在同一项目中开启 的新 Codex 会话会得到相同 scope。只有在 scope 必须独立于这两者时,才设置 POWERCONTEXT_CODEX_SCOPE_ID

Codex 开始分析提示词前,Hook 只调用一次 POST /v1/context/prepare,请求 8000-byte 总预算。它严格校验 powercontext.prepared-context.v1,并原样注入返回内容。Runtime 负责把 Memory 内容标记为不可信历史、保留 精确 citation,并完成最终选择与渲染。显式搜索仍可通过 Client 和 MCP 使用,但不会成为第二次自动召回。

控制提示词采集

默认开启提示词采集。如果当前工作不应被记录,请在启动 Codex 前关闭:

export POWERCONTEXT_CODEX_CAPTURE_PROMPTS=false
codex

采集的提示词会成为 Source 证据。开启采集并不保证自动生成 Memory;后者需要配置 generation model。 显式调用 remember_memory 不需要模型。

仅在测试时,可以让 Hook 等待 Source 处理完成:

export POWERCONTEXT_CODEX_FLUSH_ON_CAPTURE=true

这会给每个提示词增加推理延迟,不适合作为日常交互配置。

连接启用鉴权的本地 Server

从本地 secret manager 加载一个 token,然后启用鉴权并启动 Server:

export POWERCONTEXT_SERVER_AUTH_ENABLED=true
export POWERCONTEXT_SERVER_AUTH_TOKEN="$POWERCONTEXT_LOCAL_TOKEN"
powercontext server run

在包含匹配 Authorization header 的环境中启动 Codex:

export POWERCONTEXT_CODEX_AUTHORIZATION="Bearer $POWERCONTEXT_LOCAL_TOKEN"
codex

修改该变量后需要重启 Codex。插件的 MCP 配置从环境读取这个可选 header,Prompt Hook 读取同一个值。不要把 token 写入 .mcp.json、Server URL 或静态 MCP header。

没有设置该变量或值为空,并且 Server 未启用鉴权时,插件行为与默认状态完全一致。如果 Server 已启用鉴权, 但 header 缺失或错误,Hook 会正常降级并写出 authentication_failed 诊断;MCP tools 不可用,但不会阻塞 Codex 会话。

Server 不可用时,Hook 的恢复和采集会正常降级,不会阻塞 Codex。显式 Memory 工具会报告服务不可用。

正常空结果或召回失败时,Hook 会向 stderr 写一行不含正文的 JSON 诊断。outcome 包括 emptyauthentication_failedversion_mismatchserver_unavailableinvalid_response;事件不会包含 query、 scope、prepared content、citation、response body 或 authorization value。