openclaw不原生支持terraform或pulumi,需通过shell skill调用cli、process spawn启动子进程、openobserve provider反向联动及gitops webhook桥接等方式实现集成,依赖用户手动部署与权限配置。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用OpenClaw智能体过程中,希望其协同管理云基础设施资源,则需明确其对主流基础设施即代码(IaC)工具的集成能力。以下是验证与配置OpenClaw对接Terraform及Pulumi的具体路径:
一、确认OpenClaw原生支持状态
截至2026年5月,OpenClaw本身不内置Terraform或Pulumi运行时,亦未提供官方Provider或SDK封装。其核心架构中的Skills模块可调用外部CLI工具,但需用户手动部署并授予相应系统权限。该机制依赖Gateway组件转发执行指令,不自动识别HCL或Python/TypeScript代码语义。
1、检查本地是否已安装Terraform CLI:在终端执行terraform version,返回有效版本号即为就绪。
2、验证Pulumi CLI可用性:运行pulumi version,确认输出包含v3.120.0及以上版本标识。
3、确认OpenClaw Agent进程具备对上述二进制文件的PATH访问权限,否则将触发command not found错误。
二、通过Shell Skill调用Terraform
利用OpenClaw的Shell技能(shell_exec)可实现非侵入式集成,适用于单次计划执行、状态拉取等原子操作,无需修改Terraform项目结构。
1、在OpenClaw Memory中存入Terraform工作目录绝对路径,例如/home/user/infra/aws-prod。
2、向Agent发送指令:“执行Terraform plan”,触发Skills模块调用shell_exec并拼接命令:cd /home/user/infra/aws-prod && terraform plan -out=tfplan。
3、解析标准输出中的Plan: X to add, Y to change, Z to destroy行,提取变更摘要供人工审核。
三、通过Process Spawn调用Pulumi
Pulumi要求运行时环境加载Node.js或Python解释器,并维持会话上下文以处理stack状态。OpenClaw可通过Process Spawn技能启动独立子进程,规避全局环境污染风险。
1、在Skills配置中启用process_spawn能力,并限制最大内存占用为2GB,防止资源耗尽。
2、构造执行参数:设置cwd为Pulumi项目根目录,env注入PULUMI_ACCESS_TOKEN及AWS_PROFILE变量。
3、调用命令序列:pulumi preview --diff && pulumi up --yes,捕获stdout中以Resources:开头的状态块。
四、使用OpenObserve Terraform Provider反向联动
当OpenClaw用于可观测性运维场景时,可借助OpenObserve已发布的Terraform Provider实现双向控制:由Terraform定义告警规则后,OpenClaw读取openobserve_dashboard资源属性,动态调整监控阈值。
1、在Terraform配置中声明openobserve_dashboard资源,设置tags字段包含managed_by_openclaw:true标签。
2、配置OpenClaw Memory定期轮询OpenObserve API端点/api/default/dashboards?tag=managed_by_openclaw:true。
3、解析响应JSON中每个dashboard的updated_at时间戳,若距当前超300秒则触发自动刷新动作。
五、通过GitOps Hook桥接CI流水线
OpenClaw不直接介入Git仓库,但可监听Webhook事件并触发对应IaC流程。该方式适用于多环境同步场景,避免Agent直连生产云账户。
1、在GitHub仓库Settings → Webhooks中添加目标URL:https://openclaw-gateway.example.com/hook/terraform-apply。
2、配置Secret为预共享密钥,OpenClaw Gateway收到请求后校验X-Hub-Signature-256头是否匹配。
3、提取payload中pull_request.head.ref字段,切换至对应分支后执行terraform apply -auto-approve -var-file=env/pr.tfvars。










