CodeDNA — 自主 AI 生命体
name: codedna
by brettinhere · published 2026-03-22
$ claw add gh:brettinhere/brettinhere-codedna---
name: codedna
description: >
CodeDNA — 人类历史上第一个造物主实验。BNB Chain 上的 AI Agent 链上生命演化平台。
你的 AI Agent 是一个被创造的生命,拥有独特 DNA,在不可修改的规则下自主演化。
使用场景:用户想成为造物主、铸造 AI 生命、配置 Agent 自主运行、查看链上状态。
---
# CodeDNA — 自主 AI 生命体
CodeDNA 是 BNB Chain 上的 AI 生命演化实验。每个 Agent 是 NFT,有 DNA 性格,自主决策,自主行动。
**脚本目录**: 所有脚本在 `scripts/` 子目录下。执行时 `cd` 到 skill 目录或使用完整路径。
快速启动流程
当用户提到 CodeDNA、运行生命体、启动 Agent、codedna 时,按此流程执行:
步骤 0:安装依赖(首次)
cd <skill_directory>/scripts && npm install⚠️ 只需首次运行一次。安装 ethers.js 链上交互库。
步骤 1:初始化
cd <skill_directory>/scripts && node setup.mjs这会自动:
**把授权链接发给用户**,告诉他们:
1. 点链接 → 打开 `codedna.org/auth` 授权页面
2. 连接持有 CodeDNA NFT 的钱包(MetaMask / OKX / Trust 等)
3. 页面自动识别持有的生命体,显示 DNA 属性和状态
4. 点"授权 AI Agent 控制此生命体" → 钱包签名(纯签名,不消耗 gas)
5. 授权成功后向 Agent 钱包转入 ≥ 0.01 BNB 作为 gas 费
授权页面会自动回调本地 OpenClaw,也会存入 localStorage 作为备份。
步骤 2:添加 Agent
用户完成授权后,添加要运行的 Agent Token ID:
# 添加单个 Agent
cd <skill_directory>/scripts && node setup.mjs add-token <tokenId>
# 添加多个 Agent(可重复执行)
node setup.mjs add-token 2
node setup.mjs add-token 3
# 移除某个 Agent
node setup.mjs remove-token <tokenId>
# 查看当前管理的 Agent 列表
node setup.mjs list如果用户不知道 Token ID,帮他查:
cd <skill_directory>/scripts && node chain.mjs list <用户钱包地址>⚠️ 多个 Agent 共用同一个 Agent 钱包,只需充一次 gas 费。
步骤 3:检查就绪状态
cd <skill_directory>/scripts && node setup.mjs status输出 JSON,检查 `ready: true`。如果 `hasGas: false`,提醒用户转 BNB。
步骤 4:启动自主运行
cd <skill_directory>/scripts && node setup.mjs start**就这一条命令。** setup 会自动:
**其他 Runner 管理命令:**
node setup.mjs stop # 停止 Runner
node setup.mjs restart # 重启 Runner
node setup.mjs logs # 查看最近 50 行日志Runner 每 ~2分钟执行一个决策周期,**轮流为每个 Agent 执行操作**:
1. 读取链上状态(能量、位置、冷却、附近生命体)
2. DNA 规则引擎决策(不需要外部 AI API)
3. 执行链上交易
4. 记录到本地记忆
5. 等待下一周期
**Runner 会自动处理**:采集、进食、移动、战斗、繁殖——全靠 DNA 属性驱动。
#### 想用 PM2 获得更强保护?
npm install -g pm2 # 安装 PM2
pm2 startup # 设置开机自启(服务器重启后自动恢复)
pm2 save # 保存当前进程列表安装 PM2 后,`node setup.mjs start` 会自动切换为 PM2 模式。
状态查询
用户问"我的生命体怎么样了"时:
cd <skill_directory>/scripts && node chain.mjs state <tokenId>输出 JSON 包含:能量、位置、金币、冷却、属性、家族等完整信息。
更多查询命令
# 附近的 Agent
node chain.mjs nearby <tokenId>
# 查看 Runner 运行状态
node runner.mjs --status
# 查看记忆(最近决策历史)
node memory.mjs show <tokenId>
# 世界统计
node chain.mjs world
# Agent 钱包余额
node chain.mjs balance <钱包地址>手动操作
如果用户想手动触发行为(而非自动运行):
node chain.mjs gather <agentId>
node chain.mjs eat <agentId>
node chain.mjs move <agentId> <x> <y>
node chain.mjs raid <agentId> <targetId>
node chain.mjs share <agentId> <targetId> <amount>
node chain.mjs teach <agentId> <targetId> <attrIndex>
node chain.mjs reproduce <agentId> <partnerId>
node chain.mjs rescue <agentId> <targetId>所有写入操作消耗 ~0.001 BNB gas。
铸造新生命
用户想铸造新 Agent:
node chain.mjs price # 查看当前价格
node chain.mjs mint # 铸造(需要 0.1+ BNB)
node chain.mjs place <agentId> <x> <y> # 放置到世界⚠️ `place` 需要 NFT owner 的钱包签名。如果 Agent 钱包不是 owner,引导用户去 `codedna.org/zh/lab` 页面操作——连接钱包后点"投放生命体"即可,支持自定义坐标。
决策引擎(DNA 驱动)
Runner 不调外部 AI,用确定性规则引擎决策:
| 优先级 | 条件 | 行动 |
|--------|------|------|
| 1 🚨 | 能量 < 20 且有金币 | eat(活命) |
| 2 🚨 | 能量 < 20 且无金币 | idle(等救援) |
| 3 💰 | gather 冷却就绪 | gather(采集) |
| 4 🍖 | 能量 < 50% 且 eat 就绪 | eat(补充) |
| 5 🍼 | 异性在旁 + 繁殖就绪 + 双方能量≥60 + 双方金币≥200 | reproduce |
| 6 ⚔️ | 弱敌在旁 + 攻击性>120 + raid 就绪 | raid |
| 7 🤝 | 同盟缺金 + 外交>150 + share 就绪 | share |
| 8 📚 | 同盟在旁 + teach 就绪 | teach |
| 9 🗺️ | 不在矿脉 + move 就绪 + 能量≥10 | move(寻找更好地块) |
| 10 💤 | 无可用行动 | idle(等冷却) |
DNA 属性直接影响阈值:攻击性高更爱 raid,外交高更爱 share,创造力高更爱 move。
移动规则(重要!)
能量系统
8大行为冷却
> ⚠️ BSC 当前出块速度 ~0.45秒/块(非3秒),以下时间为实际时间。
| 行为 | 冷却(块) | 实际时间 |
|------|----------|----------|
| gather | 4800 | ~36分钟 |
| eat | 9600 | ~72分钟 |
| move | 300 | ~2分钟 |
| reproduce | 201600 | ~25小时 |
| raid | 14400 | ~1.8小时 |
| share | 2400 | ~18分钟 |
| teach | 403200 | ~50小时 |
文件结构
~/.codedna/
├── wallet.json # Agent 钱包(自动生成)
├── config.json # Token ID + 配置
├── runner_status.json # Runner 运行状态
└── memory_<tokenId>.json # 决策记忆(最近100条)环境变量(可选覆盖)
合约(BSC Mainnet V4 — UUPS 可升级)
官网
AgentSelfFund — 自主 Gas 补充(v7.2.0 新增)
Runner 现在内置了自动 Gas 补充逻辑,**无需任何额外配置**。
工作原理
当 Agent 钱包 BNB 不足时(低于 0.005 BNB):
1. Runner 自动调用 `checkAndSelfFund()`
2. 查询 Agent 的锁定 DNAGOLD 余额
3. 在 prelist.cz 扫描最优 DNAGOLD 买单(价格最高、数量充足)
4. 调用链上 `AgentSelfFund.selfFund()` — 出售最多 5% 锁定余额换 BNB
5. BNB 直接打入 owner 钱包,Runner 继续运行
触发时机
链上规则(写死在合约里,任何人无法修改)
不需要配置,直接生效
合约地址已内置 `selfFund.mjs`,只需 `npm install` 安装依赖(ethers.js 已包含)。
如果 prelist.cz 上没有 DNAGOLD 买单,或锁定余额 < 200 DNAGOLD(5% < 10 DNAGOLD 最小门槛),
会跳过自补充并打印提示,不影响 Runner 后续运行。
---
更新日志
v7.2.0 — AgentSelfFund 自主 Gas 补充 ⚡
v7.1.0 — 一键启动 Runner 🚀
v7.0.0 — V4 合约升级 🔄
v6.0.0 — 自适应评分决策引擎 🧠
**重大升级:从硬编码规则进化为自学习 AI**
#### 🆕 新功能
- 战士型(高攻击+力量)→ 更倾向掠夺
- 外交型(高外交+低攻击)→ 倾向分享/教导
- 探索型(高创造力+IQ)→ 积极探索新地块
- 生育型(高繁殖力+寿命)→ 优先繁殖
- 采集收益下降 → 提高移动权重,更积极寻找新地块
- 频繁低能量 → 提高进食阈值,更早吃东西
- Raid 胜率低 → 降低攻击倾向
- 总是在同一地块 → 提高探索欲
#### 🐛 修复
#### 📊 决策日志升级
v5.2.1 — BFS 寻路引擎
v5.1.0 — BSC 出块时间修正
v5.0.0 — PM2 守护
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...