WASM 工具运行在 wasmtime 沙箱中。除 IronClaw 暴露的宿主函数外,网络、文件系统、凭据等能力都必须在Documentation Index
Fetch the complete documentation index at: https://docs.ironclaw.com/llms.txt
Use this file to discover all available pages before exploring further.
capabilities.json 中显式声明。
对于需要强隔离的自定义集成,这是 IronClaw 推荐方案。
工作流程
沙箱机制
Fuel 计量
每条 WASM 指令都会消耗 fuel,耗尽即终止,防止死循环。内存限制
模块使用固定线性内存,超限会 trap 并终止。速率限制
每个工具可配置独立限流:capabilities.json
每个 WASM 工具都需与.wasm 放在同目录,并包含 capabilities.json:
网络白名单
network.allowed_hosts 决定允许访问的域名。未命中白名单的请求会在建立连接前被拒绝。
文件系统访问
默认无主机文件系统权限,filesystem.read/filesystem.write 声明的路径才会挂载进沙箱。
凭据注入
凭据不会进入 WASM 内存。模块发出请求后,由代理在转发时注入 Header。宿主函数
| 函数 | 说明 |
|---|---|
log(level, message) | 写结构化日志 |
now_unix_secs() | 返回当前 Unix 时间戳 |
workspace_read(path) | 读取工作区文档 |
workspace_write(path, content) | 写入工作区文档 |
工具发现与安装
启动时从以下目录发现工具:~/.ironclaw/tools/<workspace>/tools/
<toolname>.wasmcapabilities.json
安全说明
凭据注入是单向的
凭据注入是单向的
凭据仅由代理注入到出站请求,模块无法直接读取密钥存储。
无法派生系统进程
无法派生系统进程
模块不能执行 shell、fork 子进程或加载动态库。
Fuel 防止拒绝服务
Fuel 防止拒绝服务
无限循环会在 fuel 用尽时被强制终止。