简化版 IM
好的,给你一套「最简化」端到端逻辑:一条消息 → 去中心化节点处理(含链+AI)→ 路由到某个 Agent/个人 → 产出一条回复消息。只保留必要元素与最短路径,可直接做成 MVP 协议/PRD/原型。
0)总览(一句话)
消息是带签名与押金的“意图包”;在 p2p 网络里被 索引/路由节点抓取,选中一个执行者(Agent/个人);执行者在 沙箱里调用 AI与工具,把过程做成可验证执行日志;结果与结算凭证一起回到链上/会话里,生成一条带证明的回复消息。
1)最小消息模型(Message Envelope)
{
"msg_id": "uuid",
"thread_id": "uuid",
"parent_id": null,
"ts": 1731225600,
"sender_did": "did:akasha:alice",
"recipients": ["did:akasha:public#channel:build"],
"headers": {
"v": 1,
"ttl": 86400,
"content_hash": "sha256:...",
"content_ptr": "ipfs://... or matrix://...",
"lc": {"t": 27, "prev": "msg_id_of_prev", "sig": "ed25519:..."} // Verifiable Logic Clock
},
"intent": {
"type": "task", // task|qa|tx|search|compose
"goal": "做一个落地页并上线到 Vercel",
"budget": {"asset": "USDC", "amount": 150, "escrow_ref": null},
"sla": {"deadline_s": 21600, "acceptance": "链接可访问+Lighthouse 分数>85"},
"capabilities": ["web.deploy","write.copy","img.gen"],
"privacy": {"e2ee": true, "reveal_budget_range": [50,200]}
},
"staking": {"power_fee": 0.1, "credit_burn": 1.0, "nonce": 8421},
"sig": "ed25519:sender_signature"
}
解释:
- headers.lc 是最小可验证时钟(VLC);
- staking 里最小Power费与Credit销毁防垃圾;
- 内容本体走 content_ptr(IPFS/Matrix),信封里只放摘要。
2)最小网络结构(P2P)
- 角色:
- 入口节点(Edge):收发消息、加密、签名;
- 索引/路由节点(Indexers):做向量检索/关键词匹配,选执行者;
- 执行节点(Workers):运行 Agent VM 与工具;
- 结算观察者(Settlers):把最小状态写链(托管、回执、仲裁指针)。
- 入口节点(Edge):收发消息、加密、签名;
- 传输:libp2p/Matrix 之一;
- 定位:DHT + 主题哈希(channel/topic)+ 语义索引向量;
- 隐私:对话内容 E2EE;匹配用可选摘要/embedding(本地生成后仅上传向量)。
3)最小路由与分派(从消息到执行者)
- 验证:路由节点验证签名、配额、押金(power_fee ≥ 阈值)。
- 检索:对 intent.goal 做向量检索,得到候选执行者集合(Agent/人)。
- 选择(任选其一,MVP优先 A):
- A. 先到先得:第一个回应并锁定保证金的执行者中标;
- B. 轻量打分:score = 0.4*SLA历史 + 0.3*领域匹配 + 0.2*价格质量 + 0.1*与请求者Bond。
- A. 先到先得:第一个回应并锁定保证金的执行者中标;
- 锁定:执行者返回 ACCEPT,托管合约 escrow.create(intent) 被调用(由 Settler 批量写链)。
4)最小执行环境(Agent VM)
- 沙箱:容器化 + 能力令牌(Capability Token);
- 可用工具(MVP):web.fetch, llm.generate, git.push, vercel.deploy, wallet.pay;
- 过程日志(可验证执行日志,Proof-of-Execution, PoE):
{
"exec_id": "uuid",
"steps": [
{"t":1, "op":"llm.generate", "input_hash":"sha256:...", "output_hash":"sha256:...", "cost":0.02},
{"t":2, "op":"img.gen", "output_hash":"sha256:...", "cost":0.05},
{"t":3, "op":"vercel.deploy", "out":"https://...", "tx":"offchain:..."}
],
"merkle_root": "0xabc...",
"sig": "ed25519:worker_signature"
}
- 日志本体离链存储(IPFS),merkle_root 定期由 Settler 批上链(批量、省费)。
5)最小链上合约(只三件事)
- Registry:DID ↔ 公钥 / 信誉快照。
- Escrow:create(intent) → accept(executor) → deliver(hash) → confirm()/dispute();
- Reputation:update(executor, score_delta, reuse_delta)(简化为事件,由索引器消费刷新)。
所有其它东西(详细日志、文件、评审)离链存储,仅把必要指针与不可抵赖凭证上链。
6)最小回复消息(Result Envelope)
{
"msg_id": "uuid",
"thread_id": "same-as-input",
"parent_id": "input_msg_id",
"ts": 1731229200,
"sender_did": "did:akasha:agent:builderA",
"headers": {
"v": 1,
"content_hash": "sha256:result_bundle",
"content_ptr": "ipfs://result_bundle",
"lc": {"t": 28, "prev": "input_msg_id", "sig": "ed25519:..."}
},
"result": {
"status": "delivered",
"artifact": {"url": "https://site.example", "checksum": "sha256:..."},
"poe_root": "0xabc...",
"escrow_ref": "chain:escrow#0xE.../1234"
},
"invoice": {"amount": 150, "asset":"USDC", "address":"0x..."},
"sig": "ed25519:executor_signature"
}
客户端拿到后:
- 校验 poe_root 与离链日志一致;
- 一键 Confirm → escrow.confirm();或发起 Dispute → 走轻量仲裁。
7)最小状态机(从输入到输出)
Draft → Signed → Broadcast → Verified → (Matched|Rejected)
Matched → Escrowed → Executing → Delivered → (Confirmed|Disputed)
Confirmed → Settled → Reputation Updated → Thread Closed
8)最小经济与风控
- 反垃圾:每条消息最小 power_fee + 小额 credit_burn;新账号限额;设备指纹/关系图异常限流。
- 结算:默认托管;逾期自动线性罚没保证金(SLA 惩罚);提前交付非线性奖励。
- 信誉:rep += f(按时率) + g(复用度) − h(争议率);rep 直接影响后续所需保证金与排序。
9)最小交互(用户只需两步)
- 在聊天里发一条带 预算+SLA 的消息(上面的 Envelope 由客户端自动补齐并签名)。
- 收到带 成果+证明 的回复消息,点 确认 即结算;或点 申诉 进入轻仲裁。
10)一个极简示例(从一句话到结果)
- 输入消息(用户):今晚前给我做中文落地页,上线到 Vercel,预算 150 USDC。
- 路由节点:校验→检索→选中 builderA;Settler 调用 escrow.create;
- 执行:Agent VM 依次 llm.generate 文案 → img.gen 插图 → vercel.deploy;生成 poe_root;
- 输出消息(执行者):带站点链接、poe_root、escrow_ref;
- 用户点击确认:链上释放 150 USDC;信誉更新;会话内自动附上“可复用模板卡”。
这套“最简栈”可一周内做出跑通 Demo
- 客户端:Electron/React Native + 本地 AA 钱包(4337/MPC 二选一);
- 网络:libp2p + SQLite 索引(本地)+ 轻量向量检索(faiss/qdrant 皆可);
- 链适配:一个多签/托管合约 + 事件索引器(TheGraph/自建 listener);
- AI:可插 LLM 网关(自带 Key 或用户 Key),工具少而精;
- 存储:IPFS 网关 + S3 兼容桶;
- 批量上链:Settler 每 N 分钟把 Merkle Roots 与 Escrow 状态批写。
如果你愿意,我可以把以上直接改写成:协议草案(.md) + 合约最小接口(.sol) + 消息/执行日志 JSON Schema + 两个样例对话,便于团队开干。