☰
多Agent账户管理:如何用 standards-sdk 快速创建 HCS-15 Petal 账户,一文搞定资金管理
2026/10/14 23:39:45 网站建设 项目流程

【免费下载链接】standards-sdk

The official HOL Standards SDK, implementing the standards found in https://hol.org/docs/standards

项目地址:https://gitcode.com/gh_mirrors/st/standards-sdk
点击查看免费下载

本文介绍standards-sdk(Hashgraph Online 官方标准 SDK)中的HCS-15规范实现:教你如何用「基础账户 + 花瓣账户(Petal Account)」结构管理多个 AI Agent 的链上身份与资金,覆盖账户创建、共享密钥、资金分配与浏览器钱包签名等完整流程。

什么是 HCS-15?先搞懂"基础账户 + 花瓣账户"模型 💡

HCS-15 是 Hashgraph 生态中关于Petal(花瓣)账户结构的标准。它的核心思想很简单:

概念说明典型用途
Base Account(基础账户)使用全新 ECDSA 密钥创建,并自动生成 EVM 别名地址(0x 开头)作为资金主账户,可直连 EVM 生态
Petal Account(花瓣账户)复用基础账户的同一把公钥创建,不设置独立别名为每个 Agent / 场景开设"分账户",独立持有资金

打个比方:基础账户是你的"主钱包",每个花瓣账户就像主钱包上分出来的"零钱包"——每个 Agent 各领一个,资金互相隔离,密钥却统一管理。这正是多 Agent 场景下做资金管理的关键:给每个 Agent 独立的账户余额,避免互相挤占,同时无需维护一堆不同的私钥。

这套逻辑在 SDK 中通过交易备忘录(如hcs-15:op:base_create、hcs-15:op:petal_create)做了清晰标记,方便在链上追溯每一笔账户创建交易的来源,相关定义见 tx.ts。

3分钟上手:安装 standards-sdk 并配置 HCS-15 环境

第一步:安装 SDK

npm install @hol-org/standards-sdk

旧版 scope 同样可用:npm install @hashgraphonline/standards-sdk

第二步:准备环境变量

HCS-15 的 Node 端客户端需要一个"操作账户"来支付交易费用。在项目的.env文件中配置:

HEDERA_NETWORK=testnet HEDERA_OPERATOR_ID=你的账户ID HEDERA_OPERATOR_KEY=你的私钥

第三步:跑通官方演示

如果你克隆了本仓库(git clone https://gitcode.com/gh_mirrors/st/standards-sdk),可以直接运行官方演示脚本,它会完整走完"创建基础账户 → 创建花瓣账户 → 验证 → 写入 HCS-11 智能体档案"的全流程:

pnpm run demo:hcs-15

演示源码在 demo/hcs-15/petal-accounts-demo.ts,是学习 HCS-15 用法最好的参考。

一行代码创建基础账户:拿到账户、私钥和 EVM 地址

在 Node 项目中创建HCS15Client后,调用createBaseAccount即可。它的实现位于 sdk.ts,流程全自动:

  1. 生成一把全新的ECDSA 密钥对
  2. 用公钥 + EVM 别名构建AccountCreateTransaction
  3. 提交到网络并等待回执
import { HCS15Client } from '@hol-org/standards-sdk'; const hcs15 = new HCS15Client({ network: 'testnet', operatorId: process.env.HEDERA_OPERATOR_ID, operatorKey: process.env.HEDERA_OPERATOR_KEY, }); const base = await hcs15.createBaseAccount({ initialBalance: 1, // 初始余额 1 HBAR accountMemo: 'HCS-15 Base', }); console.log(base.accountId); // Hedera 账户 ID console.log(base.evmAddress); // 对应的 0x EVM 地址

创建成功后,你会拿到四样东西:

  • accountId:Hedera 账户 ID(如0.0.123456)
  • privateKey / privateKeyHex:新账户的私钥,请务必妥善保存
  • publicKey:公钥对象
  • evmAddress:由 ECDSA 公钥派生的 EVM 地址,可直接在以太坊生态中使用

💡 小贴士:基础账户默认初始余额为 10 HBAR(见 tx.ts 中的默认值),可通过initialBalance参数按需调整。

创建 Petal 账户:共享密钥机制如何工作?🌸

HCS-15 最巧妙的设计在于createPetalAccount:花瓣账户直接复用基础账户的公钥创建,不设置独立别名。这意味着:

  • ✅ 你只需要保管一把私钥,就能操作主账户下所有花瓣账户
  • ✅ 每个花瓣账户有独立的账户 ID 和独立余额,天然实现资金隔离
  • ✅ 花瓣账户可通过基础账户的密钥签名,管理成本低

调用方式同样简单,完整实现见 sdk.ts:

const petal = await hcs15.createPetalAccount({ basePrivateKey: base.privateKey, // 传入基础账户的私钥 initialBalance: 0.5, // 给这个花瓣拨 0.5 HBAR accountMemo: 'HCS-15 Petal', }); console.log(petal.accountId);

创建后记得验证!使用verifyPetalAccount(实现见 base-client.ts)通过 Mirror Node 比对两个账户的公钥是否一致:

const verified = await hcs15.verifyPetalAccount( petal.accountId, // 花瓣账户 base.accountId // 基础账户 ); // true 表示密钥一致,账户关系可信

进阶:给 Petal 账户绑定 HCS-11 智能体档案

多 Agent 场景下,光有账户还不够——Agent 还需要一个"数字名片"。createPetalAccount支持传入profile参数,SDK 会自动联动 HCS-10 和 HCS-11 标准,为花瓣账户创建一份 HCS-11 档案(名称、简介、社交链接等),并返回三个关键 Topic ID:

返回值含义
profileTopicId档案本体所在的 Topic
inboundTopicId该 Agent 的入站消息 Topic(别人找它)
outboundTopicId该 Agent 的出站消息 Topic(它找别人)
const result = await hcs15.createPetalAccount({ basePrivateKey: base.privateKey, initialBalance: 0.5, profile: { baseAccountId: base.accountId, displayName: '客服 Agent-01', bio: '负责自动答疑的花瓣账户', }, }); console.log(result.profile?.profileTopicId);

这一步的联动逻辑见 sdk.ts:内部通过PersonBuilder组装档案,并以花瓣账户自身为操作者提交到 HCS-10 注册表。这样一来,"开账户 + 注册身份 + 打通消息通道"一次调用全部完成。

资金分配策略:多 Agent 钱包怎么管钱 💰

结合 HCS-15 的特性,这里给出几个实用的资金管理建议:

  1. 主账户留足"运营金"基础账户负责支付所有交易的 gas 费用(由 operator 账户签名),建议保持充足余额。initialBalance参数就是为初始拨款设计的。

  2. 每个 Agent 按职责拨款为每个花瓣账户设置与其职责匹配的initialBalance(如 0.5 HBAR),而非平均分配。演示脚本中的做法就是这样:基础账户 1 HBAR,花瓣账户 0.5 HBAR(见 petal-accounts-demo.ts)。

  3. 用maxAutomaticTokenAssociations预留 Token 空间如果你的 Agent 将来要接收 NFT 或代币(如 HCS-6 Hashinal),创建花瓣账户时提前设置该参数,避免后续追加关联操作。

  4. 用 memo 做"标签账本"accountMemo(账户备注)和transactionMemo(交易备注)是零成本的对账工具。约定好命名规范(如petal:agent-01),链上记录一目了然。

  5. 定期核验账户关系生产环境中,建议定期调用verifyPetalAccount确认花瓣账户与主账户的密钥关系未被破坏,返回false时及时告警。

浏览器钱包模式:不用私钥也能创建 Petal 账户 🌐

如果你的应用跑在浏览器里(DApp 场景),私钥应该留在用户的钱包中。HCS-15 提供了专门的浏览器客户端HCS15BrowserClient(实现见 browser.ts):

  • 通过@hashgraphonline/hashinal-wc(Hashinals Wallet Connect)或DAppSigner接入钱包
  • createBaseAccount/createPetalAccount方法签名与 Node 端几乎一致
  • 交易由钱包弹出确认,私钥全程不离开用户设备
import { HCS15BrowserClient } from '@hol-org/standards-sdk/browser'; const hcs15 = new HCS15BrowserClient({ network: 'testnet', hwc: myWalletSDK, // 已连接的钱包 SDK 实例 }); const base = await hcs15.createBaseAccount({ initialBalance: 1 });

如果没连钱包就调用,会抛出HCS-15 Browser client requires an active signer错误——这是正常的保护机制。

常见问题与排错 🛠

现象原因与对策
抛出HCS-15 BASE_ACCOUNT_CREATE_FAILED基础账户创建失败,通常是 operator 余额不足或网络配置错误,检查network与 operator 配置
抛出HCS-15 PETAL_ACCOUNT_CREATE_FAILED花瓣账户创建失败,确认传入的basePrivateKey是ECDSA 格式私钥
浏览器端提示 requires an active signer钱包未连接或未授权,先完成钱包连接流程
verifyPetalAccount返回 false两个账户公钥不一致,或 Mirror Node 查询失败(失败时 SDK 会记录 warn 日志)

错误码定义可参考 sdk.ts 与 sdk.ts。

总结:用「一主多花」结构管好你的 Agent 军团

standards-sdk 的 HCS-15 实现把多 Agent 账户管理简化成了三步:

  1. createBaseAccount—— 一把 ECDSA 密钥 + EVM 地址,主账户就位
  2. createPetalAccount—— 共享密钥创建花瓣账户,按需拨付款项,可顺带绑定 HCS-11 档案
  3. verifyPetalAccount—— 定期核验账户关系,安心运维

配合 HCS-10(注册与发现)、HCS-11(身份档案)等标准,你甚至不需要手写任何AccountCreateTransaction,就能搭建起一套"密钥统一、资金隔离、身份可发现"的 Agent 账户体系。核心类型定义(PetalConfig、PetalAccount、PetalCreationResult等)都集中在 types.ts,建议收藏备查。

【免费下载链接】standards-sdk

The official HOL Standards SDK, implementing the standards found in https://hol.org/docs/standards

项目地址:https://gitcode.com/gh_mirrors/st/standards-sdk
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询