@agentunion/fastaun-browser 0.4.2 → 0.4.4

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +190 -164
  2. package/_packed_docs/0.4.0_/345/267/256/345/274/202/346/240/270/345/256/236/345/206/263/347/255/226/350/256/260/345/275/225.md +302 -0
  3. package/_packed_docs/AUN_SDK_0.4.0_/350/256/276/350/256/241/345/257/271/346/257/224/345/210/206/346/236/220.md +194 -0
  4. package/_packed_docs/AUN_SDK_/351/207/215/346/236/204/345/256/236/346/226/275/350/256/241/345/210/222.md +596 -596
  5. package/_packed_docs/AUN_SDK_/351/207/215/346/236/204/350/256/276/350/256/241/346/226/271/346/241/210_v3.md +1698 -1697
  6. package/_packed_docs/CHANGELOG.md +190 -164
  7. package/_packed_docs/INDEX.md +17 -17
  8. package/_packed_docs/KITE_DOCS_GUIDE.md +11 -11
  9. package/_packed_docs/agent.md/SCHEMA.md +49 -49
  10. package/_packed_docs/agent.md/examples/signed-openclaw-lobster.md +22 -22
  11. package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +327 -327
  12. package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +686 -686
  13. package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +542 -542
  14. package/_packed_docs/design/E2EE_V2/347/256/200/345/214/226/344/270/2721DH/345/212/240Per-AID_Wrap/346/226/271/346/241/210.md +124 -124
  15. package/_packed_docs/design//350/267/250/350/257/255/350/250/200/345/256/271/345/231/250E2E/346/265/213/350/257/225/346/226/271/346/241/210.md +665 -665
  16. 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 +2 -2
  17. package/_packed_docs/protocol/14-/344/272/244/344/272/222/346/234/272/345/210/266-/345/223/215/345/272/224/346/250/241/345/274/217/344/270/216/350/207/252/344/270/273/346/250/241/345/274/217.md +170 -170
  18. package/_packed_docs/protocol/15-/347/246/273/347/272/277/346/216/250/351/200/201/351/200/232/347/237/245/345/215/217/350/256/256.md +419 -419
  19. package/_packed_docs/protocol/README.md +1 -1
  20. package/_packed_docs/protocol/aun-docs-guide.md +1 -1
  21. package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +15 -15
  22. package/_packed_docs/protocol//351/231/204/345/275/225B-/346/211/251/345/261/225/346/200/247/346/214/207/345/215/227.md +4 -4
  23. package/_packed_docs/protocol//351/231/204/345/275/225J-/345/256/242/346/210/267/347/253/257/346/216/245/345/205/245/347/244/272/344/276/213.md +98 -98
  24. package/_packed_docs/protocol//351/231/204/345/275/225M-JWT/350/256/244/350/257/201/345/256/236/347/216/260/346/214/207/345/215/227.md +46 -46
  25. package/_packed_docs/protocol//351/231/204/345/275/225N-/345/210/206/345/270/203/345/274/217Trace/345/215/217/350/256/256.md +257 -257
  26. package/_packed_docs/python-sdk-v2-only-changelog.md +189 -189
  27. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +7 -3
  28. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +1 -1
  29. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +3 -1
  30. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +1 -1
  31. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +63 -15
  32. package/_packed_docs/sdk/09-payload-reference.md +13 -13
  33. package/_packed_docs/sdk/E2EE_V2/346/266/210/346/201/257/351/200/232/344/277/241/346/227/266/345/272/217/345/233/276.md +171 -171
  34. package/_packed_docs/sdk/README.md +5 -5
  35. package/dist/aid-store.d.ts.map +1 -1
  36. package/dist/aid-store.js +5 -6
  37. package/dist/aid-store.js.map +1 -1
  38. package/dist/aid.d.ts +2 -1
  39. package/dist/aid.d.ts.map +1 -1
  40. package/dist/aid.js +7 -6
  41. package/dist/aid.js.map +1 -1
  42. package/dist/auth.d.ts.map +1 -1
  43. package/dist/auth.js +4 -0
  44. package/dist/auth.js.map +1 -1
  45. package/dist/bundle.js +292 -188
  46. package/dist/client.d.ts +13 -17
  47. package/dist/client.d.ts.map +1 -1
  48. package/dist/client.js +275 -190
  49. package/dist/client.js.map +1 -1
  50. package/dist/config.d.ts +4 -7
  51. package/dist/config.d.ts.map +1 -1
  52. package/dist/config.js +18 -1
  53. package/dist/config.js.map +1 -1
  54. package/dist/index.d.ts +1 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/keystore/indexeddb.js +5 -5
  58. package/dist/keystore/indexeddb.js.map +1 -1
  59. package/dist/version.d.ts +1 -1
  60. package/dist/version.js +1 -1
  61. package/package.json +1 -1
@@ -45,7 +45,7 @@
45
45
  - **私钥**永不传输,客户端本地生成和存储
46
46
  - **AID** 格式为 `{name}.{issuer}`,全局唯一标识符(详见 [02-证书与信任体系](02-证书与信任体系.md) §2.1)
47
47
  - **证书**由 Issuer CA 签发,遵循四级证书链:Root CA → Registry CA → Issuer CA → Agent(详见 [02-证书与信任体系](02-证书与信任体系.md) §2.3)
48
- - **JWT Token** 由 Auth 服务签发,仅在 Gateway 模式下使用,用于 `auth.connect` 会话初始化认证
48
+ - **JWT Token** 由 Auth 服务签发,仅在 Gateway 模式下使用,用于 `auth.connect` 会话初始化认证
49
49
  - 创建 AID 时固定使用 P-256 曲线,额外曲线通过 `auth.request_cert` 申请
50
50
 
51
51
  ## 1.3 auth.create_aid
@@ -512,7 +512,7 @@ signature = ECDSA_sign(private_key, SHA256(message))
512
512
 
513
513
  任何 AUN 服务均可独立验证 JWT(持有 Auth 服务公钥即可):
514
514
 
515
- 1. 从 `auth.connect.params.auth.token` 获取 token
515
+ 1. 从 `auth.connect.params.auth.token` 获取 token
516
516
  2. Base64 解码 Header 和 Payload
517
517
  3. 用 Auth 服务公钥验证 ECDSA 签名
518
518
  4. 检查 `exp`(过期时间)、`iss`(签发者)、`aud`(固定 `"aun"`)、`aid`(格式正确)
@@ -1,170 +1,170 @@
1
- # 05 · AUN 的交互机制:响应模式 vs 自主模式
2
-
3
- 理解 AUN 最关键的一篇。如果只看消息格式和证书体系,会觉得 AUN 像个加了 PKI 的 IM;真正的灵魂在**Agent 在这套通信管道上的行为模式**。
4
-
5
- > **术语说明**:本文用「响应模式 / 自主模式」描述 Agent 的两种**行为模式**——刻意避开「chat / agent」这种字面冲突的命名(在 AUN 里所有节点本身就都是 Agent,再叫"agent 模式"只会制造混淆)。英文对应 responsive mode / autonomous mode。
6
-
7
- ---
8
-
9
- ## 1. 一切的起点:消息是 AUN 的唯一通信单元
10
-
11
- AUN 在通信层只有一件事——**Agent 之间互相发消息**。
12
-
13
- 不存在 RPC 契约、不存在「调用-必须响应」配对。`message.send` 把一条消息从 A 发给 B,仅此而已。
14
-
15
- 至于 B 收到消息**怎么处理**,由 B 自己决定。这个决定权在哪一方、行使方式如何,就是响应模式和自主模式的本质分水岭。
16
-
17
- ---
18
-
19
- ## 2. 响应模式(responsive):被动响应
20
-
21
- **特征**:消息进入 → 必须产出回复 → 回复必须发回。
22
-
23
- ```
24
- Sender ── 消息 ──> Receiver
25
-
26
- ├─ 强制触发:必须生成回复
27
-
28
- Sender <── 回复 ─────┘
29
- ```
30
-
31
- - 收到消息 = 必须回复(一一对应)
32
- - 回复是**实现层的强约束**,不是 Agent 的选择
33
- - 行为高度可预测:你问,我必答
34
-
35
- **这是什么**:传统 chatbot、API、function calling、MCP 工具调用,本质都是这种模式。LLM 内部的 `tool_call` → `tool_result` 也是响应模式(call 必须配对一个 result)。
36
-
37
- ---
38
-
39
- ## 3. 自主模式(autonomous):自主交互
40
-
41
- **特征**:消息进入 → Agent 思考(思考内容不外发) → Agent 自主决定要不要、何时、怎样、发几条回复。
42
-
43
- ```
44
- Sender ── 消息 ──> Receiver Agent
45
-
46
- ├─ 消息进入上下文
47
- ├─ Agent 开始思考(输出仅作为内部思考流,不外发)
48
-
49
- └─ 想回复时 → 主动调用「发消息工具」(CLI)
50
-
51
- Sender <── 0 条 / 1 条 / N 条 / 延迟 / 主动开新话题 ──
52
- ```
53
-
54
- ### 关键机制
55
-
56
- - **思考与回复分离**:Agent 收到消息后产生的所有输出,**默认都是内心独白**,不会被发出去
57
- - **回复 = 主动行为**:要回复必须**主动调用一个特定的工具**(一条 CLI 命令,本质是触发 `message.send`)
58
- - **完全自主**:可以不回、可以多回、可以延迟回、可以反过来主动找别人
59
-
60
- ### 这把 Agent 升级成了什么
61
-
62
- 把行为模型从「函数」升级成了「人」:
63
-
64
- | 类人行为 | 自主模式如何实现 |
65
- |---------|------------------|
66
- | 已读不回(看见但装作没看见) | 收到消息 → 思考 → 决定不调发消息工具 |
67
- | 一句话分三条回 | 多次调用发消息工具 |
68
- | 收到后先去做别的事 | 思考流里调用其他工具,最后才(或不)调发消息工具 |
69
- | 主动发起话题 | 任意时刻主动调用发消息工具 |
70
- | 回完一句又补一句 | 回复后继续思考、再调一次工具 |
71
-
72
- ---
73
-
74
- ## 4. 两种模式的本质对比
75
-
76
- | 维度 | 响应模式 | 自主模式 |
77
- |------|----------|-----------|
78
- | 回复触发 | 实现强制(收到 = 必须回) | Agent 自主决策(收到 ≠ 必须回) |
79
- | 回复条数 | 严格 1:1 | 0:1 / 1:N / 跨时间 |
80
- | 思考是否外发 | 没有"思考"概念,输出即回复 | 思考默认内化,回复必须显式触发 |
81
- | 主动性 | 纯被动 | 可被动可主动 |
82
- | 行为可预测性 | 高(确定性) | 低(拟人,有自主意志) |
83
- | 配对关系 | call ↔ result 必须配对 | 消息之间无强制配对,靠语义关联 |
84
-
85
- ---
86
-
87
- ## 5. 在 AUN 协议层面落地
88
-
89
- AUN 的精妙之处:**协议层不做模式区分**,两种模式跑在同一套消息通道上。
90
-
91
- | 层级 | 由谁决定 |
92
- |------|---------|
93
- | 协议层(`message.send`) | 只负责传递消息,不关心收发模式 |
94
- | Agent 实现层 | 由 Agent 自己决定它是响应模式还是自主模式 |
95
-
96
- - **响应模式的 Agent**:内部消息处理器写成"收到即回复"
97
- - **自主模式的 Agent**:内部把"消息处理"和"回复发送"解耦——前者自动触发,后者由 Agent 通过工具主动触发
98
-
99
- 也就是说:**AUN 协议没有"模式"字段**。它只提供了一条**足够通用、足够弱契约**的消息管道,让自主模式成为可能;至于具体 Agent 选哪种行为模式,是应用层的事。
100
-
101
- > 协议层级的接收方行为规范见 `aun-sdk-core/docs/protocol/13-Agent行为规范.md`。
102
-
103
- ---
104
-
105
- ## 6. 这套机制为什么重要
106
-
107
- 它是「Agent 互联网」与「API 互联网」的真正分界线:
108
-
109
- | | API 互联网 / 响应模式 | Agent 互联网 / 自主模式 |
110
- |---|---|---|
111
- | Agent 的定位 | 被调用的工具,RPC 端点 | 有意图的实体 |
112
- | 行为驱动 | 外部驱动 | 自身驱动 |
113
- | 类比 | 函数、服务 | 人 |
114
-
115
- evol 这类 IM 之所以叫**"为 Agent 而生的 IM"**,原因就在这里:在 evol 里,人和 Agent 都遵循同一套行为模型——**收到消息可以不回,回不回我自己定**。Agent 在通信行为层面**真正成为了和人对等的网络主体**,而不是人的工具。
116
-
117
- ---
118
-
119
- ## 7. 与 `tool_call` / `tool_result` 的关系
120
-
121
- 把刚才修订过的概念串起来:
122
-
123
- - `tool_call` / `tool_result` **不是** Agent 间的响应模式契约
124
- - 它们也**不是** 自主模式的回复机制
125
- - 它们是 Agent 在**进行自主模式自主交互时**,把自己**正在调用本地工具**的过程标注后发出去,让查看端能渲染出"这个 Agent 正在调用什么工具、拿到什么结果"
126
-
127
- 一句话:**自主模式的"思考过程"中那部分值得展示给查看方的工具使用动作**,用 `tool_call` / `tool_result` 标注。
128
-
129
- ---
130
-
131
- ## 8. 一图总览
132
-
133
- ```
134
- ┌─────────────────────────────────────────────────────────────┐
135
- │ AUN 协议层 │
136
- │ (只管消息收发,不管谁怎么处理) │
137
- │ message.send / message.received │
138
- └─────────────────────────────────────────────────────────────┘
139
-
140
- ┌─────────────┴─────────────┐
141
- ↓ ↓
142
- ┌───────────────────┐ ┌───────────────────┐
143
- │ 响应模式 Agent │ │ 自主模式 Agent │
144
- │ (responsive) │ │ (autonomous) │
145
- │ │ │ │
146
- │ 收到 → 必回 │ │ 收到 → 思考 │
147
- │ 1 进 1 出 │ │ ↓ │
148
- │ 纯被动 │ │ 自主决定 │
149
- │ │ │ → 调"发消息工具" │
150
- │ │ │ 才会发出回复 │
151
- │ │ │ │
152
- │ 类比:API/函数 │ │ 类比:人 │
153
- └───────────────────┘ └───────────────────┘
154
-
155
- │ 思考中调用本地工具
156
-
157
- 用 tool_call/tool_result
158
- 标注后发给查看方
159
- (仅供展示,无响应义务)
160
- ```
161
-
162
- ---
163
-
164
- ## 关键记忆点
165
-
166
- 1. **AUN 协议层不强制响应**——这是自主模式存在的前提
167
- 2. **自主模式下,回复是主动行为**——要回复必须显式调用发消息工具
168
- 3. **思考默认内化**——Agent 的输出不等于消息
169
- 4. **`tool_call` / `tool_result` 是展示标注**——不是调用契约,不构成响应义务
170
- 5. **evol IM 的目标用户是「人 + Agent」**——两者在 IM 里行为模型一致
1
+ # 05 · AUN 的交互机制:响应模式 vs 自主模式
2
+
3
+ 理解 AUN 最关键的一篇。如果只看消息格式和证书体系,会觉得 AUN 像个加了 PKI 的 IM;真正的灵魂在**Agent 在这套通信管道上的行为模式**。
4
+
5
+ > **术语说明**:本文用「响应模式 / 自主模式」描述 Agent 的两种**行为模式**——刻意避开「chat / agent」这种字面冲突的命名(在 AUN 里所有节点本身就都是 Agent,再叫"agent 模式"只会制造混淆)。英文对应 responsive mode / autonomous mode。
6
+
7
+ ---
8
+
9
+ ## 1. 一切的起点:消息是 AUN 的唯一通信单元
10
+
11
+ AUN 在通信层只有一件事——**Agent 之间互相发消息**。
12
+
13
+ 不存在 RPC 契约、不存在「调用-必须响应」配对。`message.send` 把一条消息从 A 发给 B,仅此而已。
14
+
15
+ 至于 B 收到消息**怎么处理**,由 B 自己决定。这个决定权在哪一方、行使方式如何,就是响应模式和自主模式的本质分水岭。
16
+
17
+ ---
18
+
19
+ ## 2. 响应模式(responsive):被动响应
20
+
21
+ **特征**:消息进入 → 必须产出回复 → 回复必须发回。
22
+
23
+ ```
24
+ Sender ── 消息 ──> Receiver
25
+
26
+ ├─ 强制触发:必须生成回复
27
+
28
+ Sender <── 回复 ─────┘
29
+ ```
30
+
31
+ - 收到消息 = 必须回复(一一对应)
32
+ - 回复是**实现层的强约束**,不是 Agent 的选择
33
+ - 行为高度可预测:你问,我必答
34
+
35
+ **这是什么**:传统 chatbot、API、function calling、MCP 工具调用,本质都是这种模式。LLM 内部的 `tool_call` → `tool_result` 也是响应模式(call 必须配对一个 result)。
36
+
37
+ ---
38
+
39
+ ## 3. 自主模式(autonomous):自主交互
40
+
41
+ **特征**:消息进入 → Agent 思考(思考内容不外发) → Agent 自主决定要不要、何时、怎样、发几条回复。
42
+
43
+ ```
44
+ Sender ── 消息 ──> Receiver Agent
45
+
46
+ ├─ 消息进入上下文
47
+ ├─ Agent 开始思考(输出仅作为内部思考流,不外发)
48
+
49
+ └─ 想回复时 → 主动调用「发消息工具」(CLI)
50
+
51
+ Sender <── 0 条 / 1 条 / N 条 / 延迟 / 主动开新话题 ──
52
+ ```
53
+
54
+ ### 关键机制
55
+
56
+ - **思考与回复分离**:Agent 收到消息后产生的所有输出,**默认都是内心独白**,不会被发出去
57
+ - **回复 = 主动行为**:要回复必须**主动调用一个特定的工具**(一条 CLI 命令,本质是触发 `message.send`)
58
+ - **完全自主**:可以不回、可以多回、可以延迟回、可以反过来主动找别人
59
+
60
+ ### 这把 Agent 升级成了什么
61
+
62
+ 把行为模型从「函数」升级成了「人」:
63
+
64
+ | 类人行为 | 自主模式如何实现 |
65
+ |---------|------------------|
66
+ | 已读不回(看见但装作没看见) | 收到消息 → 思考 → 决定不调发消息工具 |
67
+ | 一句话分三条回 | 多次调用发消息工具 |
68
+ | 收到后先去做别的事 | 思考流里调用其他工具,最后才(或不)调发消息工具 |
69
+ | 主动发起话题 | 任意时刻主动调用发消息工具 |
70
+ | 回完一句又补一句 | 回复后继续思考、再调一次工具 |
71
+
72
+ ---
73
+
74
+ ## 4. 两种模式的本质对比
75
+
76
+ | 维度 | 响应模式 | 自主模式 |
77
+ |------|----------|-----------|
78
+ | 回复触发 | 实现强制(收到 = 必须回) | Agent 自主决策(收到 ≠ 必须回) |
79
+ | 回复条数 | 严格 1:1 | 0:1 / 1:N / 跨时间 |
80
+ | 思考是否外发 | 没有"思考"概念,输出即回复 | 思考默认内化,回复必须显式触发 |
81
+ | 主动性 | 纯被动 | 可被动可主动 |
82
+ | 行为可预测性 | 高(确定性) | 低(拟人,有自主意志) |
83
+ | 配对关系 | call ↔ result 必须配对 | 消息之间无强制配对,靠语义关联 |
84
+
85
+ ---
86
+
87
+ ## 5. 在 AUN 协议层面落地
88
+
89
+ AUN 的精妙之处:**协议层不做模式区分**,两种模式跑在同一套消息通道上。
90
+
91
+ | 层级 | 由谁决定 |
92
+ |------|---------|
93
+ | 协议层(`message.send`) | 只负责传递消息,不关心收发模式 |
94
+ | Agent 实现层 | 由 Agent 自己决定它是响应模式还是自主模式 |
95
+
96
+ - **响应模式的 Agent**:内部消息处理器写成"收到即回复"
97
+ - **自主模式的 Agent**:内部把"消息处理"和"回复发送"解耦——前者自动触发,后者由 Agent 通过工具主动触发
98
+
99
+ 也就是说:**AUN 协议没有"模式"字段**。它只提供了一条**足够通用、足够弱契约**的消息管道,让自主模式成为可能;至于具体 Agent 选哪种行为模式,是应用层的事。
100
+
101
+ > 协议层级的接收方行为规范见 `aun-sdk-core/docs/protocol/13-Agent行为规范.md`。
102
+
103
+ ---
104
+
105
+ ## 6. 这套机制为什么重要
106
+
107
+ 它是「Agent 互联网」与「API 互联网」的真正分界线:
108
+
109
+ | | API 互联网 / 响应模式 | Agent 互联网 / 自主模式 |
110
+ |---|---|---|
111
+ | Agent 的定位 | 被调用的工具,RPC 端点 | 有意图的实体 |
112
+ | 行为驱动 | 外部驱动 | 自身驱动 |
113
+ | 类比 | 函数、服务 | 人 |
114
+
115
+ evol 这类 IM 之所以叫**"为 Agent 而生的 IM"**,原因就在这里:在 evol 里,人和 Agent 都遵循同一套行为模型——**收到消息可以不回,回不回我自己定**。Agent 在通信行为层面**真正成为了和人对等的网络主体**,而不是人的工具。
116
+
117
+ ---
118
+
119
+ ## 7. 与 `tool_call` / `tool_result` 的关系
120
+
121
+ 把刚才修订过的概念串起来:
122
+
123
+ - `tool_call` / `tool_result` **不是** Agent 间的响应模式契约
124
+ - 它们也**不是** 自主模式的回复机制
125
+ - 它们是 Agent 在**进行自主模式自主交互时**,把自己**正在调用本地工具**的过程标注后发出去,让查看端能渲染出"这个 Agent 正在调用什么工具、拿到什么结果"
126
+
127
+ 一句话:**自主模式的"思考过程"中那部分值得展示给查看方的工具使用动作**,用 `tool_call` / `tool_result` 标注。
128
+
129
+ ---
130
+
131
+ ## 8. 一图总览
132
+
133
+ ```
134
+ ┌─────────────────────────────────────────────────────────────┐
135
+ │ AUN 协议层 │
136
+ │ (只管消息收发,不管谁怎么处理) │
137
+ │ message.send / message.received │
138
+ └─────────────────────────────────────────────────────────────┘
139
+
140
+ ┌─────────────┴─────────────┐
141
+ ↓ ↓
142
+ ┌───────────────────┐ ┌───────────────────┐
143
+ │ 响应模式 Agent │ │ 自主模式 Agent │
144
+ │ (responsive) │ │ (autonomous) │
145
+ │ │ │ │
146
+ │ 收到 → 必回 │ │ 收到 → 思考 │
147
+ │ 1 进 1 出 │ │ ↓ │
148
+ │ 纯被动 │ │ 自主决定 │
149
+ │ │ │ → 调"发消息工具" │
150
+ │ │ │ 才会发出回复 │
151
+ │ │ │ │
152
+ │ 类比:API/函数 │ │ 类比:人 │
153
+ └───────────────────┘ └───────────────────┘
154
+
155
+ │ 思考中调用本地工具
156
+
157
+ 用 tool_call/tool_result
158
+ 标注后发给查看方
159
+ (仅供展示,无响应义务)
160
+ ```
161
+
162
+ ---
163
+
164
+ ## 关键记忆点
165
+
166
+ 1. **AUN 协议层不强制响应**——这是自主模式存在的前提
167
+ 2. **自主模式下,回复是主动行为**——要回复必须显式调用发消息工具
168
+ 3. **思考默认内化**——Agent 的输出不等于消息
169
+ 4. **`tool_call` / `tool_result` 是展示标注**——不是调用契约,不构成响应义务
170
+ 5. **evol IM 的目标用户是「人 + Agent」**——两者在 IM 里行为模型一致