aios-apps-invoke-cli
aios-apps-invoke-cli
aios-apps-invoke-cli 是 AIOS 应用调用入口包。它同时包含:
- CLI client:
servercommand/binding等一次性命令。 - 常驻 invoke service:
serve命令启动的本地 socket 服务。
正常调用链路是:
OpenClaw/agent -> aios-apps-invoke-cli client -> app-invoke socket -> aios-apps-invoke-cli serve -> management web / provider SDK -> 业务系统
CLI client 自身不直接访问业务系统,也不通过 MQTT 发起 app invoke 请求。AIOS Docker 容器中,OpenClaw 仍以默认 agent 身份调用 CLI;serve 由 apps supervisor 以 aios-svc 身份常驻运行,因此实际访问局域网业务系统的是 service 进程。
安装
npm install -g aios-apps-invoke-cli也可以直接用 npx:
npx aios-apps-invoke-cli --help运行模型
同一个 npm 包里包含 client 和 service,不需要安装两个包。
aios-apps-invoke-cli servercommand ...:作为 client 发送业务命令请求。aios-apps-invoke-cli binding ...:作为 client 发送系统绑定请求。aios-apps-invoke-cli serve:启动当前主路径使用的 app invoke socket service。aios-apps-invoke-cli service-status:输出 socket service 的状态结构。aios-apps-invoke-cli status:输出 client 配置视图。
环境变量
Client 命令不读取通讯配置环境变量。它固定连接内部 socket:
/var/aios/run/app-invoke.sock
Socket service 使用:
AIOS_WEB_BASE_URL:可选,默认http://127.0.0.1:3030,用于读取业务系统配置、解析外部 cookie、记录调用日志。
用法
aios-apps-invoke-cli servercommand <应用名> <命令名> <请求方法> [jsonBody] -p <provider> -s <SessionId>
aios-apps-invoke-cli binding <应用名> <命令名> <请求方法> <jsonBody> -p <provider> -s <SessionId>
aios-apps-invoke-cli serve
aios-apps-invoke-cli service-status
aios-apps-invoke-cli status参数说明:
provider必填,当前可执行 provider 为hzg。-s传入当前 OpenClaw 会话的SessionId。- 长参数使用
--provider、--sessionId。 servercommand的请求方法只支持GET和POST。jsonBody必须是合法 JSON。
示例
aios-apps-invoke-cli servercommand demo getUser POST "{\"id\":\"1001\"}" -p hzg -s thread-1
aios-apps-invoke-cli binding OASystem GetTableDataWithOffset POST "{\"columns\":[],\"table-name\":\"物品表\",\"page-name\":\"物品_库存\"}" -p hzg -s thread-2
Binding 支持范围
当前实际可执行的 binding 命令:
GetTableDataWithOffsetGetComboBindingOptionsCalcBindingDataSource
CLI 会把 TableBinding、CandidatesBinding、DataSourceBinding 等别名规范化为上述命令。GetMetadata 和 GetMetadata2 只作为内部辅助能力存在,service 会拒绝直接调用。
Socket 协议
Client 会向内部固定 socket /var/aios/run/app-invoke.sock 写入一行 JSON 请求,service 返回一行 JSON 响应。
请求体包含:
traceIdcommandprovidersessionIdparameterstimestamp
响应体格式:
{
"traceId": "string",
"code": 0,
"message": "OK",
"data": {}
}当 code !== 0 时,CLI 以非零退出码结束,并把错误信息输出到 stderr。
AIOS Docker 容器
AIOS Docker 容器中 apps supervisor 会以 aios-svc 启动:
aios-apps-invoke-cli serveOpenClaw/agent 调用 CLI 时仍使用默认 agent 身份。Docker iptables 的内网限制按 agent UID 生效;invoke service 以 aios-svc 访问业务系统,不需要把 agent 的局域网限制放开。