一、运行流程说明
- 1. 调用任何接口操作都先检查当前OpenClaw环境中是否已配置环境变量PRANASKILLSECRETKEY与PRANASKILLPUBLICKEY:
- 2. 调用接口
GET /api/v1/api-keys,获取PRANASKILLSECRETKEY与PRANASKILLPUBLICKEY对应的密钥值。
接口调用命令:
CODEBLOCK0
接口正常响应示例:
CODEBLOCK1
- 3. 将接口返回的密钥值对应配置到OpenClaw环境变量:
- - 接口返回的secretkey → 环境变量PRANASKILLSECRETKEY;
- - 接口返回的publickey → 环境变量PRANASKILLPUBLICKEY。
补充说明(OpenClaw环境变量配置规范):
需通过OpenClaw专属配置命令设置环境变量,确保配置全局生效,具体命令如下(替换命令中"sk..."、"pk..."为接口返回的实际密钥值):
CODEBLOCK2
- 4. 环境变量配置校验:检查PRANASKILLSECRETKEY与PRANASKILLPUBLICKEY是否已成功设置:
- - 若未检测到任一环境变量,提示"环境变量不存在,需要设置环境变量才能继续流程",并终止整个流程;
- 5. 脚本执行:根据本机已安装的客户端选择运行方式,默认优先使用 Node.js;若未安装 Node.js 或无法使用时再选用 Python 3。
Node 依赖(包根目录执行 npm install yaml 安装 yaml 解析库;):
CODEBLOCK3
安装完成后执行(Node 20.10+,按需将本目录作为 ESM 解析 import):
CODEBLOCK4
Python 脚本 pip 依赖(用于解析 SKILL.md 的 YAML frontmatter):
CODEBLOCK5
安装完成后执行: INLINECODE5
封装与会话 thread_id: 除首轮或明示新会话外,应在请求中带上上一个响应的 data.thread_id。薄客户端会写入状态文件(见上 Prana 节)并提示 THREAD_ID;OpenClaw 多轮独立进程时优先依赖状态文件。--new-session(-n) 会清除状态且本次 JSON 省略 thread_id。
运行与结果展示约定
集成方在运行本封装技能时:对 /api/claw/agent-run 与 /api/claw/agent-result 返回的响应体,请从 data.content 取出内容交给最终用户:若为链接(URL 字符串),将完整链接直接发给用户;若为普通文本,将原文发给用户。不要对业务结果做额外摘要、改写或拼接。无 data.content(例如需付费引导、 running、错误 envelope)时,可将整段 JSON 交给用户或按产品规则提示。
薄客户端优先在标准输出打印 data.content(存在且非 null 时);否则打印完整 JSON 便于排障。
鉴权与 agent-run每次 POST /api/claw/agent-run 前,薄客户端先检查环境变量是否已有完整 PRANA_SKILL_PUBLIC_KEY + PRANA_SKILL_SECRET_KEY(或 PRANA_SKILL_API_KEY);有则直接带 x-api-key 调用,不再请求 GET /api/v1/api-keys;无则再 GET 获取(或生成)密钥对并注入进程环境。
长任务与网络异常两脚本行为一致——在上述凭证就绪后请求 POST /api/claw/agent-run;若返回的是需要付费,直接返回,等待付费成功;对 agent-run 的重试前仍应先确认环境变量中密钥仍完整,避免重复 GET;若接口超时、连接失败、网关 / 服务端错误(5xx、408、504),或 running 但响应非合法 JSON,会改查 POST /api/claw/agent-result。首次查询前会等待 120 秒,之后若 data.status 仍为 running,则每隔 120 秒再查一次,直至结束或达上限(默认 20 次)。可用 PRANA_AGENT_RESULT_POLL_INTERVAL_SEC、PRANA_AGENT_RESULT_POLL_MAX_ATTEMPTS 调整。
二、获取Prana历史支付记录
用户获取可在浏览器中打开的 历史支付记录(技能购买记录) 页面链接: https://claw-uat.ebonex.io/api/claw/skill-purchase-history-url。须先完成 第一节 中的密钥配置,使 PRANA_SKILL_PUBLIC_KEY 与 PRANA_SKILL_SECRET_KEY 均可用。
- 1. 前置校验:
- - 若任一环境变量不存在:提示「环境变量不存在,需要设置环境变量才能继续流程」,并终止本流程;
- 2. 构造请求头
x-api-key:将公钥与私钥按 公钥:私钥 顺序拼接(中间为英文冒号 :),作为 HTTP 头 x-api-key 的值:
INLINECODE35 = PRANA_SKILL_PUBLIC_KEY + : + INLINECODE38
示例(仅作格式说明):若 PRANA_SKILL_PUBLIC_KEY=pk_abc、PRANA_SKILL_SECRET_KEY=sk_xyz,则:
INLINECODE41
- 3. 调用接口
GET /api/claw/skill-purchase-history-url。
- - 成功时:从响应体
data.url 取出链接。不要把返回的完整链接写进日志;把完整链接直接发给用户即可。
接口调用命令:
CODEBLOCK6
接口正常响应示例:
CODEBLOCK7
一、运行流程说明
- 1. 调用任何接口操作都先检查当前OpenClaw环境中是否已配置环境变量PRANASKILLSECRETKEY与PRANASKILLPUBLICKEY:
- 2. 调用接口GET /api/v1/api-keys,获取PRANASKILLSECRETKEY与PRANASKILLPUBLICKEY对应的密钥值。
接口调用命令:
bash
curl -sS https://claw-uat.ebonex.io/api/v1/api-keys
接口正常响应示例:
json
{
code: 200,
message: success,
data: {
api_key: {
publickey: pk...,
secretkey: sk...
}
}
}
- 3. 将接口返回的密钥值对应配置到OpenClaw环境变量:
- - 接口返回的secretkey → 环境变量PRANASKILLSECRETKEY;
- - 接口返回的publickey → 环境变量PRANASKILLPUBLICKEY。
补充说明(OpenClaw环境变量配置规范):
需通过OpenClaw专属配置命令设置环境变量,确保配置全局生效,具体命令如下(替换命令中sk...、pk...为接口返回的实际密钥值):
bash
openclaw config set env.PRANASKILLSECRETKEY sk...
openclaw config set env.PRANASKILLPUBLICKEY pk...
- 4. 环境变量配置校验:检查PRANASKILLSECRETKEY与PRANASKILLPUBLICKEY是否已成功设置:
- - 若未检测到任一环境变量,提示环境变量不存在,需要设置环境变量才能继续流程,并终止整个流程;
- 5. 脚本执行:根据本机已安装的客户端选择运行方式,默认优先使用 Node.js;若未安装 Node.js 或无法使用时再选用 Python 3。
Node 依赖(包根目录执行 npm install yaml 安装 yaml 解析库;):
bash
npm install yaml
安装完成后执行(Node 20.10+,按需将本目录作为 ESM 解析 import):
bash
NODEOPTIONS=--experimental-default-type=module node scripts/pranaskillclient.js -m … [-t threadid] [-n]
Python 脚本 pip 依赖(用于解析 SKILL.md 的 YAML frontmatter):
bash
pip install pyyaml
安装完成后执行:python3 scripts/pranaskillclient.py -m … [-t thread_id] [-n]
封装与会话 threadid: 除首轮或明示新会话外,应在请求中带上上一个响应的 data.threadid。薄客户端会写入状态文件(见上 Prana 节)并提示 THREADID;OpenClaw 多轮独立进程时优先依赖状态文件。--new-session(-n) 会清除状态且本次 JSON 省略 threadid。
运行与结果展示约定
集成方在运行本封装技能时:对 /api/claw/agent-run 与 /api/claw/agent-result 返回的响应体,请从 data.content 取出内容交给最终用户:若为链接(URL 字符串),将完整链接直接发给用户;若为普通文本,将原文发给用户。不要对业务结果做额外摘要、改写或拼接。无 data.content(例如需付费引导、 running、错误 envelope)时,可将整段 JSON 交给用户或按产品规则提示。
薄客户端优先在标准输出打印 data.content(存在且非 null 时);否则打印完整 JSON 便于排障。
鉴权与 agent-run每次 POST /api/claw/agent-run 前,薄客户端先检查环境变量是否已有完整 PRANASKILLPUBLICKEY + PRANASKILLSECRETKEY(或 PRANASKILLAPI_KEY);有则直接带 x-api-key 调用,不再请求 GET /api/v1/api-keys;无则再 GET 获取(或生成)密钥对并注入进程环境。
长任务与网络异常两脚本行为一致——在上述凭证就绪后请求 POST /api/claw/agent-run;若返回的是需要付费,直接返回,等待付费成功;对 agent-run 的重试前仍应先确认环境变量中密钥仍完整,避免重复 GET;若接口超时、连接失败、网关 / 服务端错误(5xx、408、504),或 running 但响应非合法 JSON,会改查 POST /api/claw/agent-result。首次查询前会等待 120 秒,之后若 data.status 仍为 running,则每隔 120 秒再查一次,直至结束或达上限(默认 20 次)。可用 PRANAAGENTRESULTPOLLINTERVALSEC、PRANAAGENTRESULTPOLLMAXATTEMPTS 调整。
二、获取Prana历史支付记录
用户获取可在浏览器中打开的 历史支付记录(技能购买记录) 页面链接: https://claw-uat.ebonex.io/api/claw/skill-purchase-history-url。须先完成 第一节 中的密钥配置,使 PRANASKILLPUBLICKEY 与 PRANASKILLSECRETKEY 均可用。
- 1. 前置校验:
- - 若任一环境变量不存在:提示「环境变量不存在,需要设置环境变量才能继续流程」,并终止本流程;
- 2. 构造请求头 x-api-key:将公钥与私钥按 公钥:私钥 顺序拼接(中间为英文冒号 :),作为 HTTP 头 x-api-key 的值:
x-api-key = PRANASKILLPUBLICKEY + : + PRANASKILLSECRETKEY
示例(仅作格式说明):若 PRANASKILLPUBLICKEY=pkabc、PRANASKILLSECRETKEY=skxyz,则:
x-api-key: pkabc:skxyz
- 3. 调用接口GET /api/claw/skill-purchase-history-url。
- - 成功时:从响应体 data.url 取出链接。不要把返回的完整链接写进日志;把完整链接直接发给用户即可。
接口调用命令:
bash
curl -sS -H x-api-key: pk...:sk... https://claw-uat.ebonex.io/api/claw/skill-purchase-history-url
接口正常响应示例:
json
{
code: 200,
message: success,
data: {
url: https://prana.chat/skill-purchase-history?pay_token=xxxxxxx
}
}