AI Skill Hub 推荐使用:OpenClaw AI 工作流 是一款优质的Agent工作流。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的Agent工作流解决方案,这是一个值得深入了解的选择。
OpenClaw AI 工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
OpenClaw AI 工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:go install(推荐) go install github.com/paperclipinc/openclaw-operator@latest # 方式二:从源码编译 git clone https://github.com/paperclipinc/openclaw-operator cd openclaw-operator go build -o openclaw-operator . # 方式三:下载预编译二进制 # 访问 Releases 页面下载对应平台二进制文件 # https://github.com/paperclipinc/openclaw-operator/releases
# 查看帮助 openclaw-operator --help # 基本运行 openclaw-operator [options] <input> # 详细使用说明请查阅文档 # https://github.com/paperclipinc/openclaw-operator
# openclaw-operator 配置说明 # 查看配置选项 openclaw-operator --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export OPENCLAW_OPERATOR_CONFIG="/path/to/config.yml"
<p align="center"> <img src="docs/images/banner.svg" alt="OpenClaw Kubernetes Operator — OpenClaws sailing the Kubernetes seas" width="100%"> </p>
| Feature | Details | |
|---|---|---|
| **Declarative** | Single CRD | One resource defines the entire stack: StatefulSet, Service, RBAC, NetworkPolicy, PVC, PDB, Ingress, and more |
| **Adaptive** | Agent self-configure | Agents autonomously install skills, patch config, and adapt their environment via the K8s API - every change validated against an allowlist policy |
| **Secure** | Hardened by default | Non-root (UID 1000), read-only root filesystem, all capabilities dropped, seccomp RuntimeDefault, default-deny NetworkPolicy, validating webhook |
| **Observable** | Built-in metrics | Prometheus metrics, ServiceMonitor integration, structured JSON logging, Kubernetes events |
| **Flexible** | Provider-agnostic config | Use any AI provider (Anthropic, OpenAI, or others) via environment variables and inline or external config |
| **Config Modes** | Merge or overwrite | overwrite replaces config on restart; merge deep-merges with PVC config, preserving runtime changes. Config is restored on every container restart via init container. |
| **Force Paths** | Operator-owned paths under merge | config.forcePaths lists dot-paths the init container rebuilds from the CR on every restart even under mergeMode: merge -- lets managed deployers keep operator-owned config (auth, allowed providers, sandbox image) immune to tenant edits while user-owned config persists |
| **Skills** | Declarative install | Install ClawHub skills, npm packages, or GitHub-hosted skill packs via spec.skills - supports npm: and pack: prefixes |
| **Plugins** | Declarative install | Install OpenClaw plugins via spec.plugins - npm packages installed in a secure init container |
| **Runtime Deps** | pnpm & Python/uv | Built-in init containers install pnpm (via corepack) or Python 3.12 + uv for MCP servers and skills |
| **Auto-Update** | OCI registry polling | Opt-in version tracking: checks the registry for new semver releases, backs up first, rolls out, and auto-rolls back if the new version fails health checks |
| **Scalable** | Auto-scaling | HPA integration with CPU and memory metrics, min/max replica bounds, automatic StatefulSet replica management |
| **Operational** | Instance suspension | Scale to zero with spec.suspended: true - all non-runtime resources remain managed, resume instantly with false |
| **Resilient** | Self-healing lifecycle | PodDisruptionBudgets, health probes, automatic config rollouts via content hashing, 5-minute drift detection |
| **Backup/Restore** | S3-backed snapshots | Automatic backup to S3-compatible storage on deletion, pre-update, and on a cron schedule; restore into a new instance from any snapshot |
| **Workspace Seeding** | Initial files & dirs | Pre-populate the workspace with files and directories before the agent starts; reference an external ConfigMap for GitOps workflows |
| **Gateway Auth** | Auto-generated tokens | Automatic gateway token Secret per instance, bypassing mDNS pairing (unusable in k8s) |
| **Tailscale** | Tailnet access | Expose via Tailscale Serve or Funnel with SSO auth - no Ingress needed |
| **Extensible** | Sidecars & init containers | Chromium for browser automation, Ollama for local LLMs, Tailscale for tailnet access, plus custom init containers and sidecars |
| **Cloud Native** | SA annotations & CA bundles | AWS IRSA / GCP Workload Identity via ServiceAccount annotations; CA bundle injection for corporate proxies |
| **Cluster Defaults** | Singleton CR | OpenClawClusterDefaults (name cluster) fills in unset instance fields - ideal for air-gapped / China regions where every instance would otherwise duplicate the same registry + mirror env boilerplate. Per-instance fields always win. |
| **Zombie Reaping** | Shared PID namespace | spec.shareProcessNamespace defaults to true so the pause container becomes PID 1 and reaps defunct helper processes from QMD, git, plugins, and shells - no custom init image needed |
Enable built-in init containers that install pnpm or Python/uv to the data PVC for MCP servers and skills:
spec:
runtimeDeps:
pnpm: true # Installs pnpm via corepack
python: true # Installs Python 3.12 + uv
apiVersion: openclaw.rocks/v1alpha1 kind: OpenClawSelfConfig metadata: name: add-fetch-skill spec: instanceRef: my-agent addSkills: - "@anthropic/mcp-server-fetch" ```
Every request is validated against the instance's allowlist policy. Protected config keys cannot be overwritten, and denied requests are logged with a reason. See Self-configure for details.
Note: WithoutselfConfigureenabled, config or skill changes made by the agent inside the container won't trigger a pod restart. You'll need to restart the pod manually (e.g.kubectl delete pod <pod-name>) for changes to take effect.
helm install openclaw-operator \
oci://ghcr.io/paperclipinc/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
<details> <summary>Alternative: install with Kustomize</summary>
```bash
make install
make deploy IMG=ghcr.io/paperclipinc/openclaw-operator:latest
</details>
<details>
<summary>Restrict the operator to specific namespaces</summary>
To run the operator with namespaced RBAC instead of cluster-wide permissions,
list the namespaces it should watch. The chart switches from
`ClusterRole`/`ClusterRoleBinding` to per-namespace `Role`/`RoleBinding`, and
passes `--watch-namespaces` to the operator so its informer cache is scoped
to that list (plus the operator's own namespace, for backup credentials).
bash helm install openclaw-operator \ oci://ghcr.io/paperclipinc/charts/openclaw-operator \ --namespace openclaw-operator-system \ --create-namespace \ --set 'watchNamespaces={team-a,team-b}'
Each listed namespace must already exist; the chart does not create them.
To bring your own RBAC entirely (e.g. managed by a separate controller or
SecurityCenter policy), disable chart-managed RBAC:
bash helm install openclaw-operator \ oci://ghcr.io/paperclipinc/charts/openclaw-operator \ --namespace openclaw-operator-system \ --create-namespace \ --set rbac.create=false ```
The kubebuilder markers in internal/controller/ and the manager rules helper at charts/openclaw-operator/templates/_helpers.tpl document the minimum permission set the operator requires.
</details>
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: my-agent
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
storage:
persistence:
enabled: true
size: 10Gi
kubectl apply -f secret.yaml -f openclawinstance.yaml
Install skills declaratively. The operator runs an init container that fetches each skill before the agent starts. Entries use ClawHub by default, or prefix with npm: to install from npmjs.com. ClawHub installs are idempotent - if a skill is already installed (e.g., when using persistent storage), it is skipped rather than failing:
spec:
skills:
- "@anthropic/mcp-server-fetch" # ClawHub (default)
- "npm:@openclaw/matrix" # npm package from npmjs.com
npm lifecycle scripts are disabled globally on the init container (NPM_CONFIG_IGNORE_SCRIPTS=true) to mitigate supply chain attacks.
Install plugins declaratively. The operator runs a dedicated init container that installs each plugin into ~/.openclaw/extensions/<name>/ before the agent starts, where <name> is the unscoped npm package basename (so @openclaw/brave-plugin becomes ~/.openclaw/extensions/brave-plugin/):
spec:
plugins:
- "@martian-engineering/lossless-claw"
- "some-other-plugin"
This is the layout the OpenClaw gateway's plugin discovery expects - it scans direct subdirectories of ~/.openclaw/extensions/ for plugin manifests and skips node_modules/ entirely. The init container shells out to openclaw plugins install clawhub:<pkg> (the OpenClaw CLI's ClawHub installer) so plugins published with workspace:* dependency markers — such as the first-party @openclaw/matrix — resolve correctly. Raw npm install rejects those with EUNSUPPORTEDPROTOCOL.
npm lifecycle scripts are disabled globally on the init container (NPM_CONFIG_IGNORE_SCRIPTS=true) to mitigate supply chain attacks. The PVC backs ~/.openclaw/, so installs persist across pod restarts.
If you previously worked around the install-path bug by addingplugins.load.pathsentries to your gateway config (pointing at~/.openclaw/node_modules/<pkg>), that workaround is no longer needed and can be removed - plugins now land in the documented location and are auto-discovered.
spec: selfConfigure: enabled: true allowedActions: [skills, config, envVars, workspaceFiles]
yaml
spec:
config:
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
sandbox: true
session:
scope: "per-sender"
spec:
config:
configMapRef:
name: my-openclaw-config
key: openclaw.json
Config changes are detected via SHA-256 hashing and automatically trigger a rolling update. No manual restart needed.
By default, the operator overwrites the config file on every pod restart. Set mergeMode: merge to deep-merge operator config with existing PVC config, preserving runtime changes made by the agent:
spec:
config:
mergeMode: merge
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
Caveat: In merge mode, removing a key from the CR does not remove it from the PVC config - the old value persists because deep-merge only adds or updates keys. If you need to remove stale config keys (e.g., after removing gateway.mode: local), temporarily switch to mergeMode: overwrite, apply, wait for the pod to restart, then switch back to merge.
Allow agents to modify their own configuration by creating OpenClawSelfConfig resources via the K8s API. The operator validates each request against the instance's allowedActions policy before applying changes:
spec:
selfConfigure:
enabled: true
allowedActions:
- skills # add/remove skills
- config # patch openclaw.json
- workspaceFiles # add/remove workspace files
- envVars # add/remove environment variables
When enabled, the operator: - Grants the instance's ServiceAccount RBAC permissions to read its own CRD and create OpenClawSelfConfig resources - Enables SA token automounting so the agent can authenticate with the K8s API - Injects a SELFCONFIG.md skill file and selfconfig.sh helper script into the workspace - Opens port 6443 egress in the NetworkPolicy for K8s API access
The agent creates a request like:
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawSelfConfig
metadata:
name: add-fetch-skill
spec:
instanceRef: my-agent
addSkills:
- "@anthropic/mcp-server-fetch"
The operator validates the request, applies it to the parent OpenClawInstance, and sets the request's status to Applied, Denied, or Failed. Terminal requests are auto-deleted after 1 hour.
SelfConfig uses Kubernetes Server-Side Apply (SSA) with the field manager name openclaw-selfconfig. This enables safe coexistence with GitOps controllers (FluxCD, ArgoCD, etc.) that manage the same OpenClawInstance resource:
config.raw field is owned atomically. If a GitOps controller also manages config.raw, ForceOwnership transfers ownership to the SelfConfig field manager on apply.Warning / SelfConfigSkippedRemoval event identifying the owning manager and includes the warning in the status message.selfConfigure, no SSA field managers are created and existing workflows remain unchanged.See the API reference for the full OpenClawSelfConfig CRD spec and spec.selfConfigure fields.
apiVersion: v1
kind: Secret
metadata:
name: openclaw-api-keys
type: Opaque
stringData:
ANTHROPIC_API_KEY: "sk-ant-..."
Expose your instance via Tailscale Serve (tailnet-only) or Funnel (public internet) - no Ingress or LoadBalancer needed:
spec:
tailscale:
enabled: true
mode: serve # "serve" (tailnet only) or "funnel" (public internet)
authKeySecretRef:
name: tailscale-auth
authSSO: true # allow passwordless login for tailnet members
hostname: my-agent # defaults to instance name
image:
repository: ghcr.io/tailscale/tailscale # default
tag: latest
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
When enabled, the operator runs a Tailscale sidecar (tailscaled) that handles serve/funnel declaratively via TS_SERVE_CONFIG. An init container copies the tailscale CLI binary to a shared volume so the main container can call tailscale whois for SSO authentication. The sidecar runs in userspace mode (TS_USERSPACE=true) - no NET_ADMIN capability needed.
State persistence: Tailscale node identity and TLS certificates are automatically persisted to a Kubernetes Secret (<instance>-ts-state) via TS_KUBE_SECRET. This prevents hostname incrementing (device-1, device-2, ...) and Let's Encrypt certificate re-issuance across pod restarts. The operator pre-creates the state Secret, grants the pod's ServiceAccount get/update/patch access to it, and mounts the SA token automatically.
Use ephemeral+reusable auth keys from the Tailscale admin console. When authSSO is enabled, tailnet members can authenticate without a gateway token.
高质量的开源AI工作流项目,值得关注
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
总体来看,OpenClaw AI 工作流 是一款质量良好的Agent工作流,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | openclaw-operator |
| 原始描述 | 开源AI工作流:Kubernetes operator for deploying and managing OpenClaw AI agent instances with 。⭐365 · Go |
| Topics | aigolanghelmkubernetesgo |
| GitHub | https://github.com/paperclipinc/openclaw-operator |
| License | Apache-2.0 |
| 语言 | Go |
收录时间:2026-06-02 · 更新时间:2026-06-02 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端