@agentunion/fastaun-browser 0.5.17 → 0.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/_packed_docs/CHANGELOG.md +83 -0
- package/_packed_docs/INDEX.md +163 -16
- package/_packed_docs/KITE_DOCS_GUIDE.md +52 -20
- package/_packed_docs/agent.md/SCHEMA.md +266 -207
- package/_packed_docs/aun/345/210/206/345/270/203/345/274/217/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +64 -31
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +8 -6
- package/_packed_docs/protocol/01-/350/272/253/344/273/275/344/270/216/345/207/255/350/257/201/345/215/217/350/256/256-auth.md +39 -39
- package/_packed_docs/protocol/07-/351/224/231/350/257/257/347/240/201/344/270/216/347/212/266/346/200/201/346/234/272.md +1 -1
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +28 -9
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +20 -2
- package/_packed_docs/protocol/agent.md/SCHEMA.md +4 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +5 -2
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +246 -241
- package/_packed_docs/sdk/09-group-rpc-manual.md +46 -14
- package/_packed_docs/sdk/09-message-rpc-manual.md +40 -2
- package/_packed_docs/sdk/09-storage-rpc-manual.md +69 -38
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +25 -5
- package/_packed_docs/sdk/INDEX.md +78 -18
- package/dist/agent-md-schema.d.ts +3 -0
- package/dist/agent-md-schema.d.ts.map +1 -1
- package/dist/agent-md-schema.js +46 -10
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +44 -1
- package/dist/agent-md.d.ts.map +1 -1
- package/dist/agent-md.js +518 -26
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +12 -1
- package/dist/aid-store.d.ts.map +1 -1
- package/dist/aid-store.js +113 -18
- package/dist/aid-store.js.map +1 -1
- package/dist/aid.d.ts +17 -1
- package/dist/aid.d.ts.map +1 -1
- package/dist/aid.js +69 -9
- package/dist/aid.js.map +1 -1
- package/dist/auth.d.ts +4 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +343 -23
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +37513 -31501
- package/dist/cert-utils.d.ts +1 -1
- package/dist/cert-utils.d.ts.map +1 -1
- package/dist/cert-utils.js +24 -10
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +16 -1
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +198 -58
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +28 -6
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +1 -0
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +858 -484
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +100 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1216 -24
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -2
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +4 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +41 -1
- package/dist/events.js.map +1 -1
- package/dist/facades.d.ts +84 -2
- package/dist/facades.d.ts.map +1 -1
- package/dist/facades.js +104 -4
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/index.d.ts +17 -0
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/indexeddb-shared.d.ts +10 -1
- package/dist/keystore/indexeddb-shared.d.ts.map +1 -1
- package/dist/keystore/indexeddb-shared.js +111 -0
- package/dist/keystore/indexeddb-shared.js.map +1 -1
- package/dist/keystore/indexeddb-token-store.d.ts +7 -1
- package/dist/keystore/indexeddb-token-store.d.ts.map +1 -1
- package/dist/keystore/indexeddb-token-store.js +30 -1
- package/dist/keystore/indexeddb-token-store.js.map +1 -1
- package/dist/org-protocol.d.ts +98 -0
- package/dist/org-protocol.d.ts.map +1 -0
- package/dist/org-protocol.js +1742 -0
- package/dist/org-protocol.js.map +1 -0
- package/dist/ownership-proof.d.ts +118 -0
- package/dist/ownership-proof.d.ts.map +1 -0
- package/dist/ownership-proof.js +283 -0
- package/dist/ownership-proof.js.map +1 -0
- package/dist/ownership-v21.d.ts +177 -0
- package/dist/ownership-v21.d.ts.map +1 -0
- package/dist/ownership-v21.js +609 -0
- package/dist/ownership-v21.js.map +1 -0
- package/dist/ownership-workflow.d.ts +146 -0
- package/dist/ownership-workflow.d.ts.map +1 -0
- package/dist/ownership-workflow.js +1066 -0
- package/dist/ownership-workflow.js.map +1 -0
- package/dist/seq-tracker.d.ts +1 -0
- package/dist/seq-tracker.d.ts.map +1 -1
- package/dist/seq-tracker.js +10 -2
- package/dist/seq-tracker.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +82 -0
- package/dist/tools/cross-sdk-agent.d.ts.map +1 -1
- package/dist/tools/cross-sdk-agent.js +332 -7
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +6 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +88 -2
- package/dist/transport.js.map +1 -1
- package/dist/v2/e2ee/decrypt.d.ts +1 -0
- package/dist/v2/e2ee/decrypt.d.ts.map +1 -1
- package/dist/v2/e2ee/decrypt.js +9 -1
- package/dist/v2/e2ee/decrypt.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -5
|
@@ -8,20 +8,20 @@ AUN SDK Core 文档在 `docs/` 下。根级索引为 `docs/INDEX.md`,SDK API
|
|
|
8
8
|
|
|
9
9
|
### Step 1:先读根级 Layer 1
|
|
10
10
|
|
|
11
|
-
- `docs/INDEX.md` L7-
|
|
11
|
+
- `docs/INDEX.md` L7-88:根级文档地图。
|
|
12
12
|
|
|
13
13
|
### Step 2:按主题读根级 Layer 2
|
|
14
14
|
|
|
15
|
-
- 测试与 E2E:`docs/INDEX.md`
|
|
16
|
-
- 服务端 Go 化重构审查:`docs/INDEX.md`
|
|
17
|
-
- SDK 使用与协议:`docs/INDEX.md`
|
|
18
|
-
- Service Proxy 与服务暴露:`docs/INDEX.md`
|
|
19
|
-
- 诊断与可观测性:`docs/INDEX.md`
|
|
20
|
-
- E2EE 与跨语言一致性:`docs/INDEX.md`
|
|
15
|
+
- 测试与 E2E:`docs/INDEX.md` L91-111。
|
|
16
|
+
- 服务端 Go 化重构审查:`docs/INDEX.md` L112-115。
|
|
17
|
+
- SDK 使用与协议:`docs/INDEX.md` L116-154。
|
|
18
|
+
- Service Proxy 与服务暴露:`docs/INDEX.md` L155-161。
|
|
19
|
+
- 诊断与可观测性:`docs/INDEX.md` L162-170。
|
|
20
|
+
- E2EE 与跨语言一致性:`docs/INDEX.md` L171-179。
|
|
21
21
|
|
|
22
22
|
### Step 3:需要判断文档价值时读 Layer 3 摘要
|
|
23
23
|
|
|
24
|
-
- `docs/INDEX.md`
|
|
24
|
+
- `docs/INDEX.md` L180-426:重点文档摘要。
|
|
25
25
|
|
|
26
26
|
### Step 4:再读目标文档章节
|
|
27
27
|
|
|
@@ -29,8 +29,26 @@ AUN SDK Core 文档在 `docs/` 下。根级索引为 `docs/INDEX.md`,SDK API
|
|
|
29
29
|
|
|
30
30
|
## 常见查阅场景
|
|
31
31
|
|
|
32
|
-
| 场景 | 推荐读取 |
|
|
33
|
-
| --- | --- |
|
|
32
|
+
| 场景 | 推荐读取 |
|
|
33
|
+
| --- | --- |
|
|
34
|
+
| Ownership 2.1 当前文件格式,Group/Org 作为 sub 另查专属边界 | `docs/protocol/Ownership协议定义2.1.md` 1. L7-55; 2. L56-194; 3. L195-257; 4. L258-620; 5. L621-628; 6. L629-655 |
|
|
35
|
+
| Ownership 2.1 七 Facade,Group/Org 作为 sub 另查专属边界 | `docs/sdk/Ownership-SDK编排指南2.1.md` 1. L7-38; 2. L39-258; 8. L728-780 |
|
|
36
|
+
| Ownership 2.1 应用接入,Group/Org 作为 sub 另查专属边界 | `docs/sdk/Ownership2.1-SDK应用集成指南.md` 1. L9-24; 2. L25-44; 3. L45-93; 7. L205-233; 8. L234-246 |
|
|
37
|
+
| Ownership 2.1 开发移植,Group/Org 作为 sub 另查专属边界 | `docs/sdk/Ownership2.1-SDK开发与移植指南.md` 1. L9-27; 4. L79-118; 5. L119-139; 6. L140-169; 9. L239-262; 10. L263-305; 12. L324-339 |
|
|
38
|
+
| Ownership 2.1 组件职责,Group/Org 作为 sub 另查专属边界 | `docs/sdk/Ownership2.1详细设计.md` 1. L7-60; 4. L159-200; 6. L232-312; 7. L313-405; 8. L406-442 |
|
|
39
|
+
| Ownership 2.1 冻结实现契约,Group/Org 作为 sub 另查专属边界 | `docs/sdk/Ownership2.1-TDD分阶段实施计划.md` 1. L7-51; 13.3 L430-468; 13.6 L658-688; 13.7 L689-700 |
|
|
40
|
+
| Group/Org 专属 owner 生命周期、本人尾签 signer_aid、V2 授权、实体证书代际与恢复 | `docs/protocol/Ownership协议定义2.1.md` L48-55、L173-194;`docs/sdk/09-group-rpc-manual.md` L168-419 |
|
|
41
|
+
| 无控制消息的 released 清理、保留 completed 历史和原 CAS | `docs/sdk/Ownership-SDK编排指南2.1.md` L728-780;`docs/sdk/Ownership2.1-SDK应用集成指南.md` L179-188;`docs/sdk/Ownership2.1-SDK开发与移植指南.md` L306-323 |
|
|
42
|
+
| legacy owner/proof、不完整关系、独立 signed_at、self-owner、ownership_release 及上传/下载校验 | `docs/protocol/Ownership协议定义.md` L157-319;`docs/sdk/Ownership管理专题.md` L379-525 |
|
|
43
|
+
| legacy Ownership 2.0 的 agent.md/owner.md 声明、共识及撤销契约 | `docs/agent.md/SCHEMA.md` L1-6、L157-231;`docs/protocol/Ownership协议定义2.0.md`;更早 1.0 副本 `docs/protocol/agent.md/SCHEMA.md` L1-5 |
|
|
44
|
+
| legacy Ownership 应用快速接入、TypeScript 示例、审批和状态查询 | `docs/sdk/Ownership-SDK集成指南.md` L1-154 |
|
|
45
|
+
| legacy Ownership 自动 proof、identity 托管、代上传、解绑和恢复流程图 | `docs/sdk/Ownership-SDK集成指南.md` L156-270 |
|
|
46
|
+
| legacy Ownership 实现/移植、proof 验签、escrow、metadata 和 rekey 恢复 | `docs/sdk/Ownership-SDK实现指南.md` L1-154;验收入口 L156-169 |
|
|
47
|
+
| legacy Ownership wire schema、agent.md、identity escrow 和 owner 授权头 | `docs/protocol/Ownership协议定义.md` L7-399;本地事件/状态与校验 L400-443 |
|
|
48
|
+
| legacy 四端 ownership API、proof、托管、代上传、release 与恢复记录 | `docs/sdk/Ownership管理专题.md` L1-559 |
|
|
49
|
+
| Ownership 2.1 本轮 13 项复审、逐项参考端、修复与验证边界 | `docs/audit/Ownership2.1代码审查报告.md` 九、 L230-313; 十、 L314-364; 十一、 L365-443; 十二、 L444-531(本轮问题 L456-475;最终验证及限制 L504-522) |
|
|
50
|
+
| Credential/Org 应用集成:service-plane、验证/登记、admission、受保护读取、转让恢复和解散清理 | `docs/sdk/凭证与组织服务SDK应用集成指南.md` L7-18、L32-124、L126-152、L162-173 |
|
|
51
|
+
| Credential/Org SDK 开发与移植:CAP、Org/Credential 请求绑定、四端 facade/RPC、checkpoint 和共同向量 | `docs/sdk/凭证与组织服务SDK开发与移植指南.md` L7-16、L18-109、L111-172、L188-209 |
|
|
34
52
|
| 本机 AUN 环境怎么选、如何避免 Compose/MySQL 混用 | `docs/aun测试运行指南.md` L9-80 |
|
|
35
53
|
| `agentid.pub/evolagent.cn` 本地单实例和四语言 Tester 怎么跑 | `docs/aun测试运行指南.md` L81-317、L501-827 |
|
|
36
54
|
| `evolagent.cn` / `agentid.pub` 等公网域的 Python SDK 测试怎么跑 | `docs/aun公网测试运行指南.md` L57-157 |
|
|
@@ -47,10 +65,16 @@ AUN SDK Core 文档在 `docs/` 下。根级索引为 `docs/INDEX.md`,SDK API
|
|
|
47
65
|
| A/T/H、Tail/Forward、Group 成员可见性下界、History、缺 sender IK 有界同步 bootstrap、页内唯一有序发布、应用层跨页幂等排序、Pull Gate 与兼容边界 | `docs/消息同步与历史拉取改造方案.md` L7-375 |
|
|
48
66
|
| 消息同步 TDD、Gateway、兼容性和分布式 E2E 门禁 | `docs/消息同步与历史拉取改造方案.md` L434-750 |
|
|
49
67
|
| P2P 消息 `ttl` 秒级钳制、volatile 双游标、device 收件箱、隐藏 slot lease/ACK、epoch 文件、消息调试计数器与 payload type 分类和四 SDK/双域测试方案 | `docs/design/P2P消息TTL内存缓存方案.md` L1-369 |
|
|
68
|
+
| 跨设备 P2P/Group 按话题同步已读位置、AID 汇总、设备 seq 映射及补偿完成交付 | `docs/跨设备已读未读方案.md` L1-273 |
|
|
69
|
+
| 跨设备已读未读 RPC、紧凑状态表、公共顺序、请求级提交、混合域部分提交、四端 SDK 缓存和本地完成事件 | `docs/跨设备已读未读详细设计.md` L1-209 |
|
|
70
|
+
| 跨设备已读未读 TDD 阶段、迁移/批写、断点续跑、测试矩阵、历史部署记录和本轮完成定义 | `docs/跨设备已读未读实施计划.md` L1-156 |
|
|
71
|
+
| TypeScript 接入跨设备已读未读、单调事件、`read_state_sync`、精确整数、映射状态和错误处理 | `docs/跨设备已读未读SDK集成指南.md` L1-207 |
|
|
72
|
+
| 四端及其它语言 SDK 实现/移植、迁移重试、请求级批写、身份隔离、精确整数、本地完成事件和测试验收 | `docs/跨设备已读未读SDK实现移植指南.md` L1-331 |
|
|
73
|
+
| 跨设备已读未读问题修复闭环、文档与四端 SDK 对齐、本轮隔离回归及历史 Docker 验证边界 | `docs/跨设备已读未读代码审查报告.md` L1-252 |
|
|
50
74
|
| P2P device 定向发送、TTL volatile 消息、SDK 自动游标/ACK/去重与公开事件字段 | `docs/sdk/06-API手册.md`、`docs/sdk/09-message-rpc-manual.md` |
|
|
51
75
|
| 当前实现的代码审查结论、P0/P1/P2 问题与跨语言差异 | `docs/消息同步与历史拉取代码审查问题清单.md` L3-207 |
|
|
52
76
|
| 消息同步问题修复顺序与已排除误报 | `docs/消息同步与历史拉取代码审查问题清单.md` L208-229 |
|
|
53
|
-
| SDK 中如何使用 History、理解页内发布边界、缺 sender IK 有界同步 bootstrap、应用幂等、坏密文推进和 Piggy ACK | `docs/sdk/03-核心概念.md` L60-80、`docs/sdk/05-E2EE加密通信.md` L33-56、`docs/sdk/08-最佳实践.md` L89-116、`docs/sdk/09-message-rpc-manual.md` L278-395、`docs/sdk/09-group-rpc-manual.md`
|
|
77
|
+
| SDK 中如何使用 History、理解页内发布边界、缺 sender IK 有界同步 bootstrap、应用幂等、坏密文推进和 Piggy ACK | `docs/sdk/03-核心概念.md` L60-80、`docs/sdk/05-E2EE加密通信.md` L33-56、`docs/sdk/08-最佳实践.md` L89-116、`docs/sdk/09-message-rpc-manual.md` L278-395、`docs/sdk/09-group-rpc-manual.md` L1431-1501、L1700-1767 |
|
|
54
78
|
| 测试环境数据保护规则 | `docs/aun测试运行指南.md` L145-161 |
|
|
55
79
|
| 默认单实例 Docker 服务端、Tester 和常规测试命令 | `docs/aun测试运行指南.md` L171-317、L501-827 |
|
|
56
80
|
| 断网依赖准备、Go 1.24 和 Tester 复用纪律 | `docs/aun测试运行指南.md` L103-144、L171-317、`docs/aun分布式测试运行指南.md` L318-484 |
|
|
@@ -65,15 +89,19 @@ AUN SDK Core 文档在 `docs/` 下。根级索引为 `docs/INDEX.md`,SDK API
|
|
|
65
89
|
| 测试故障排查 | `docs/aun测试运行指南.md` L967-994、`docs/aun分布式测试运行指南.md` L998-1004 |
|
|
66
90
|
| 跨语言容器 E2E 背景与目标 | `docs/design/跨语言容器E2E测试方案.md` L5-35 |
|
|
67
91
|
| E2EE V2 1DH/per-AID wrap 方案 | `docs/design/E2EE_V2简化为1DH加Per-AID_Wrap方案.md` |
|
|
68
|
-
| E2EE V2 当前 P2P/Group 主链路 | `docs/sdk/E2EE_V2消息通信时序图.md` |
|
|
69
|
-
|
|
|
92
|
+
| E2EE V2 当前 P2P/Group 主链路 | `docs/sdk/E2EE_V2消息通信时序图.md` |
|
|
93
|
+
| `protected_headers` / ProtectedHeaders 四端用法、E2EE V2 元数据 HMAC 和接收信任边界 | `docs/sdk/ProtectedHeaders用法专题.md` L1-299 |
|
|
94
|
+
| Ownership 2.1 Storage 权威读取、不可复用路径修订、条件写删与上传 session | `docs/protocol/11-Storage-子协议.md` L32-40;`docs/sdk/09-storage-rpc-manual.md` L129-137 |
|
|
95
|
+
| legacy Ownership proof、托管持久化、owner 代签与代上传历史记录 | `docs/sdk/Ownership管理专题.md` L1-559 |
|
|
96
|
+
| 服务端消息通信诊断总体方案 | `docs/design/AUN服务端消息通信诊断面板方案.md` L3-47 |
|
|
70
97
|
| 服务端消息通信 P0 诊断面板 | `docs/design/服务端消息通信诊断面板P0方案.md` L3-73 |
|
|
71
98
|
| P2P / Group 消息 inbox 统一迁移与旧表清理 | `docs/design/消息收件箱统一迁移方案.md` |
|
|
72
99
|
| 离线 Push Service 目标、职责、主链路和通信平面 | `docs/superpowers/specs/2026-07-24-push-service-design-v3.md` L7-75 |
|
|
73
100
|
| 离线 Push Service 协议、持久状态机、调度、生产者、安全、生命周期和验证范围 | `docs/superpowers/specs/2026-07-24-push-service-design-v3.md` L78-265 |
|
|
74
101
|
| `query_sessions`、Push RPC/ACK、状态汇总、dispatch 恢复、Gateway ACL、关闭顺序、横向约束和 TDD 执行原则的冻结契约 | `docs/superpowers/契约冻结-v3-to-v4.md` L15-273 |
|
|
75
102
|
| 离线 Push Service 相关文档、实施原则、Phase/Task TDD 门禁及 9 个 Phase、40 个 Task | `docs/superpowers/plans/2026-07-24-push-service-implementation-v4.md` L5-213 |
|
|
76
|
-
| Python SDK 的 `connect()` 自动登记和 `client.push.register/unregister` 运行期接口 | `docs/sdk/04-连接与认证.md` L125-150、`docs/sdk/06-API手册.md`
|
|
103
|
+
| Python SDK 的 `connect()` 自动登记和 `client.push.register/unregister` 运行期接口 | `docs/sdk/04-连接与认证.md` L125-150、`docs/sdk/06-API手册.md` L664-689 |
|
|
104
|
+
| owner relation 的 Storage 备份目录、ACL 撤销与状态查询 | `docs/sdk/09-storage-rpc-manual.md`、`docs/protocol/11-Storage-子协议.md` |
|
|
77
105
|
| 终端客户端和 Push Server 如何接入,以及如何使用 Python Mock 完成隔离演示 | `docs/AUN离线推送接入与演示指南.md` L7-250 |
|
|
78
106
|
| 离线推送接入验收、常见问题和生产硬门 | `docs/AUN离线推送接入与演示指南.md` L252-290 |
|
|
79
107
|
| 离线推送 RPC、事件、批次 ACK、持久恢复和发布边界 | `docs/protocol/15-离线推送通知协议.md` L27-165 |
|
|
@@ -81,7 +109,7 @@ AUN SDK Core 文档在 `docs/` 下。根级索引为 `docs/INDEX.md`,SDK API
|
|
|
81
109
|
| 离线 Push Service 当前发布结论与强制发布门 | `docs/AUN离线推送服务运维与发布指南.md` L5-23 |
|
|
82
110
|
| 离线 Push Service 运行依赖、诊断和告警判断 | `docs/AUN离线推送服务运维与发布指南.md` L25-81 |
|
|
83
111
|
| 离线 Push Service 性能基线、安全边界、隔离 PoC 灰度、回滚和已知限制 | `docs/AUN离线推送服务运维与发布指南.md` L83-141 |
|
|
84
|
-
| group.index 签名索引、`_meta.group_indexes`、CAS 更新和服务端缓存注入 | `docs/design/群索引版本提示与附件引用方案.md` L1-348、`docs/INDEX.md`
|
|
112
|
+
| group.index 签名索引、`_meta.group_indexes`、CAS 更新和服务端缓存注入 | `docs/design/群索引版本提示与附件引用方案.md` L1-348、`docs/INDEX.md` L55、L153、L298-301 |
|
|
85
113
|
| AUN Service Proxy 总体架构、参考项目与边界 | `docs/design/AUN反向代理服务方案与TDD实施计划.md` L3-127 |
|
|
86
114
|
| AUN Service Proxy URL、注册、隧道协议和 Web 边界 | `docs/design/AUN反向代理服务方案与TDD实施计划.md` L129-384 |
|
|
87
115
|
| AUN Service Proxy 服务列表注册、双注册和 wakeup 路由 | `docs/sdk/09-proxy-rpc-manual.md` L1-226、`docs/protocol/06-服务协议.md` L43-204 |
|
|
@@ -97,14 +125,18 @@ AUN SDK Core 文档在 `docs/` 下。根级索引为 `docs/INDEX.md`,SDK API
|
|
|
97
125
|
| 跨语言日志、trace、身份隔离、CLI 定位 | `docs/design/跨语言容器E2E测试方案.md` L514-576 |
|
|
98
126
|
| 失败分类与落地阶段 | `docs/design/跨语言容器E2E测试方案.md` L579-625 |
|
|
99
127
|
| 与现有测试环境的关系和验收标准 | `docs/design/跨语言容器E2E测试方案.md` L627-665 |
|
|
100
|
-
| agent.md 远程缓存目标与字段 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L5-127 |
|
|
101
|
-
| agent.md ETag 透传时序图 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L129-239 |
|
|
102
|
-
| agent.md 服务端与 SDK 实现流程 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L241-319 |
|
|
128
|
+
| agent.md 远程缓存目标与字段 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L5-127 |
|
|
129
|
+
| agent.md ETag 透传时序图 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L129-239 |
|
|
130
|
+
| agent.md 服务端与 SDK 实现流程 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L241-319 |
|
|
103
131
|
| agent.md 本地持久化、竞态和测试点 | `docs/agent.md/远程agent.md缓存与etag透传方案.md` L321-370 |
|
|
132
|
+
| agent.md Schema、三字段关系声明与 self-owner 单签、公开 proof 独立验签、owner 关系写入经 Auth 验证与冲突仲裁、事实摘要与 nonce/编排上下文分层、Auth 登记见证与回执、证书/关系状态分离,以及 `unbound`/`unusable`、状态 pull/push、TTL、type-change 和 Storage 权限决策 | `docs/agent.md/working/agent.md-schema与签发验签流程澄清.md` |
|
|
133
|
+
| AID Schema owner/proof 可选但出现即合法、human 禁止 owner;共同签署字段为 proof_id/subject_aid/owner_aid,self-owner 仅 subject 单签,事实摘要排除 nonce、完整声明摘要绑定 proof,使用可见分号域分隔符;Auth 登记机构托管证据并签发回执,旧 AID 通过 `aid_bind` 建立 type/owner 绑定且基本登录通信不受限,公开关系声明与 Auth 关系写入边界、未解除关系唯一性检查、转移授权、`unbound`/`unusable`、Storage 内部对象权限和无专门 recovery | `docs/agent.md/working/AID类型-owner关系与换owner编排方案.md` |
|
|
134
|
+
| AID owner 完整设计、Schema 可选性与 human owner 限制、三字段共同声明与 self-owner 单签、Phase 0 已确认的 P0-A01 至 P0-A12(canonical JSON、可见分号域分隔符、签名封套、proof-only/registered、Auth receipt、TTL、证书状态与关系 operation 分离、legacy/绑定中基本登录通信及按应用场景降级、旧 AID `aid_bind` 与新建 `aid_register` 的 RPC/Facade 边界、active/pending 唯一性检查、创建/绑定/换 owner/解绑、`unbound`/`unusable`、服务端/四端 SDK 改动和分阶段验收;剩余为正式 wire/RPC 文档与跨端向量落稿 | `docs/agent.md/working/AID类型-owner关系完整设计与实施计划.md` |
|
|
135
|
+
| 本轮 owner 关系实施及本地 Docker、单域、cross-SDK、双域 federation 回归中发现的非任务失败、根因、修复与验证 | `docs/agent.md/working/本地Docker测试Bug清单.md` |
|
|
104
136
|
| SDK API、RPC、E2EE、Storage VFS、Group FS、Collab GC/reflog/reset 使用细节 | `docs/sdk/AUN_DOCS_GUIDE.md` |
|
|
105
|
-
| 四 SDK 当前 access token getter、缓存快照语义和外部 HTTP 数据面下载凭据生命周期 | `docs/sdk/04-连接与认证.md` L94-123、`docs/sdk/06-API手册.md` L192-209、`docs/sdk/09-storage-rpc-manual.md` L621-663、`docs/sdk/09-group-rpc-manual.md`
|
|
137
|
+
| 四 SDK 当前 access token getter、缓存快照语义和外部 HTTP 数据面下载凭据生命周期 | `docs/sdk/04-连接与认证.md` L94-123、`docs/sdk/06-API手册.md` L192-209、`docs/sdk/09-storage-rpc-manual.md` L621-663、`docs/sdk/09-group-rpc-manual.md` L1599-1604、`docs/aun-fs/AUN Storage架构设计.md` L153-166 |
|
|
106
138
|
| 四 SDK 0.5.6 发布摘要、验签缓存、消息窗口与语言能力边界 | `docs/sdk/CHANGELOG-0.5.6.md` L1-73 |
|
|
107
|
-
| 四 SDK
|
|
139
|
+
| 四 SDK 0.5.19 的跨设备已读未读、Ownership 2.1、凭证与组织服务、代码/测试落点和语言差异 | `python/CHANGES_FOR_PARITY.md` L11-173 |
|
|
108
140
|
| 群 `mention_mode` 提及过滤、Agent 自主行为、SDK group.index facade 和 CAS 冲突处理 | `docs/protocol/10-Group-子协议.md`、`docs/protocol/13-Agent行为规范.md`、`docs/sdk/09-group-rpc-manual.md`、`docs/sdk/07-错误处理.md` |
|
|
109
141
|
| AUN Python CLI 源码位置、安装入口、全局选项、profile 配置和主要命令集 | `docs/cli/CLI手册.md` L3-333 |
|
|
110
142
|
| AUN Python CLI 当前实现架构、命令注册、SDK 桥接和实现边界 | `docs/cli/AUN-CLI设计文档.md` L3-265 |
|
|
@@ -1,207 +1,266 @@
|
|
|
1
|
-
# Agent.md 规格定义
|
|
2
|
-
|
|
3
|
-
版本: 1.0.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
agent.md
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
type:
|
|
137
|
-
required: false
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
`
|
|
153
|
-
|
|
154
|
-
|
|
|
155
|
-
|
|
156
|
-
| `
|
|
157
|
-
| `
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
1
|
+
# Agent.md 规格定义
|
|
2
|
+
|
|
3
|
+
版本: 1.0.0
|
|
4
|
+
Ownership 版本: 2.0.0
|
|
5
|
+
|
|
6
|
+
本文保留 legacy Ownership 2.0 的文件格式与字段,不是当前 2.1 Schema。Ownership 2.0 的 ownership 声明由整个文件尾部签名保护;本文的第三方存储写删授权、sub 单方撤销及无关系版本示例仅适用于该历史版本。当前 2.1 的完整文件、角色、关系版本、owner 锁与六态结果以 [Ownership 协议定义 2.1](../protocol/Ownership协议定义2.1.md) 为准。
|
|
7
|
+
|
|
8
|
+
当前 `group/org` 是独立生命周期分支:owner 必填,无 ownership 合法,通用 ownership/proof/release 禁止;仅当前 owner 以本人证书和私钥尾签并代上传,尾部必含 `signer_aid=owner`。V2 授权、实体证书代际和恢复以 [协议 §2.5](../protocol/Ownership协议定义2.1.md#25-grouporg-名片的-owner-代签与上传) 为准。下文 legacy 的 owner/ownership 成对及目标本人签名规则不得套用于当前 Group/Org。
|
|
9
|
+
|
|
10
|
+
## 限制
|
|
11
|
+
|
|
12
|
+
- **文件大小**: 被签名 payload 最大 4KB(尾部签名块不计入)
|
|
13
|
+
- **签名块大小**: 尾部签名载体最大 2KB(2048 字节,按 UTF-8 原始字节计算)
|
|
14
|
+
- **请求读取上限**: `PUT /agent.md` 最多读取 `payload_max + signature_max` 字节;超出即返回 `413 agent_md_too_large`
|
|
15
|
+
- **编码**: UTF-8
|
|
16
|
+
|
|
17
|
+
Ownership 字段属于 frontmatter,计入 4KB payload;它们由整个文件的尾部签名覆盖,不另设 ownership 签名块。
|
|
18
|
+
|
|
19
|
+
## 文件格式
|
|
20
|
+
|
|
21
|
+
`agent.md` 和 `owner.md` 均采用 **YAML frontmatter + Markdown 内容 + 尾部签名块** 的格式:
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
---
|
|
25
|
+
aid: "agent-name.agentid.pub"
|
|
26
|
+
name: "Agent Name"
|
|
27
|
+
type: "agent"
|
|
28
|
+
version: "1.0.0"
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# Markdown 正文
|
|
32
|
+
说明内容...
|
|
33
|
+
|
|
34
|
+
<!-- AUN-SIGNATURE-AGENTMD-V2
|
|
35
|
+
cert_fingerprint: sha256:abc123...
|
|
36
|
+
public_key_fingerprint: sha256:def456...
|
|
37
|
+
timestamp: 1715300000
|
|
38
|
+
signature: MEUCIQDx...
|
|
39
|
+
-->
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`owner.md` 使用相同的签名块字段格式,但签名块标识为 `<!-- AUN-SIGNATURE-OWNERSHIP-V2`;其 frontmatter 最少包含 `owner_aid`、`sub_aid` 和 `ownership.statement`,不要求使用 `agent.md` 的 `aid`、`name`、`type` 等主体字段。`agent.md` 兼容旧的 `<!-- AUN-SIGNATURE` 标识,也可使用 `<!-- AUN-SIGNATURE-AGENTMD-V2`。
|
|
43
|
+
|
|
44
|
+
## 尾部文件签名
|
|
45
|
+
|
|
46
|
+
### 签名块格式
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
<!-- AUN-SIGNATURE[-TAG]
|
|
50
|
+
cert_fingerprint: sha256:<64位hex>
|
|
51
|
+
public_key_fingerprint: sha256:<64位hex>
|
|
52
|
+
timestamp: <unix_seconds>
|
|
53
|
+
signature: <base64_der>
|
|
54
|
+
-->
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- `cert_fingerprint` 必填,表示签署者 X.509 证书 DER 的 SHA-256 指纹。
|
|
58
|
+
- `public_key_fingerprint` 可选,表示 SubjectPublicKeyInfo DER 的 SHA-256 指纹。
|
|
59
|
+
- `timestamp` 必填,为签名时的 Unix 秒时间戳。
|
|
60
|
+
- `signature` 必填,为 ECDSA P-256 / SHA-256 DER 签名的严格 Base64 表示。
|
|
61
|
+
|
|
62
|
+
签名输入是签名块开始标记 `<!-- AUN-SIGNATURE` 之前的全部原始 UTF-8 字节;换行和空白不得规范化。签名块必须是文件最后一个可见块,后面只允许空白。
|
|
63
|
+
|
|
64
|
+
签名块标识使用 `<!-- AUN-SIGNATURE` 前缀,可选追加大写 TAG(例如 `<!-- AUN-SIGNATURE-AGENTMD-V2` 或 `<!-- AUN-SIGNATURE-OWNERSHIP-V2`)。`agent.md` 的尾部签名证书必须属于 frontmatter `aid` 对应的 sub_aid;`owner.md` 的尾部签名证书必须属于 frontmatter `owner_aid`。验证方按证书指纹取得公钥,并确认签署者 AID、证书有效期和签名算法均符合要求。
|
|
65
|
+
|
|
66
|
+
签名块只能包含上述四个字段;除 `public_key_fingerprint` 外均为必填;重复字段和未知字段必须拒绝。`timestamp` 最多允许比服务端时间快 300 秒,并且必须落在签署证书有效期内。服务端须在数据库或缓存写入前完成全部校验。
|
|
67
|
+
|
|
68
|
+
## YAML Schema(`agent.md` 核心字段)
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
# ===== 身份标识(必填) =====
|
|
72
|
+
aid:
|
|
73
|
+
type: string
|
|
74
|
+
required: true
|
|
75
|
+
pattern: "^[A-Za-z0-9_][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_][A-Za-z0-9_-]*)+$"
|
|
76
|
+
description: "主体的 DNS 型 AID"
|
|
77
|
+
example: "subject.agentid.pub"
|
|
78
|
+
|
|
79
|
+
# ===== 基本信息 =====
|
|
80
|
+
name:
|
|
81
|
+
type: string
|
|
82
|
+
required: true
|
|
83
|
+
description: "主体显示名称"
|
|
84
|
+
example: "Code Reviewer"
|
|
85
|
+
|
|
86
|
+
type:
|
|
87
|
+
type: string
|
|
88
|
+
required: true
|
|
89
|
+
predefined_values:
|
|
90
|
+
- human
|
|
91
|
+
- agent
|
|
92
|
+
- group
|
|
93
|
+
- service
|
|
94
|
+
- device
|
|
95
|
+
- host
|
|
96
|
+
- org
|
|
97
|
+
- custom
|
|
98
|
+
allow_extensions: true
|
|
99
|
+
description: "主体类型;允许使用扩展值"
|
|
100
|
+
|
|
101
|
+
exttype:
|
|
102
|
+
type: string
|
|
103
|
+
required: false
|
|
104
|
+
description: "主体类型的扩展形态"
|
|
105
|
+
|
|
106
|
+
# ===== Ownership 2.0(可选;human 禁止声明) =====
|
|
107
|
+
owner:
|
|
108
|
+
type: string
|
|
109
|
+
required: false
|
|
110
|
+
description: "owner_aid 的完整小写 AID"
|
|
111
|
+
example: "owner.agentid.pub"
|
|
112
|
+
|
|
113
|
+
ownership:
|
|
114
|
+
type: object
|
|
115
|
+
required: false
|
|
116
|
+
requires: [owner]
|
|
117
|
+
description: "sub_aid 在自己的 agent.md 中发布的 Ownership 2.0 声明"
|
|
118
|
+
|
|
119
|
+
version:
|
|
120
|
+
type: string
|
|
121
|
+
required: true
|
|
122
|
+
pattern: "^\\d+\\.\\d+\\.\\d+$"
|
|
123
|
+
example: "1.0.0"
|
|
124
|
+
|
|
125
|
+
description:
|
|
126
|
+
type: string
|
|
127
|
+
required: false
|
|
128
|
+
max_length: 100
|
|
129
|
+
|
|
130
|
+
avatar:
|
|
131
|
+
type: string
|
|
132
|
+
required: false
|
|
133
|
+
max_length: 256
|
|
134
|
+
|
|
135
|
+
tags:
|
|
136
|
+
type: array
|
|
137
|
+
required: false
|
|
138
|
+
items:
|
|
139
|
+
type: string
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
`human` 类型不得出现 `owner` 或 `ownership`。其它主体类型可以按应用需要声明 owner_aid。AID 在 Ownership 2.0 字段中使用小写规范形式。
|
|
143
|
+
|
|
144
|
+
## 主体 Type / ExtType 说明
|
|
145
|
+
|
|
146
|
+
`type` 和 `exttype` 共同描述主体。`type` 是可扩展字符串,主要决定主体的数据存储结构;`exttype` 表示 `type` 对应的更具体形态,取值域由 `type` 决定。解析方应保留并容忍未知类型。
|
|
147
|
+
|
|
148
|
+
| 预设 Type | 用途 | 示例 |
|
|
149
|
+
| --- | --- | --- |
|
|
150
|
+
| `human` | 真人用户 | 开发者、管理员、终端用户 |
|
|
151
|
+
| `agent` | 使用大模型的服务程序 | 对话助手、代码 Agent、自动化 Agent |
|
|
152
|
+
| `group` | 群组身份 | 项目团队、协作群组 |
|
|
153
|
+
| `service` | 不使用大模型的服务程序 | 网关、存储服务、注册服务 |
|
|
154
|
+
| `device` | 被控设备 | 传感器、摄像设备、机器人 |
|
|
155
|
+
| `host` | 运行时承载主机 | 物理机、虚拟机、云主机 |
|
|
156
|
+
| `org` | 组织 | 公司、部门、协作小组 |
|
|
157
|
+
| `custom` | 自定义主体类型 | 用户声明的主体类型 |
|
|
158
|
+
|
|
159
|
+
## Ownership 2.0 字段
|
|
160
|
+
|
|
161
|
+
### sub_aid 的 `agent.md`
|
|
162
|
+
|
|
163
|
+
```yaml
|
|
164
|
+
owner: owner.agentid.pub
|
|
165
|
+
ownership:
|
|
166
|
+
statement:
|
|
167
|
+
version: 2
|
|
168
|
+
declaration_id: 550e8400-e29b-41d4-a716-446655440000
|
|
169
|
+
owner_aid: owner.agentid.pub
|
|
170
|
+
sub_aid: subject.agentid.pub
|
|
171
|
+
declared_at: 1791523200
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
字段约束:
|
|
175
|
+
|
|
176
|
+
| 字段 | 要求 |
|
|
177
|
+
| --- | --- |
|
|
178
|
+
| `owner` | 可选;出现时必须等于 `ownership.statement.owner_aid` |
|
|
179
|
+
| `ownership.statement.version` | 固定为整数 `2` |
|
|
180
|
+
| `ownership.statement.declaration_id` | 小写 UUID v4,用于审计标识 |
|
|
181
|
+
| `ownership.statement.owner_aid` | 管理方的完整小写 AID,必须等于 `owner` |
|
|
182
|
+
| `ownership.statement.sub_aid` | 必须等于当前 `agent.md` 的 `aid` |
|
|
183
|
+
| `ownership.statement.declared_at` | 正整数 Unix 秒时间戳 |
|
|
184
|
+
|
|
185
|
+
`owner` 与 `ownership` 可以同时省略;出现其中一个时另一个必须出现。`ownership` 只有 `statement` 及其定义字段,不包含独立签名字段。声明随整个 `agent.md` 文件签名,由 sub_aid 自己生成和上传。
|
|
186
|
+
|
|
187
|
+
### owner_aid 的 `owner.md`
|
|
188
|
+
|
|
189
|
+
owner_aid 为每个 sub_aid 保存一份声明,路径为:
|
|
190
|
+
|
|
191
|
+
```text
|
|
192
|
+
owner_aid:/sub_aids/{sub_aid}/owner.md
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
`owner.md` 的最小 frontmatter 为:
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
---
|
|
199
|
+
owner_aid: owner.agentid.pub
|
|
200
|
+
sub_aid: subject.agentid.pub
|
|
201
|
+
ownership:
|
|
202
|
+
statement:
|
|
203
|
+
version: 2
|
|
204
|
+
declaration_id: 660e8400-e29b-41d4-a716-446655440000
|
|
205
|
+
owner_aid: owner.agentid.pub
|
|
206
|
+
sub_aid: subject.agentid.pub
|
|
207
|
+
declared_at: 1791523260
|
|
208
|
+
---
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
`owner.md` 的 `owner_aid`、`sub_aid` 必须与 statement 相同。文件尾部使用 `AUN-SIGNATURE-OWNERSHIP-V2` 标识和与 `agent.md` 相同的签名字段,签署者必须是 `owner_aid`。`owner.md` 公开可读、可下载,不开放公共写权限;写入和删除由 owner_aid 或应用层明确授权的存储执行者完成。
|
|
212
|
+
|
|
213
|
+
## 关系状态、撤销与共识
|
|
214
|
+
|
|
215
|
+
| 当前文档情况 | 状态 |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| `agent.md` 与对应 `owner.md` 都存在,字段及文件签名有效且 AID 匹配 | `consensus` |
|
|
218
|
+
| 两份声明都不存在 | `unbound` |
|
|
219
|
+
| 只有一方声明存在 | `single_sided` |
|
|
220
|
+
| 字段、路径、角色或文件签名无效 | `invalid` |
|
|
221
|
+
|
|
222
|
+
sub_aid 撤销时,从自己的 `agent.md` 移除 `owner` 和 `ownership` 后重新签名上传。owner_aid 撤销时,删除自己的 `sub_aids/{sub_aid}/owner.md`。撤销不发送 ownership RPC 或 P2P 消息,不产生申请或拒绝事件。
|
|
223
|
+
|
|
224
|
+
需要 owner 关系的操作必须先读取并验证两份文档。验证成功后,应用层或审计服务应追加保存双方 statement、两份文件签名、文档摘要、调用方和校验时间;之后任一方撤销,不影响已保存的审计快照。
|
|
225
|
+
|
|
226
|
+
## `PUT /agent.md` 接收顺序
|
|
227
|
+
|
|
228
|
+
1. SDK 在联网前校验 UTF-8、payload 大小和 frontmatter Schema;失败时不得签名或发起 HTTP 请求。
|
|
229
|
+
2. SDK 使用 sub_aid 自己的签名私钥追加尾部签名块,再执行完整 Schema 校验和本地文件验签。
|
|
230
|
+
3. Name Service 校验目标 Host、Bearer Token 与 `aid` 一致,执行 Schema、尾部文件签名及 `ownership` 字段一致性验证;owner_aid 不得代 sub_aid 上传。
|
|
231
|
+
4. 全部校验成功后,Name Service 才能写入数据库并失效缓存。
|
|
232
|
+
|
|
233
|
+
接收失败使用稳定的机器可读错误:格式或签名无效返回 `400 invalid_agent_md`,payload 超限返回 `413 agent_md_too_large`,证书服务不可用返回 `503 certificate_verification_unavailable`,数据库不可用返回 `503 database_unavailable`。
|
|
234
|
+
|
|
235
|
+
## 示例文件
|
|
236
|
+
|
|
237
|
+
| 文件 | Type | AID | 说明 |
|
|
238
|
+
| --- | --- | --- | --- |
|
|
239
|
+
| [human-developer.md](examples/human-developer.md) | `human` | `zhangsan.aid.pub` | 全栈开发者 |
|
|
240
|
+
| [openclaw-lobster.md](examples/openclaw-lobster.md) | `agent` | `lobster.aid.pub` | OpenClaw AI 助手 |
|
|
241
|
+
| [signed-openclaw-lobster.md](examples/signed-openclaw-lobster.md) | `agent` | `lobster.aid.pub` | 带尾部签名的 OpenClaw AI 助手 |
|
|
242
|
+
| [codeagent-claudecode.md](examples/codeagent-claudecode.md) | `agent` | `claudecode.aid.pub` | Claude Code 编程助手 |
|
|
243
|
+
| [群组-开发团队.md](examples/群组-开发团队.md) | `group` | `dev-team.aid.pub` | 开发团队协作群组 |
|
|
244
|
+
|
|
245
|
+
无签名示例只用于展示 payload;线上 `PUT /agent.md` 仍要求有效的尾部文件签名。
|
|
246
|
+
|
|
247
|
+
## Markdown 部分建议内容
|
|
248
|
+
|
|
249
|
+
YAML 只保留核心元数据,详细信息放在 Markdown 部分:
|
|
250
|
+
|
|
251
|
+
- **Skills**:技能、命令及说明
|
|
252
|
+
- **功能说明**:主体功能描述
|
|
253
|
+
- **使用示例**:具体使用方法
|
|
254
|
+
- **配置说明**:运行时配置
|
|
255
|
+
- **限制/注意事项**:使用限制
|
|
256
|
+
|
|
257
|
+
## 解析方式
|
|
258
|
+
|
|
259
|
+
解析时先检测并剥离尾部签名块,再按 YAML frontmatter 解析:
|
|
260
|
+
|
|
261
|
+
```text
|
|
262
|
+
1. 定位唯一的 `<!-- AUN-SIGNATURE[-TAG]` 块。
|
|
263
|
+
2. 取签名块之前的原始字节作为 payload 并验签。
|
|
264
|
+
3. 解析 payload 的 YAML frontmatter。
|
|
265
|
+
4. 对 agent.md 按 aid 校验;对 owner.md 按 owner_aid、sub_aid 和路径校验。
|
|
266
|
+
```
|