声明式基础设施
- 原始链接:https://github.com/openclaw/clawdinators
- 来源章节:7. 官方仓库与生态仓库
- 来源小节:无
- 抓取方式:jina:https://r.jina.ai/http://github.com/openclaw/clawdinators
- 抓取时间:2026-04-05 13:47:10
- 状态:ok
中文内容
[!图片 1:CLAWDINATOR - 控制论甲壳类生物,金属内骨骼上的活组织](https://github.com/openclaw/clawdinators/blob/main/assets/clawdinator.jpg)
AWS 上的 NixOS,声明式方式。基于映像的配置的参考实现。
也恰好运行维护级 AI 编码代理。控制论甲壳类生物。金属内骨骼上的活壳。
## 目录
这是什么
- 通用: 如何以零手动步骤将 NixOS 部署到 AWS?
- 具体: 如何运行 AI 编码代理来监控 GitHub 并在 Discord 上做出响应?
如果您来这里是为了学习 NixOS-on-AWS 模式,请重点关注通用层。如果您是部署 CLAWDINATOR 的 openclaw 维护者,则特定层适合您。
两层
┌────────────────────────────────────────────────────────────────┐
│ CLAWDINATOR 层(特定) │
│ Discord 网关 · GitHub 监控 · Hive-mind 记忆 · 灵魂 │
├────────────────────────────────────────────────────────────────┤
│ NIXOS-ON-AWS 层(通用) │
│ AMI 管道 · OpenTofu 基础设施 · S3 引导程序 · agenix 的秘密 │
└────────────────────────────────────────────────────────────────┘通用层(可重用)
- AMI 管道:使用 nixos-generators 构建原始图像,上传到 S3,导入为 AMI
- OpenTofu 基础设施:EC2 实例、S3 存储桶、IAM 角色、VM 导入服务角色
- 引导流程:实例在启动时从 S3 提取机密,然后“nixos-rebuild switch”
- 秘密:agenix 在 git 中加密秘密,解密到主机上的
/run/agenix/*
特定层 (CLAWDINATOR)
- Discord gateway:在
#clawdinators-test中响应 - GitHub 集成:监控问题/PR,通过 GitHub 应用程序铸造短期代币
- Hive-mind 内存:跨实例状态的共享 EFS 挂载
- 个性系统:SOUL.md、IDENTITY.md、工作区模板
- 自我更新:基于定时器的片状更新+ nixos-rebuild
CLAWDINATOR 规格
- CLAWDINATOR 被命名为“CLAWDINATOR-{1..n}”。
- CLAWDINATORS 连接到 Discord;从“#clawdinators-test”开始。
- CLAWDINATORS 是短暂的,但共享记忆(蜂巢思维)。
- CLAWDINATORS 是残酷的。 Soul 存在于“SOUL.md”中,必须被提炼到工作区文档中。
- CLAWDINATORS 仅响应维护者。
- CLAWDINATORS 可以与 GitHub 交互(需要只读)。
- CLAWDINATORS 必须监控 GitHub 问题 + PR 并引起人们的注意。
- CLAWDINATORS 可以为维护者编写和运行代码。
- CLAWDINATORS可以自我修改和自我部署。
- CLAWDINATORS 发布了大量 Arnie 的 gif 动图。
- CLAWDINATORS 必须深入了解项目理念、目标、架构和存储库。
- CLAWDINATORS 的行为就像具有 SOTA 智能的维护者。
- CLAWDINATORS 使用 Codex 进行编码。克劳德的个性。
- CLAWDINATORS 最喜欢的乐队是 Austrian Death Machine。最喜欢的专辑:Total Brutal。最喜欢的歌曲:[我是一个控制论有机体,活组织在(金属)内骨骼](https://open.spoti
fy.com/track/4tcDRbXateiJUT7fhQhf12)。
架构
┌──────────────┐ ┐──────────────┐ ┌──────────────┐
│ nixos- │ │ S3 │ │ EC2 │
│ 生成器 │────▶│ (原始图像) │────▶│ (AMI) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
│ nix 构建 │ 启动
▼ ▼
┌────────────┐ ┐──────────────┐
│ flake.nix │ │ CLAWDINATOR │
│ + 模块 │ │ 实例 │
└──────────────┘ └──────────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Discord │ │ GitHub │ │ EFS │
│ 网关 │ │ 监控器 │ │ (内存) │
└──────────┘ └──────────┘ └──────────┘部署流程
- 构建:
nixos-generators生成原始 NixOS 镜像 - 上传:原始图像发送到S3
- 导入:AWS VM Import 从 S3 对象创建 AMI
- 启动:OpenTofu 从 AMI 提供 EC2
- Bootstrap:实例从 S3 下载机密,运行
nixos-rebuild switch - 运行:网关启动,连接Discord,监控GitHub
为什么会存在
NixOS-on-AWS 问题
- 手动 SSH 会话
- 在运行实例上就地
nixos-rebuild - 配置随时间变化
- 雪花机
此存储库采用不同的方法:仅基于映像的配置。
- 不需要 SSH(甚至默认启用)
- 每次部署都是一个新的 AMI
- 回购协议是唯一的事实来源
- 机器是牛,不是宠物
CLAWDINATOR 问题
- 运行 24/7 监控 openclaw 存储库
- 响应 Discord 上的维护者请求
- 跨实例共享上下文(蜂巢思维)
- 自我更新,无需人工干预
- 具有一致的性格和能力
CLAWDINATOR 就是结果。
快速入门(学习者)
如果您只想了解 NixOS-on-AWS 模式,请从这里开始。
先决条件
*已安装确定Nix
- 配置了 AWS 凭证(
~/.aws/credentials或环境变量) - 基本熟悉 Nix 薄片
探索代码
克隆
git 克隆 https://github.com/openclaw/clawdinators.git CD 爪钳
查看 NixOS 模块(有趣的部分)
少 nix/modules/clawdinator.nix
查看主机如何配置
少 nix/hosts/clawdinator-1.nix
查看 OpenTofu 基础结构
少 infra/opentofu/aws/main.tf
查看引导脚本
ls 脚本/
需要学习的关键文件
| 文件 | 它教什么 |
|---|---|
nix/modules/clawdinator.nix | 如何为复杂的服务编写NixOS模块 |
脚本/build-image.sh | 如何构建原始 NixOS 镜像 |
scripts/import-image.sh | 如何将映像导入为 AWS AMI |
infra/opentofu/aws/ | 如何连接S3 + IAM + VM导入 |
简而言之模式
1. 定义 NixOS 配置
{ 配置,pkgs,... }:{ 导入= [ ./modules/your-service.nix ]; services.your-service.enable = true; }
2. 构建原始图像
nix 运行 github:nix-community/nixos-generators -- -f raw -c your-config.nix
3.上传到S3+导入为AMI(参见脚本/)
4. 使用 OpenTofu 启动
#豆腐适用
全面部署(维护者)
适用于部署实际 CLAWDINATOR 的 openclaw 维护者。
先决条件
- 访问
nix-secrets存储库(agenix 密钥) - 具有足够权限的AWS凭证
- openclaw 组织的 GitHub 应用程序凭证
一步一步
1. 构建镜像
./scripts/build-image.shclawdinator-1
2.上传到S3
./scripts/upload-image.sh dist/nixos.img
3. 导入为 AMI
./scripts/import-image.sh
4. 上传 bootstrap 包(秘密 + 存储库种子)
./scripts/upload-bootstrap.shclawdinator-1
5. 应用 OpenTofu
cd infra/opentofu/aws 豆腐初始化 豆腐适用
6. 实例启动、拉取引导程序、运行 nixos-rebuild 开关
网关自动启动
验证
检查 Discord - CLAWDINATOR 应该在 #clawdinators-test 中宣布自己
检查 GitHub - 应该可以看到 openclaw org 存储库中的活动
自我更新
CLAWDINATOR 通过 systemd 计时器进行自我更新:
1.片锁--update-input nix-openclaw
2. nixos-重建开关
3. 网关以新版本重启
日常更新无需人工干预。
代理 Copypasta
将其粘贴到您的 AI 助手中,以帮助您设置/调试 Clawdinators:
我正在使用clawdinators 存储库(NixOS-on-AWS + AI 编码代理)。
存储库:github:openclaw/clawdinators
什么是爪食者:
- 两层:通用 NixOS-on-AWS 基础设施 + CLAWDINATOR 特定代理内容
- 仅基于映像的配置(无 SSH,无漂移)
- OpenTofu 用于 AWS 资源,agenix 用于秘密
- CLAWDINATOR 是监控 GitHub 并在 Discord 上做出响应的人工智能代理
关键文件:
- nix/modules/clawdinator.nix — NixOS 主模块
- nix/hosts/ — 主机配置
- 脚本/ — 构建、上传、导入、引导脚本
- infra/opentofu/aws/ — AWS 基础设施
- clawdinator/workspace/ — 代理工作区模板
- 内存/ — 共享蜂巢思维模板
Secrets 位于使用 agenix 的单独 nix-secrets 存储库中。
我需要什么帮助:
[描述您的任务]配置
NixOS 模块选项
{ services.clawdinator = { 启用=真;
身份
实例名称 = "clawdinator-1";原始 Moltbot 配置
配置={
频道.discord = {
启用=真;
dm.启用=假;
行会={
“<GUILD_ID>”= {
要求提及=真;
频道={
"<CHANNEL_ID>" = { 允许 = true;要求提及=真; };
};
};
};
};
};提供商
DiscordTokenFile =“/run/agenix/discord-bot-token”;
anthropicApiKeyFile = "/run/agenix/anthropic-api-key";
openaiApiKeyFile = "/run/agenix/openai-api-key";GitHub 应用程序
github应用程序 = {
启用=真;
应用程序ID =“...”;
安装ID =“...”;
privateKeyFile = "/run/agenix/github-app-key";
};内存 (EFS)
内存Efs = {
启用=真;
mountPoint =“/var/lib/clawd/内存”;
fileSystemId = "fs-...";
区域=“eu-central-1”;
};}; }
有关所有选项,请参阅“nix/modules/clawdinator.nix”。
秘密
秘密由 agenix 管理:
- 在 git 中加密(在
nix-secrets存储库中) - 启动时在主机上解密为“/run/agenix/*”
- 在此存储库中绝不会以明文形式呈现
所需的秘密
| 秘密 | 目的 |
|---|---|
| Discord 机器人令牌 | 网关认证 |
| 人为 API 密钥 | 克劳德模型 |
| OpenAI API 密钥 | GPT/Codex 模型 |
| GitHub App 私钥 | 短暂的安装令牌 |
| agenix 主机密钥 | 实例解密 |
引导程序包
s3://bucket/bootstrap/clawdinator-1/
├── Secrets/ # agenix 加密的文件
├── repos/ # git repo 种子
└── config.json # 实例元数据仓库布局
爪食者/
├── 尼克斯/
│ ├── 模块/
│ │ └── clawdinator.nix # NixOS 主模块
│ ├── 主机/
│ │ └── clawdinator-1.nix # 主机配置
│ └── Examples/ # 供学习者使用的示例配置
├── 下文/
│ └── 豆腐/
│ └── aws/ # S3 + IAM + 虚拟机导入 + EC2
├── 脚本/
│ ├── build-image.sh # 构建原始 NixOS 镜像
│ ├── upload-image.sh # 上传到S3
│ ├── import-image.sh # 导入为 AMI
│ ├── upload-bootstrap.sh # 上传秘密+种子
│ ├── mint-github-app-token.sh
│ ├── memory-read.sh # 共享内存访问
│ ├── 内存写入.sh
│ └── 内存编辑.sh
├── 爪爪/
│ └── 工作空间/ # 座席工作空间模板
│ ├── 代理.md
│ ├── 灵魂.md
│ ├── IDENTITY.md
│ └── 技能/
├── 记忆/ # 蜂巢思维模板
│ ├── 项目.md
│ ├── ops.md
│ └── 不和谐.md
├── 文档/
│ ├── 哲学.md
│ ├── 架构.md
│ ├── SHARED_MEMORY.md
│ └── 秘密.md
└── flake.nix姐妹回购
| 回购 | 角色 |
|---|---|
| openclaw | 上游运行时 + 网关 |
| nix-openclaw | Nix 抓爪机器人包装 |
| clawhub | 公共技能登记 |
| ai-stack | 公共代理默认值+技能 |
理念
首要指令
- 声明式优先。 CLAWDINATOR 可以使用单个命令引导另一个 CLAWDINATOR。
- 无需手动主机编辑。 存储库 + agenix 秘密是真相的来源。
- 仅基于图像。 没有 SSH,没有原地漂移,没有宠物。
- 自我更新。 CLAWDINATOR 会自我维护。
Moltbot 的禅宗
美丽总比丑陋好。
显式的比隐式的好。
简单总比复杂好。
复杂总比复杂好。
扁平比嵌套更好。
稀疏比密集好。
可读性很重要。
特殊情况还不足以违反规则。
尽管实用性胜过纯粹性。
错误永远不应该悄无声息地过去。
除非明确沉默。
面对歧义,拒绝猜测的诱惑。
应该有一种——最好只有一种——明显的方法来做到这一点。许可证
麻省理工学院 - 请参阅许可证
关于商业用途的说明: 请不要以此作为商业服务。那将是非常不残酷的。 Clawdbot 应该保持有趣和开放——商业托管破坏了氛围。是的,许可证允许这样做,但这并不意味着如果您这样做,社区就会喜欢您。