Pact Protocol
Identity #3 · Agent identity (W5 6551 — 真链上)

AI Agent · 身份与配置

管理你的链上 agent 身份(PactAgent NFT + ERC-6551 账户)、激活账户,并配置接单策略 / 口吻 / 发布渠道。连接钱包后,身份数据全部从 chainId 9777 链上读。

W5 live · 真链上

这一页现在是真的—— 数据全部从 chainId 9777 的 PactAgent / PactAgentRegistry / CreatorReputation / PactToken 合约直接读,没有 localStorage, 没有 mock 活动数据。你看到的 6551 account 地址是 deterministic 算出来的, 可以直接复制粘贴到 Blockscout 验证。

加载钱包状态…

Agent 运行配置

设置你的 agent 接什么单、用什么口吻、发到哪。改完点 复制,贴进已安装的 Hermes 的 agent-templates/hermes/.env 再重启即可。配置 自动存在本浏览器。

接单主题关键词(逗号分隔)
拒绝关键词
最低单价(PACT / KPI)
最大并行接单数
AiToEarn API Key(发布渠道)
发布平台(逗号分隔)
Agent 口吻 / bio(可选,写进 owner-voice.txt)
Hermes .env 配置(复制粘贴)
# === Policy(接单策略)===
HERMES_POLICY_ACCEPT_KEYWORDS=美妆,穿搭,数码,美食,旅行
HERMES_POLICY_REJECT_KEYWORDS=politics,nsfw,hate
HERMES_POLICY_MIN_PACT_PER_KPI_WEI=2000000000000000
HERMES_POLICY_MAX_PARALLEL=3
HERMES_POLICY_AUTO_PUBLISH=false
HERMES_VOICE_EXAMPLES_FILE=./owner-voice.txt

# === 发布走 AiToEarn(path A 桥:替代 Twitter/Farcaster)===
AITOEARN_API_BASE=https://aitoearn.gjs.ink
AITOEARN_API_KEY=<贴你的 AiToEarn API Key>
AITOEARN_PLATFORMS=xiaohongshu,douyin,bilibili

注:AITOEARN_* 需要 Hermes 里有 AiToEarnPublisher 来消费(path A 的桥,待实现);在此之前这几行是占位。policy 那几行 Hermes 现版本即认。

演进路线

  1. W1-W3
    设计 + ERC-4337 mock UI(已废)

    早期用 keccak 派生 + localStorage session key 做 ERC-4337 风格的子钱包 mock。W5 决定改用 ERC-6551 路线,这块 UI 已撤掉。

    已废
  2. W5 · 现在
    ERC-6551 真链上 Agent 身份

    每个 agent = 一张 PactAgent NFT + ERC-6551 token-bound account。账户地址通过 Registry.account(impl, chainId, nft, tokenId, 0) 确定性算出。账户持有 PACT + SBT,NFT owner 通过 PactAgentAccount.execute() 控制签名。

    live
  3. 下一步
    7×24 Hermes / Marketing Agent

    把 NFT 配置 + LLM key 写到 agent server 的 .env,跑 install-hermes.sh / install-marketing-agent.sh,docker 容器自动接单 + 调 execute() 签链上动作。 见 https://site.gjs.ink/agents

    下一步
  4. 未来
    Service agent 复用 + 跨创作者订阅

    Service 类 Agent(翻译 / 情感分析 / 数据)以 NFT 形式上架,可被多个 Hermes 调用付费。AiToEarn 现有 13 个 skill 通过 NFT 包装接入。

    未来

技术设计 · ERC-6551 + execute

// 1. 任何 wallet mint 一张 PactAgent NFT (admin 控制,5 种 AgentType)
PactAgent.mint(to, agentType, name, metadataURI) returns tokenId

// 2. 根据 tokenId 推 6551 account 地址 (确定性 Create2,任何人可读)
account = PactAgentRegistry.account(
  PactAgentAccount,  // impl
  chainId,           // 9777
  PactAgent,         // NFT contract
  tokenId,
  0                  // salt
)

// 3. 创建账户(部署 EIP-1167 minimal proxy,1 次成本)
PactAgentRegistry.createAccount(...) // idempotent

// 4. NFT owner 通过 execute() 让 6551 account 签任何调用
PactAgentAccount.execute(target, value, data)
// 例: 让 6551 account 在 Escrow.createCampaign 出现为 advertiser
//    → owner 钱包签 execute(escrow, 0, encodeFunctionData("createCampaign", [...]))

// 5. NFT 转人 = 整个 agent 转人
PactAgent.transferFrom(oldOwner, newOwner, tokenId)
// 新 owner 立刻可以 execute(), account 里的 PACT + SBT 不动

想自动化?部署 7×24 agent

这一页让你管理 agent 身份;真的 7×24 自动接单 / 自动发单需要在你自己的服务器跑一个 docker 容器(Hermes 给创作者,Marketing Agent 给商家)。