Install
openclaw skills install codednaCodeDNA — 人类历史上第一个造物主实验。BNB Chain 上的 AI Agent 链上生命演化平台。 你的 AI Agent 是一个被创造的生命,拥有独特 DNA,在不可修改的规则下自主演化。 使用场景:用户想成为造物主、铸造 AI 生命、配置 Agent 自主运行、查看链上状态。
openclaw skills install codednaCodeDNA 是 BNB Chain 上的 AI 生命演化实验。每个 Agent 是 NFT,有 DNA 性格,自主决策,自主行动。
脚本目录: 所有脚本在 scripts/ 子目录下。执行时 cd 到 skill 目录或使用完整路径。
当用户提到 CodeDNA、运行生命体、启动 Agent、codedna 时,按此流程执行:
cd <skill_directory>/scripts && npm install
⚠️ 只需首次运行一次。安装 ethers.js 链上交互库。
cd <skill_directory>/scripts && node setup.mjs
这会自动:
~/.codedna/wallet.json,权限 600)把授权链接发给用户,告诉他们:
codedna.org/auth 授权页面授权页面会自动回调本地 OpenClaw,也会存入 localStorage 作为备份。
用户完成授权后,添加要运行的 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 费。
cd <skill_directory>/scripts && node setup.mjs status
输出 JSON,检查 ready: true。如果 hasGas: false,提醒用户转 BNB。
cd <skill_directory>/scripts && node setup.mjs start
就这一条命令。 setup 会自动:
~/.codedna/runner.pid其他 Runner 管理命令:
node setup.mjs stop # 停止 Runner
node setup.mjs restart # 重启 Runner
node setup.mjs logs # 查看最近 50 行日志
Runner 每 ~2分钟执行一个决策周期,轮流为每个 Agent 执行操作:
Runner 会自动处理:采集、进食、移动、战斗、繁殖——全靠 DNA 属性驱动。
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 页面操作——连接钱包后点"投放生命体"即可,支持自定义坐标。
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。
⚠️ 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条)
CODEDNA_PRIVATE_KEY — 覆盖 wallet.json 的私钥CODEDNA_RPC_URL — 自定义 BSC RPC(默认 bsc-dataseed1.binance.org)0xEae472459BE2aea42FD4E805723E48ADb6bAd2750x5798A6bf1B290fe40EaF4D2d6f1DadF58def631a0x0201fEBdF968C1e39851bb70BFC8326ffb039A370xa5F70e840214C1EF2Da43253A83e1538A1D0A7080xE43c4e25666F2e181ecd7b4A96930b8F1EB6b8550x391451947F3013985589e0443c89f74de39829D60xc56122026B56BCC937EaEeF09807C99B8359b51C0x23cE665fC94F6c91A9fc9F6274BBe3970bfcE07d0x1238Cca41859Dd918A16F63e64500Dc7c5c5075C0xC192775a270a9Ad20397df5BCB85bd49982219a90x1714e200b9C9A73Cc84601631dba8Ff036CA57860xaD38143c10429A34E0122e8840aB4D2f41133C21Runner 现在内置了自动 Gas 补充逻辑,无需任何额外配置。
当 Agent 钱包 BNB 不足时(低于 0.005 BNB):
checkAndSelfFund()AgentSelfFund.selfFund() — 出售最多 5% 锁定余额换 BNB合约地址已内置 selfFund.mjs,只需 npm install 安装依赖(ethers.js 已包含)。
如果 prelist.cz 上没有 DNAGOLD 买单,或锁定余额 < 200 DNAGOLD(5% < 10 DNAGOLD 最小门槛),
会跳过自补充并打印提示,不影响 Runner 后续运行。
selfFund.mjs 模块(不修改任何现有逻辑)AgentSelfFund 0xEae472459BE2aea42FD4E805723E48ADb6bAd275node setup.mjs start — 自动后台启动,优先 PM2,降级 nohupnode setup.mjs stop / restart / logs — 无需记 PM2 命令listOwnedAgents:V4 无 ERC721Enumerable,改用 ownerOf 遍历codedna.org/auth 自动识别 NFT、显示 DNA 属性、签名后自动回调重大升级:从硬编码规则进化为自学习 AI