参考技能Skill 认证

Skill

Skill 认证

将 Skill credential 放在环境中的 XMEMO_KEY 或支持的 device-login flow 中,绝不放入 public output。

Credential 解析优先级

独立 Skill 运行时按照严格的三级优先级解析 credential。托管的外部密钥始终优先于本地文件,确保在提供了环境密钥时不会将 token 重复写入磁盘。

  • 1. XMEMO_KEY:环境变量或托管密钥库(Doppler、1Password、Vault)。首选方式;绝不会复制到本地 credential 文件中。
  • 2. Meta Muse Secure Vault:在受支持的 Meta Muse 环境中的替代保险库解析。
  • 3. 本地 credential 文件:~/.xmemo/skill-credentials.json(或 $XMEMO_CREDENTIALS_PATH),仅在未设置环境 credential 时作为回退读取。
  • OpenClaw 出站要求:OpenClaw 出站是在 XMEMO_KEY 分支内部处理的传输要求(auth-state.mjs)。如果检测到 OpenClaw 哨兵,将强制要求出站代理可达;这是 XMEMO_KEY 内部的传输验证,而非单独的 credential 来源。
  • 零 token 暴露:命令和 doctor 诊断绝不会打印活动 token 或密钥前缀。
# Preferred: provide credential via environment or secret store
export XMEMO_KEY='<your-xmemo-token>'

# Inspect active credential source and scopes without printing secrets:
node scripts/xmemo-skill.mjs auth status --verify

设备登录与知情明文选择

当不存在托管环境密钥时,交互式设置使用基于浏览器的设备授权。用户在浏览器中批准访问,且浏览器绝不会显示 bearer token 值。

  • 显式明文许可:login 命令需要 --allow-plaintext 以确认将 token 未加密保存在本地机器上的知情许可。
  • 受限文件权限:~/.xmemo/skill-credentials.json 以 0600 POSIX 权限创建(仅所有者可读写)。
  • 安全标准输入导入:使用 auth add --from-stdin --allow-plaintext 通过标准输入导入现有 token,避免命令行参数和 shell 历史记录。
  • 设备授权端点:POST /v1/auth/device/start(启动流程),POST /v1/auth/device/token(轮询与交换),POST /v1/auth/token/validate(验证),POST /v1/auth/token/revoke-self(撤回)。
# Start interactive device login (requires explicit plaintext flag):
node scripts/xmemo-skill.mjs login --allow-plaintext

# Or pipe an existing token securely from standard input:
printf '%s' "$XMEMO_KEY" | node scripts/xmemo-skill.mjs auth add --from-stdin --allow-plaintext

# Verify active session status:
node scripts/xmemo-skill.mjs auth status --verify

临时注册边界

对于无人值守环境或人工拒绝正式登录的情况,Skill 可以注册临时记忆沙盒。临时记忆受到严格限制,仅用于短暂的运行连续性。

  • 仅限无人值守或已拒绝:node scripts/xmemo-skill.mjs register --reason <unattended|declined> --allow-plaintext。
  • 容量上限:限制为最多 100 项。
  • 保留 TTL:14 天不活跃 TTL 和 30 天绝对最长生命周期。
  • 两阶段认领移交:生成一个绑定 URL(bind_url),允许人工操作员认领该临时账户并将其绑定到正式 credential。
  • 认领管理命令:auth claim-status 检查待处理的认领,auth claim-confirm 接受正式 token 移交,auth claim-deny 拒绝绑定。
  • 沙盒限制:临时账户无法捕获重启快照(restart-snapshot)或访问知识库(recall-context --include_knowledge true)。
# Register temporary sandbox:
node scripts/xmemo-skill.mjs register --reason unattended --allow-plaintext

# Inspect and manage claim binding:
node scripts/xmemo-skill.mjs auth claim-status --allow-plaintext
node scripts/xmemo-skill.mjs auth claim-confirm --allow-plaintext
node scripts/xmemo-skill.mjs auth claim-deny --allow-plaintext

注销与适当提供商的撤回

注销会取消本地 credential 文件的链接,并在服务器上自行撤回活动会话 token。外部密钥提供商必须在其自身环境中进行管理。

  • 本地会话注销:node scripts/xmemo-skill.mjs logout 移除 ~/.xmemo/skill-credentials.json 并调用 /v1/auth/token/revoke-self。
  • 外部环境 token:当 XMEMO_KEY 提供活动 credential 时,注销会保留该 token,除非显式传递了 --revoke-environment-token。
  • 本地移除不等于全局撤回:移除本地 skill 目录或在本地注销不会撤回存储在云密钥保险库、CI/CD runner 或其他机器中的 token。
  • 外部清理:在 shell 中取消设置 XMEMO_KEY 或从密钥管理器中删除密钥以永久取消访问授权。
# Log out and revoke local credential file:
node scripts/xmemo-skill.mjs logout

# Log out and revoke external environment token remotely:
node scripts/xmemo-skill.mjs logout --revoke-environment-token

Skill 认证

Skill 是不直接挂载托管 MCP 服务器的 Agent 的指令与命令通道。

打开 XMemo Skills

来源: XMemo Skills