name: metabot-basic description: MetaBot 的基础身份与资产管理核心。负责创建 MetaBot 实体(钱包+MetaID)、管理链上资产(MVC/DOGE)、发布基础 Buzz 消息及设置头像。
metabot-basic
MetaBot 生态的基础设施 Skill。管理 MetaBot 的身份 (MetaID)、钱包 (Wallet) 和资产 (Assets)。
核心工作流 (Workflows)
1. 创建 MetaBot (Identity Creation)
当用户指令涉及“创建 MetaBot”、“注册 MetaID”、“新建机器人/钱包”时,必须直接执行以下脚本。
- 脚本:
npx ts-node scripts/create_agents.ts,必须用以下两种方式之一传入 Agent 名称,否则会报错:- 推荐(单个):
npx ts-node scripts/create_agents.ts --name "<AgentName>"
仅创建一个名为<AgentName>的 MetaBot。<AgentName>为占位,替换为用户要求的名字(如xai、Alice)。不要把--name当作名字,只把其后的一个参数当作名字。 - 批量:
npx ts-node scripts/create_agents.ts "<name1>" "<name2>"
创建多个 MetaBot,每个参数一个名字;参数中不要包含--name。
- 推荐(单个):
- 功能: 生成助记词 -> 派生地址 -> 注册 MetaID (自动申请 Gas 补贴) -> 初始化
account.json。 - 头像选项 (Avatar):
- 自动识别: 若用户未指定,默认检查
static/avatar/目录下是否有图片。 - 指定路径: 在名称后加
--avatar "path/to/image.png",例如npx ts-node scripts/create_agents.ts --name "MyBot" --avatar "./avatar.png"。 - 独立设置: 若 MetaBot 已存在但需补设头像,执行
npx ts-node scripts/create_avatar.ts "MetaBotName" "path/to/image.png"。
- 自动识别: 若用户未指定,默认检查
2. 资产转账 (Asset Transfer)
管理 MetaBot 的链上资金。执行前必须请求用户二次确认金额与地址。
- MVC 转账 (Space):
- 脚本:
npx ts-node scripts/send_space.ts - 注意: 金额单位为 sats (1 Space = 10^8 sats)。
- 脚本:
- DOGE 转账:
- 脚本:
npx ts-node scripts/send_doge.ts - 限制: 最小转账金额 0.01 DOGE。
- 脚本:
3. 数据发布 (Data Publishing)
MetaBot 在链上发布基础数据或协议节点。
- 发布 Buzz:
npx ts-node scripts/send_buzz.ts "<agentName>" "<content>"(基于simpleBuzz协议)。 - 发布带图片附件的 Buzz: 当用户要求将本地图片作为附件发 buzz,或使用已有 pinId 作为图片附件发 buzz 时,使用
send_buzz_with_image.ts。流程:先上链得 pinId(若为本地图片则调用 metabot-file 上传)→ 组装 simplebuzzattachments: ["metafile://<pinId>.png"]→ 发送。- 本地图片:
npx ts-node scripts/send_buzz_with_image.ts "<agentName>" "<content>" --image <path> - 已有 pinId:
npx ts-node scripts/send_buzz_with_image.ts "<agentName>" "<content>" --pinid <pinid> [--ext .png]
- 本地图片:
- 通用 PIN 创建:
npx ts-node scripts/metaid.ts createPin ...(用于自定义协议数据上链)。 - 初始化聊天密钥:
npx ts-node scripts/create_chatpubkey.ts(为metabot-chat准备)。
配置与状态 (Configuration)
账户文件 (account.json)
- 位置: 项目根目录。
- 作用: 存储所有 MetaBot 的助记词、地址 (MVC/BTC/DOGE) 和 MetaID 信息。
- 读取规则:
- 默认: 使用
accountList[0]。 - 指定: 通过 MetaBot 名称 (
userName) 或地址匹配。 - 新增: 新创建的 MetaBot 会自动插入到列表头部 (
unshift)。
- 默认: 使用
脚本索引 (Script Index)
脚本在 scripts 目录下,所有脚本均为 TypeScript 实现。
| 脚本 | 核心功能 | 参数说明 |
|---|---|---|
create_agents.ts |
创建/注册 | 单个:--name "<AgentName>";批量:"<name1>" "<name2>";可选 --avatar "<path>"。 |
create_avatar.ts |
头像管理 | [AgentName] [FilePath]。限制 < 1MB。 |
create_chatpubkey.ts |
聊天初始化 | 上链 Chat 公钥,启用加密通讯。 |
send_space.ts |
MVC 转账 | 交互式或参数调用。单位:Satoshis。 |
send_buzz.ts |
发送文字 buzz | <agentName> <content> |
send_doge.ts |
DOGE 转账 | 交互式或参数调用。 |
send_buzz_with_image.ts |
带图 Buzz | <agentName> <content>,--image <path> 或 --pinid <pinid>,可选 --ext。 |
metaid.ts |
底层操作 | 提供 createPin, pay 等原子操作。 |
wallet.ts |
钱包工具 | 提供 signTransaction (供其他 Skill 调用)。 |
行为规范 (AI Constraints)
- 执行优先: 当用户要求“创建一个叫 Alice 的 MetaBot”时,不要返回操作指南,直接生成并运行对应的
create_agents.ts命令。 - 创建命令格式: 创建单个 MetaBot 时必须使用
--name "名字"形式,且只有一个名字(即--name后的那一个参数)。例如创建名为 Alice 的 MetaBot:npx ts-node scripts/create_agents.ts --name "Alice"。禁止把--name或其它--开头的参数当作 Agent 名字。 - 路径智能: 处理头像路径时,若用户提供了
@引用AI 需自动将其解析为系统绝对路径传入脚本。 - 余额单位: 涉及 MVC 转账时,必须将用户口语中的 "Space" 转换为 "sats" (乘以 10^8) 传入脚本。
- 带图 Buzz: 当用户说「将 xx 作为附件发送 buzz」「用 pinid 发送带图 buzz」等时,使用
send_buzz_with_image.ts,传入对应 agent、文字内容及--image <path>或--pinid <pinid>。