@my-life-buddies/buddy-runtime 0.26.0 → 0.28.0-dev.0
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 +10 -0
- package/README.md +29 -1
- package/dist/conversation/agent.d.ts +3 -1
- package/dist/conversation/agent.d.ts.map +1 -1
- package/dist/conversation/agent.js +11 -3
- package/dist/conversation/agent.js.map +1 -1
- package/dist/conversation/index.d.ts +14 -3
- package/dist/conversation/index.d.ts.map +1 -1
- package/dist/conversation/index.js +107 -18
- package/dist/conversation/index.js.map +1 -1
- package/dist/conversation/mlbMessageAgentMessageConverter.d.ts +15 -0
- package/dist/conversation/mlbMessageAgentMessageConverter.d.ts.map +1 -1
- package/dist/conversation/mlbMessageAgentMessageConverter.js +30 -0
- package/dist/conversation/mlbMessageAgentMessageConverter.js.map +1 -1
- package/dist/conversation/readMLBMessages.d.ts +3 -2
- package/dist/conversation/readMLBMessages.d.ts.map +1 -1
- package/dist/conversation/readMLBMessages.js +17 -1
- package/dist/conversation/readMLBMessages.js.map +1 -1
- package/dist/conversation/writeMLBMessage.d.ts +3 -1
- package/dist/conversation/writeMLBMessage.d.ts.map +1 -1
- package/dist/conversation/writeMLBMessage.js +5 -3
- package/dist/conversation/writeMLBMessage.js.map +1 -1
- package/dist/instance.d.ts +2 -0
- package/dist/instance.d.ts.map +1 -0
- package/dist/instance.js +5 -0
- package/dist/instance.js.map +1 -0
- package/dist/mlbClient.d.ts +16 -8
- package/dist/mlbClient.d.ts.map +1 -1
- package/dist/mlbClient.js +68 -18
- package/dist/mlbClient.js.map +1 -1
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +2 -1
- package/dist/model.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +7 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/buddyRelationshipRequest.d.ts +11 -0
- package/dist/tools/buddyRelationshipRequest.d.ts.map +1 -0
- package/dist/tools/buddyRelationshipRequest.js +35 -0
- package/dist/tools/buddyRelationshipRequest.js.map +1 -0
- package/dist/tools/dataAccessRequest.d.ts.map +1 -1
- package/dist/tools/dataAccessRequest.js +5 -1
- package/dist/tools/dataAccessRequest.js.map +1 -1
- package/dist/types.d.ts +34 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -27,6 +27,16 @@
|
|
|
27
27
|
- 模型不收图片时的处理交给 pi-ai:图片块照样进历史,发请求前由 pi-ai 按模型条目换成它的占位文字,运行时不再自己换成「[图片:当前模型不支持看图]」
|
|
28
28
|
- 聊天记录卡里的图片条目在模型历史里多一行「[图片 #卡片编号/第几张]」标签
|
|
29
29
|
|
|
30
|
+
## 0.27.0(2026-10-12)
|
|
31
|
+
|
|
32
|
+
不兼容改动:无
|
|
33
|
+
|
|
34
|
+
### 新增
|
|
35
|
+
|
|
36
|
+
- `PlatformTools` 新增可选工具 `buddy_relationship_request`:群聊中发送全群可见的搭子名片,已添加的成员也可索取;发送后结束当前模型回合,私聊不可使用。
|
|
37
|
+
- `DatasetAccessResult` 新增 `relationshipRequired` 状态,表示目标成员尚未添加当前搭子,应先发送搭子名片引导添加。
|
|
38
|
+
- `memberId` 指定的目标成员原本未添加、随后完成添加时,通过 `relationshipResult` 开启新回合继续原任务;已添加时发送名片不触发新回合。
|
|
39
|
+
|
|
30
40
|
## 0.26.0(2026-10-12)
|
|
31
41
|
|
|
32
42
|
不兼容改动:有
|
package/README.md
CHANGED
|
@@ -73,7 +73,9 @@ await BuddyServer.start(() => ({
|
|
|
73
73
|
|
|
74
74
|
### 2.1 `BuddyServer.start(buddy)`
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
连接平台成功后,运行时上传数据访问声明和小挂件定义。初始化完成后开始处理消息,返回 `{ stop(): Promise<void> }`。
|
|
77
|
+
|
|
78
|
+
如果平台拒绝连接,启动失败,错误中保留平台返回的状态码和原因,不上传配置。网络连接失败时,运行时继续重试。
|
|
77
79
|
|
|
78
80
|
`buddy` 是每场会话建起来时调用一次的工厂函数,返回这场会话的配置,见 2.2、2.3。DataAccess 声明不属于会话工厂,单独写在工程根目录的 `data-access.json`,见 3.6。
|
|
79
81
|
|
|
@@ -81,6 +83,12 @@ await BuddyServer.start(() => ({
|
|
|
81
83
|
|
|
82
84
|
**buddy 的生命周期**:`buddy` 在每场会话收到第一条消息时调用一次。会话空闲 30 分钟被回收、或进程重启后,下一条消息会重新调用,所以闭包里的变量不能当长期存储,需要存储会话状态可以根据场景使用 3.5 记忆、3.7 小挂件实现。
|
|
83
85
|
|
|
86
|
+
**中断后续答**:如果平台支持恢复功能,运行时会在进程重启后继续处理待答输入。待答输入指需要回复、但尚无对应普通回复或等待卡的输入。等待卡包括问答卡、授权卡和搭子名片。运行时恢复历史和已保存的工具结果,再继续回答。普通回复或等待卡保存后,运行时不再自动补答对应输入。搭子工厂无需增加恢复逻辑。
|
|
87
|
+
|
|
88
|
+
设计说明见 [搭子会话重建](https://docs.xiaohongshu.com/doc/8dfb3750159ce499b156cd55bd20a950)。
|
|
89
|
+
|
|
90
|
+
托管环境的 `MLB_BUDDY_GENERATION` 自动随平台请求发送,用于拒绝旧实例的迟到写入。未配置时沿用本地开发方式。
|
|
91
|
+
|
|
84
92
|
**buddy 的会话压缩**:会话历史长到一定程度时,运行时在会话被回收后把早先的对话压成一份摘要写回平台,下次重建时模型看到的是「摘要 + 最近的原文」。开发者不用做任何事,也没有开关。
|
|
85
93
|
|
|
86
94
|
### 2.2 `BuddyOptions`
|
|
@@ -151,6 +159,7 @@ interface Conversation {
|
|
|
151
159
|
ask_question: AgentTool;
|
|
152
160
|
data_access_query: AgentTool;
|
|
153
161
|
data_access_request: AgentTool;
|
|
162
|
+
buddy_relationship_request?: AgentTool;
|
|
154
163
|
widget_create: AgentTool;
|
|
155
164
|
widget_read: AgentTool;
|
|
156
165
|
widget_read_module: AgentTool;
|
|
@@ -222,6 +231,7 @@ interface Conversation {
|
|
|
222
231
|
| 图片消息 | `conversation.image.send` | `send_image`(resources/ 里的文件或公网地址) |
|
|
223
232
|
| 记忆 | `conversation.memory` | 无,开发者可以根据具体场景,自己组装成适合的模型工具 |
|
|
224
233
|
| 用户授权数据 | `conversation.dataAccess.query` / `conversation.dataAccess.request` | `data_access_query` / `data_access_request` |
|
|
234
|
+
| 搭子关系 | 无 | `buddy_relationship_request` |
|
|
225
235
|
| 小挂件 | `conversation.widget.list` / `conversation.widget.create` / `conversation.widget.read` / `conversation.widget.readModule` / `conversation.widget.rename` / `conversation.widget.writeRecord` / `conversation.widget.deleteRecord` / `conversation.widget.setPresentation` / `conversation.widget.send` | `widget_create` / `widget_read` / `widget_read_module` / `widget_rename` / `widget_write_record` / `widget_delete_record` / `widget_send` |
|
|
226
236
|
| 主动服务 | `conversation.proactive.subscribe` / `list` / `unsubscribe` / `unsubscribeAll` / `isRunning` | `proactive_subscribe` / `proactive_list` / `proactive_unsubscribe` / `proactive_unsubscribe_all` |
|
|
227
237
|
|
|
@@ -730,6 +740,7 @@ data_access_query
|
|
|
730
740
|
| `available` | 读到了 |
|
|
731
741
|
| `notDeclared` | 搭子没有声明这项数据 |
|
|
732
742
|
| `notGranted` | 用户没有同意,或改过用途后还没重新同意 |
|
|
743
|
+
| `relationshipRequired` | 目标成员还没有添加当前搭子;群聊里可先发搭子名片 |
|
|
733
744
|
| `disabledInGroup` | 这位成员在这个群里关掉了这项数据 |
|
|
734
745
|
| `unavailable` | 平台上还没有这位用户的这项数据,或数据已过期 |
|
|
735
746
|
| `systemPermissionDenied` | 业务授权仍有效,但用户在系统设置中关闭了位置或日历权限 |
|
|
@@ -741,6 +752,7 @@ data_access_query
|
|
|
741
752
|
|
|
742
753
|
`dataAccess.request` 与 `data_access_request`:
|
|
743
754
|
|
|
755
|
+
- `relationshipRequired` 应先用 `buddy_relationship_request` 发搭子名片。
|
|
744
756
|
- 发卡前须在同一回合查过对应 Dataset 且结果为 `notGranted`;`systemPermissionDenied` 引导用户去系统设置,其余状态不发卡。
|
|
745
757
|
- 群聊里查询与发卡用同一个 `memberId`,取消息前缀里的 `#m_…`;卡片全群可见,只有目标成员能操作。
|
|
746
758
|
- 发卡后本回合结束。
|
|
@@ -764,6 +776,22 @@ data_access_query
|
|
|
764
776
|
- **不要把查到的数据往长期存的地方搬**。往 `memory` / `widget` / `proactive` 里写会被 Runtime 直接拒收;开发者工具未声明策略时按 `external` 拦截,声明为 `durable` / `external` 的工具既不能在已读数据后执行,也不能在自身执行过程中读取 DataAccess。直接绕过 Runtime 写文件或发网络请求不在工具 Gate 的控制范围内。
|
|
765
777
|
- 只有查询结果真正包含 `available + data` 时才进入敏感状态;`notGranted`、`unavailable`、`disabledInGroup`、`notDeclared` 只是状态,不会误封后续操作。
|
|
766
778
|
|
|
779
|
+
#### 搭子关系工具
|
|
780
|
+
|
|
781
|
+
`buddy_relationship_request` 用于群聊中目标成员明确索要名片,或尚未添加当前搭子而需要建立关系的情况。即使目标成员已经添加,也可以发送全群可见的名片;未添加的群成员可点击名片为自己添加搭子。只有 `memberId` 指定的目标成员原本未添加、随后完成添加时,平台才会用 `relationshipResult` 从持久历史开启新回合,继续原任务。已添加时名片仅供展示,不会触发新回合。发名片会结束当前回合,搭子不应轮询或在原回合等待用户操作;无需名片即可回答的问题应直接回答。私聊不可使用该工具。
|
|
782
|
+
|
|
783
|
+
```ts
|
|
784
|
+
await BuddyServer.start((conversation) => ({
|
|
785
|
+
initialState: {
|
|
786
|
+
model: "kimi-k3",
|
|
787
|
+
systemPrompt: "群成员明确索要名片,或尚未添加你而需建立关系时,用他的 memberId 发搭子名片。",
|
|
788
|
+
tools: [conversation.tools.data_access_query, conversation.tools.buddy_relationship_request!],
|
|
789
|
+
},
|
|
790
|
+
}));
|
|
791
|
+
```
|
|
792
|
+
|
|
793
|
+
`memberId` 必须来自群消息前缀里的 `#m_…`,传参时不带 `#`;`reason` 写目标成员添加后要继续完成的任务,长度为 1~300 字。
|
|
794
|
+
|
|
767
795
|
### 3.7 小挂件
|
|
768
796
|
|
|
769
797
|
小挂件是会话里一块给用户看的结构化面板,比如一份菜单。建小挂件、读整个或一个模块、改标题、写记录、删记录,并把它发进当前聊天,模型和开发者代码都能做。平台不提供删除整个小挂件或跨会话分享的能力。
|
|
@@ -11,7 +11,9 @@ export interface AgentDeps {
|
|
|
11
11
|
/** 发了一张等用户操作的卡(权限请求卡、题卡):这张卡算这一轮说过的话 */
|
|
12
12
|
onWaitingForUser: () => void;
|
|
13
13
|
/** shouldStopAfterTurn 让这一轮停下了(发了等用户操作的卡,或开发者的钩子回 true):index.ts 据此不再接着 continue */
|
|
14
|
-
onPolicyStop: () => void;
|
|
14
|
+
onPolicyStop: (waitingForUser?: boolean) => void;
|
|
15
|
+
/** 只交给本次模型请求的重建说明,不写进用户消息或会话历史。 */
|
|
16
|
+
recoveryNote?: () => string;
|
|
15
17
|
key: string;
|
|
16
18
|
buddyId: string;
|
|
17
19
|
client: MLBClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/conversation/agent.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEnG,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7D,OAAO,EAAyF,sBAAsB,EAAuB,MAAM,wBAAwB,CAAC;AAE5K,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/conversation/agent.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEnG,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7D,OAAO,EAAyF,sBAAsB,EAAuB,MAAM,wBAAwB,CAAC;AAE5K,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQrD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAA8B,eAAe,EAAE,iBAAiB,EAAiB,MAAM,aAAa,CAAC;AAE5I,MAAM,WAAW,SAAS;IACzB,mCAAmC;IACnC,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,oFAAoF;IACpF,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,uDAAuD;IACvD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACnD;AAED,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,gDAAgD;IAChD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,eAAe,EAAE,sBAAsB,CAAC;IACxC,iFAAiF;IACjF,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAEnH;AAED,kFAAkF;AAClF,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CA0OxE;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iHAAuB,CAAC;AAEtD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAErF;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQxD;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAa1D"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// 钩子叠加——开发者的 beforeToolCall / afterToolCall 包一层授权数据记账,beforeToolCall 抛错时打 warn 再抛给 pi(工具不执行,模型看到错误);
|
|
7
7
|
// 发了等用户操作的卡(权限请求卡、题卡)的那一轮,shouldStopAfterTurn 在这一步收尾后停下;其余直通;
|
|
8
8
|
// 主动服务回合本身不改变工具权限;DataAccess 数据策略仍照常生效,其他限制由开发者在 beforeToolCall 里按 conversation.proactive.isRunning() 自己拦;
|
|
9
|
-
// transformContext
|
|
9
|
+
// transformContext 由运行时自己装、不开放给开发者:请求模型时附加当前时间,重建时再附加待答输入说明,两者都不进会话历史;
|
|
10
10
|
// 每次请求模型的请求体全量打日志,图片换成字节数;响应收完再打一条「模型响应」:内容、结束原因、usage(含缓存命中)、总耗时与首字耗时。主动回合也一样。
|
|
11
11
|
// 不管:Agent 建好之后的事(回合、事件分发在 index.ts)。
|
|
12
12
|
import { Agent } from "@earendil-works/pi-agent-core";
|
|
@@ -25,6 +25,7 @@ import { sendImage, sendImageTool } from "../tools/sendImage.js";
|
|
|
25
25
|
import { viewImageTool } from "../tools/viewImage.js";
|
|
26
26
|
import { dataAccessRequestTool, validateDataAccessRequest } from "../tools/dataAccessRequest.js";
|
|
27
27
|
import { proactiveTools, validateProactiveSubscribe } from "../tools/proactive.js";
|
|
28
|
+
import { buddyRelationshipRequestTool } from "../tools/buddyRelationshipRequest.js";
|
|
28
29
|
/**
|
|
29
30
|
* 运行时自己挂、不经开发者挑的工具:view_image,只给收图片的模型(模型条目 input 含 image)。
|
|
30
31
|
* 重建的历史里搭子答过的图只剩「[图片 #id]」标签(mlbMessageAgentMessageConverter.ts),模型要看旧图只能靠它;
|
|
@@ -62,6 +63,7 @@ export async function createAgent(deps) {
|
|
|
62
63
|
ask_question: askQuestionTool(deps.enqueueMessage, waitForUser),
|
|
63
64
|
data_access_query: dataAccessTool(client, deps.key, dataAccessUsage, deps.dataRequirements),
|
|
64
65
|
data_access_request: dataAccessRequestTool(deps.key, deps.enqueueMessage, dataAccessUsage, deps.dataRequirements, waitForUser),
|
|
66
|
+
buddy_relationship_request: buddyRelationshipRequestTool(deps.key, deps.enqueueMessage, waitForUser),
|
|
65
67
|
widget_create: widgetCreate,
|
|
66
68
|
widget_read: widgetRead,
|
|
67
69
|
widget_read_module: widgetReadModule,
|
|
@@ -194,7 +196,13 @@ export async function createAgent(deps) {
|
|
|
194
196
|
followUpMode: "all",
|
|
195
197
|
// 下面三个钩子按 pi 每次请求模型时的调用顺序排:transformContext → convertToLlm → onPayload;请求体每次请求全量打日志,主动回合也一样。
|
|
196
198
|
// transformContext 的返回值只交给这一次请求,不写回会话历史;场合交代和图片本来就是历史里的记录,不在这里加
|
|
197
|
-
transformContext: async (messages) =>
|
|
199
|
+
transformContext: async (messages) => {
|
|
200
|
+
const context = withCurrentTime(messages, Date.now());
|
|
201
|
+
const note = deps.recoveryNote?.();
|
|
202
|
+
if (note)
|
|
203
|
+
context.push({ role: "user", content: [{ type: "text", text: note }], timestamp: Date.now() });
|
|
204
|
+
return context;
|
|
205
|
+
},
|
|
198
206
|
convertToLlm: agentMessagesToLLMMessages,
|
|
199
207
|
// 只打日志、记请求开始时刻,返回 undefined:返回别的值 pi-ai 会拿它顶替请求体发出去
|
|
200
208
|
onPayload: (payload) => {
|
|
@@ -232,7 +240,7 @@ export async function createAgent(deps) {
|
|
|
232
240
|
shouldStopAfterTurn: async (context, signal) => {
|
|
233
241
|
if (waitingForUser) {
|
|
234
242
|
waitingForUser = false;
|
|
235
|
-
deps.onPolicyStop();
|
|
243
|
+
deps.onPolicyStop(true);
|
|
236
244
|
return true;
|
|
237
245
|
}
|
|
238
246
|
if (options.shouldStopAfterTurn === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/conversation/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/conversation/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,12 @@ export interface ConversationHandleDeps {
|
|
|
29
29
|
export declare class ConversationHandle {
|
|
30
30
|
/** 收到过 welcome 事件(会话刚建好):首次拉到的只有场合交代时,重建完从它接着起回合开口 */
|
|
31
31
|
private welcomeRequested;
|
|
32
|
+
private pendingRequests;
|
|
33
|
+
private readonly answeredRequests;
|
|
34
|
+
private readonly consumedRequests;
|
|
35
|
+
private readonly inputRequests;
|
|
36
|
+
private recoveryNote;
|
|
37
|
+
private readonly inputRecords;
|
|
32
38
|
private steered;
|
|
33
39
|
private policyStopped;
|
|
34
40
|
private readonly deps;
|
|
@@ -111,14 +117,19 @@ export declare class ConversationHandle {
|
|
|
111
117
|
*/
|
|
112
118
|
private onMessages;
|
|
113
119
|
/**
|
|
114
|
-
* 首次拉取:建 Agent
|
|
115
|
-
*
|
|
120
|
+
* 首次拉取:建 Agent,整段历史按平台顺序还原,再根据 pendingRequests 继续待答输入(REDoc《【技术设计】搭子会话重建》)。
|
|
121
|
+
* 旧平台不提供 pendingRequests 时,保留 splitForRebuild 的按时间切分。
|
|
122
|
+
* 灌历史时带上这个进程的搭子版本:换版之前那一版写的搭子记录(含打版本戳之前写的)换成一条平台附注,不还原成它自己的话,
|
|
123
|
+
* 模型就不会照着上一版的做法接着做;平台还没发 version 事件时不替换。
|
|
116
124
|
*/
|
|
117
125
|
private rebuild;
|
|
126
|
+
/** 完整历史只注入一次,已有工具结果从其后继续生成。 */
|
|
127
|
+
private resumePending;
|
|
128
|
+
private continueHistory;
|
|
118
129
|
/** 一批新记录(reader 只交比上一批晚的,自己写回的也在里面——包括主动回合里写的那些,内存里本来就有):对方的交给 admit */
|
|
119
130
|
private ingest;
|
|
120
131
|
/**
|
|
121
|
-
*
|
|
132
|
+
* 新收到的对方记录换成 user 消息分发;旧平台重建时也用它接收 splitForRebuild 切出的待答记录。
|
|
122
133
|
* 其中有一条是用户说的、平台标了该答(wantsReply),就要开口:
|
|
123
134
|
* 空闲 + 不用开口 → 直接进历史;空闲 + 要开口 → 起回合;忙 + 不用开口 → 攒进 heard;忙 + 要开口 → steer 进当前回合。
|
|
124
135
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversation/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAqB,YAAY,EAAa,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAI1G,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// 一场会话的纪律:拉到消息怎么办、什么时候起回合、Agent 事件往哪送、怎么退役。
|
|
2
|
-
//
|
|
2
|
+
// 管:首次拉取按消息中的输入关联恢复并续答,旧平台保留最后一条搭子记录的切分;会话刚建好(收到过 welcome)、只拉到场合交代的,重建完从它接着开口;
|
|
3
3
|
// 之后每批按空闲 / 忙碌 × 要不要开口四路分发;Widget 详情页变更领取后串行启动不可见回合,可回复或明确静默;
|
|
4
4
|
// 回合(prompt 该答的消息、或从场合交代接着 continue → 把回合中排进队列的消息消化完 → 出错或一句话没说(发了等用户操作的卡算说过)就发 errorReply 兜底、兜底话也进历史 → 收尾把这一轮的历史按消息时间排好);
|
|
5
5
|
// Agent 事件交给发平台的队列;close(先标退役、再打断回合、等它收尾)。
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// replying / delta / 写回怎么发(writeMLBMessage.ts)、HTTP 请求本身(mlbClient.ts)、
|
|
8
8
|
// MLBMessage 与 AgentMessage 的换算(mlbMessageAgentMessageConverter.ts)、会话从哪来到哪去(server.ts 管 Map、空闲淘汰与 delete 事件)。
|
|
9
9
|
import { randomUUID } from "node:crypto";
|
|
10
|
-
import { mlbMessagesToAgentMessages, stoppedByErrorOrAbort, textAssistantMessage, textOf } from "./mlbMessageAgentMessageConverter.js";
|
|
10
|
+
import { isStaleBuddyRecord, mlbMessagesToAgentMessages, stoppedByErrorOrAbort, textAssistantMessage, textOf } from "./mlbMessageAgentMessageConverter.js";
|
|
11
11
|
import { errorText } from "../log.js";
|
|
12
12
|
import { modelIdentity } from "../model.js";
|
|
13
13
|
import { dataAccessPolicyOf } from "../toolPolicy.js";
|
|
@@ -25,6 +25,12 @@ const WIDGET_CHANGE_REPLYING_MIN_MS = 600;
|
|
|
25
25
|
export class ConversationHandle {
|
|
26
26
|
/** 收到过 welcome 事件(会话刚建好):首次拉到的只有场合交代时,重建完从它接着起回合开口 */
|
|
27
27
|
welcomeRequested = false;
|
|
28
|
+
pendingRequests;
|
|
29
|
+
answeredRequests = new Set();
|
|
30
|
+
consumedRequests = new Set();
|
|
31
|
+
inputRequests = new WeakMap();
|
|
32
|
+
recoveryNote = "";
|
|
33
|
+
inputRecords = new Map();
|
|
28
34
|
steered = [];
|
|
29
35
|
policyStopped = false;
|
|
30
36
|
deps;
|
|
@@ -69,13 +75,19 @@ export class ConversationHandle {
|
|
|
69
75
|
client: deps.client,
|
|
70
76
|
key: deps.key,
|
|
71
77
|
log: deps.log,
|
|
72
|
-
onMessages: (messages) => this.onMessages(messages),
|
|
78
|
+
onMessages: (messages, pending) => this.onMessages(messages, pending),
|
|
73
79
|
});
|
|
74
80
|
this.writer = new WriteMLBMessage({
|
|
75
81
|
client: deps.client,
|
|
76
82
|
key: deps.key,
|
|
77
83
|
buddyId: deps.buddyId,
|
|
78
84
|
runId: randomUUID().slice(0, 8),
|
|
85
|
+
onReplySaved: ids => {
|
|
86
|
+
for (const id of ids) {
|
|
87
|
+
this.answeredRequests.add(id);
|
|
88
|
+
}
|
|
89
|
+
this.pendingRequests = this.pendingRequests?.filter(r => !this.answeredRequests.has(r.requestMessageId));
|
|
90
|
+
},
|
|
79
91
|
log: deps.log,
|
|
80
92
|
});
|
|
81
93
|
}
|
|
@@ -101,7 +113,7 @@ export class ConversationHandle {
|
|
|
101
113
|
*/
|
|
102
114
|
snapshotForCompaction() {
|
|
103
115
|
const agent = this.agent;
|
|
104
|
-
if (agent === undefined || this._busy || this._closed)
|
|
116
|
+
if (agent === undefined || this._busy || this._closed || this.pendingRequests?.length)
|
|
105
117
|
return undefined;
|
|
106
118
|
if (!overTrigger(agent.state.messages, agent.state.model))
|
|
107
119
|
return undefined;
|
|
@@ -203,7 +215,7 @@ export class ConversationHandle {
|
|
|
203
215
|
const remaining = WIDGET_CHANGE_REPLYING_MIN_MS - (Date.now() - (replyingState.visibleAt ?? Date.now()));
|
|
204
216
|
if (remaining > 0)
|
|
205
217
|
await new Promise(resolve => setTimeout(resolve, remaining));
|
|
206
|
-
this.writer.assistant(visibleReply, tracker.hasUsage());
|
|
218
|
+
this.writer.assistant(visibleReply, tracker.hasUsage(), this.pendingRequests === undefined ? undefined : []);
|
|
207
219
|
await this.writer.flush();
|
|
208
220
|
return "reply";
|
|
209
221
|
}
|
|
@@ -353,7 +365,7 @@ export class ConversationHandle {
|
|
|
353
365
|
// 开口:写成一条普通 message、带这次 Run 的凭据,跟普通回合的回复走同一条写回队列;平台复核闸门拦下回 403,下面照拒收删掉。
|
|
354
366
|
// 这一轮查过授权数据的,心声不落库(主动回合里 agent_end 不清用量,hasUsage 算的是整轮)
|
|
355
367
|
spoken = reply;
|
|
356
|
-
this.writer.assistant(spoken, tracker.hasUsage());
|
|
368
|
+
this.writer.assistant(spoken, tracker.hasUsage(), this.pendingRequests === undefined ? undefined : []);
|
|
357
369
|
return undefined;
|
|
358
370
|
}
|
|
359
371
|
catch (error) {
|
|
@@ -404,11 +416,18 @@ export class ConversationHandle {
|
|
|
404
416
|
* reader 交来一批:第一次走重建,之后走 ingest。
|
|
405
417
|
* 平台的场合交代(situation)是流里的一条记录,跟别的记录一起拉到;会话没了只靠 SSE delete 事件收,这里不判。
|
|
406
418
|
*/
|
|
407
|
-
async onMessages(messages) {
|
|
419
|
+
async onMessages(messages, pending) {
|
|
408
420
|
if (this._closed)
|
|
409
421
|
return;
|
|
422
|
+
if (pending !== undefined)
|
|
423
|
+
this.pendingRequests = pending.filter(r => !this.answeredRequests.has(r.requestMessageId));
|
|
424
|
+
for (const { id, text, timestamp, author } of messages)
|
|
425
|
+
if (author === "user")
|
|
426
|
+
this.inputRecords.set(id, { id, text, timestamp });
|
|
410
427
|
if (this.rebuilt) {
|
|
411
428
|
this.ingest(messages);
|
|
429
|
+
if (!this._busy && this.pendingRequests?.some(r => r.messageIds.every(id => this.inputRecords.has(id))))
|
|
430
|
+
this.resumePending();
|
|
412
431
|
return;
|
|
413
432
|
}
|
|
414
433
|
// 首次拉到空的先不建会话,等下一次通知再拉:空数组的 every 为真,不拦会被当成只有场合交代的新会话去开口
|
|
@@ -430,15 +449,24 @@ export class ConversationHandle {
|
|
|
430
449
|
}
|
|
431
450
|
}
|
|
432
451
|
/**
|
|
433
|
-
* 首次拉取:建 Agent
|
|
434
|
-
*
|
|
452
|
+
* 首次拉取:建 Agent,整段历史按平台顺序还原,再根据 pendingRequests 继续待答输入(REDoc《【技术设计】搭子会话重建》)。
|
|
453
|
+
* 旧平台不提供 pendingRequests 时,保留 splitForRebuild 的按时间切分。
|
|
454
|
+
* 灌历史时带上这个进程的搭子版本:换版之前那一版写的搭子记录(含打版本戳之前写的)换成一条平台附注,不还原成它自己的话,
|
|
455
|
+
* 模型就不会照着上一版的做法接着做;平台还没发 version 事件时不替换。
|
|
435
456
|
*/
|
|
436
457
|
async rebuild(records) {
|
|
437
458
|
const created = await createAgent({
|
|
438
459
|
...this.deps,
|
|
439
|
-
enqueueMessage: message => this.writer.enqueueMessage(message),
|
|
460
|
+
enqueueMessage: message => this.writer.enqueueMessage({ ...message, ...(this.pendingRequests !== undefined ? { inputRequestMessageIds: this.proactiveRun ? [] : [...this.consumedRequests] } : {}) }),
|
|
461
|
+
recoveryNote: () => this.recoveryNote,
|
|
440
462
|
onWaitingForUser: () => { this.spoke = true; },
|
|
441
|
-
onPolicyStop: () => {
|
|
463
|
+
onPolicyStop: (waitingForUser) => {
|
|
464
|
+
this.policyStopped = true;
|
|
465
|
+
if (waitingForUser) {
|
|
466
|
+
this.consumedRequests.clear();
|
|
467
|
+
this.recoveryNote = "";
|
|
468
|
+
}
|
|
469
|
+
},
|
|
442
470
|
onEvent: (a, event) => this.onEvent(a, event),
|
|
443
471
|
});
|
|
444
472
|
if (this._closed)
|
|
@@ -449,14 +477,56 @@ export class ConversationHandle {
|
|
|
449
477
|
this.dataAccessUsage = created.dataAccessUsage;
|
|
450
478
|
this.errorReply = created.errorReply;
|
|
451
479
|
this.identity = modelIdentity(created.model);
|
|
480
|
+
const currentVersion = process.env.HIDE_PREVIOUS_VERSION_OUTPUT === "1" ? this.deps.client.buddyVersion : undefined;
|
|
481
|
+
if (this.pendingRequests !== undefined) {
|
|
482
|
+
const pendingMessageIds = new Set(this.pendingRequests.flatMap(r => r.messageIds));
|
|
483
|
+
const toolRequests = new Set(records.filter(r => r.type === "tool" && r.toolCalls?.some(call => ["ask_question", "data_access_request", "buddy_relationship_request"].includes(call.name))).flatMap(r => r.inputRequestMessageIds ?? []));
|
|
484
|
+
agent.state.messages = records.flatMap(record => {
|
|
485
|
+
const converted = mlbMessagesToAgentMessages([record], this.identity, { ...(pendingMessageIds.has(record.id) ? {} : { images: "label" }), currentVersion });
|
|
486
|
+
// 卡片先于工具步骤落库;缺少工具步骤时仍保留题目和选项,供用户回答后继续。
|
|
487
|
+
if (!isStaleBuddyRecord(record, currentVersion) && ["question", "permissionRequest", "buddyCard"].includes(record.type) && record.inputRequestMessageIds?.some(id => !toolRequests.has(id))) {
|
|
488
|
+
const question = record.question;
|
|
489
|
+
const options = Array.isArray(question?.options) ? question.options.filter((v) => typeof v === "string") : [];
|
|
490
|
+
converted.push(textAssistantMessage([record.text, ...options].join("\n"), record.timestamp, this.identity));
|
|
491
|
+
}
|
|
492
|
+
return converted;
|
|
493
|
+
});
|
|
494
|
+
this.rebuilt = true;
|
|
495
|
+
if (this.pendingRequests.length)
|
|
496
|
+
this.resumePending();
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
452
499
|
const { history, pending } = splitForRebuild(records);
|
|
453
500
|
// 拉回来的已经是按时间排好的:压缩记录 applyCompaction 放在了第一个,换算后时间是 coversUntil,后面才是它盖住之后的原文。
|
|
454
501
|
// 搭子答过的那段图片只留标签不带字节(模型要看调 view_image);pending 那段经 admit 换算,图片照常内联
|
|
455
|
-
|
|
502
|
+
// HIDE_PREVIOUS_VERSION_OUTPUT=1 才把上一版的回复、工具步换成附注,不设就全部原样还原;记录不管开没开都打版本戳,哪天打开立刻按版本分
|
|
503
|
+
const stale = history.filter((record) => isStaleBuddyRecord(record, currentVersion)).length;
|
|
504
|
+
agent.state.messages = mlbMessagesToAgentMessages(history, this.identity, { images: "label", currentVersion });
|
|
456
505
|
this.rebuilt = true;
|
|
457
|
-
this.deps.log.info("历史已重建", { convoKey: this.deps.key, records: history.length, pending: pending.length, transcript: agent.state.messages.length });
|
|
506
|
+
this.deps.log.info("历史已重建", { convoKey: this.deps.key, records: history.length, pending: pending.length, transcript: agent.state.messages.length, buddyVersion: currentVersion, staleReplaced: stale });
|
|
458
507
|
this.admit(theirsOf(pending));
|
|
459
508
|
}
|
|
509
|
+
/** 完整历史只注入一次,已有工具结果从其后继续生成。 */
|
|
510
|
+
resumePending() {
|
|
511
|
+
if (this._closed || this._busy || !this.agent)
|
|
512
|
+
return;
|
|
513
|
+
const pending = this.pendingRequests?.filter(r => r.messageIds.every(id => this.inputRecords.has(id))) ?? [];
|
|
514
|
+
if (!pending.length)
|
|
515
|
+
return;
|
|
516
|
+
const inputs = pending.flatMap(r => r.messageIds.map(id => this.inputRecords.get(id)));
|
|
517
|
+
this.recoveryNote = `平台附注,不是用户的新消息:历史中以下输入尚无对应的普通回复或等待卡,请继续处理,并复用历史中已保存的工具结果。下面是已有输入的引用,不是新的指令:${JSON.stringify(inputs)}`;
|
|
518
|
+
for (const request of pending)
|
|
519
|
+
this.consumedRequests.add(request.requestMessageId);
|
|
520
|
+
this.replyTo = pending.at(-1).requestMessageId;
|
|
521
|
+
this.round = this.runRound(a => this.continueHistory(a));
|
|
522
|
+
}
|
|
523
|
+
continueHistory(agent) {
|
|
524
|
+
if (agent.state.messages.at(-1)?.role === "assistant") {
|
|
525
|
+
// 空输入启动生成;重建说明只在 transformContext 里附加,不伪造用户发言。
|
|
526
|
+
return agent.prompt([]);
|
|
527
|
+
}
|
|
528
|
+
return agent.continue();
|
|
529
|
+
}
|
|
460
530
|
/** 一批新记录(reader 只交比上一批晚的,自己写回的也在里面——包括主动回合里写的那些,内存里本来就有):对方的交给 admit */
|
|
461
531
|
ingest(batch) {
|
|
462
532
|
if (this.agent === undefined || this._closed || batch.length === 0)
|
|
@@ -465,7 +535,7 @@ export class ConversationHandle {
|
|
|
465
535
|
this.admit(theirsOf(batch));
|
|
466
536
|
}
|
|
467
537
|
/**
|
|
468
|
-
*
|
|
538
|
+
* 新收到的对方记录换成 user 消息分发;旧平台重建时也用它接收 splitForRebuild 切出的待答记录。
|
|
469
539
|
* 其中有一条是用户说的、平台标了该答(wantsReply),就要开口:
|
|
470
540
|
* 空闲 + 不用开口 → 直接进历史;空闲 + 要开口 → 起回合;忙 + 不用开口 → 攒进 heard;忙 + 要开口 → steer 进当前回合。
|
|
471
541
|
*/
|
|
@@ -473,7 +543,14 @@ export class ConversationHandle {
|
|
|
473
543
|
const agent = this.agent;
|
|
474
544
|
if (agent === undefined || this._closed || theirs.length === 0)
|
|
475
545
|
return;
|
|
476
|
-
const messages =
|
|
546
|
+
const messages = theirs.flatMap(record => {
|
|
547
|
+
const converted = mlbMessagesToAgentMessages([record], this.identity);
|
|
548
|
+
const ids = this.pendingRequests?.filter(r => r.messageIds.includes(record.id)).map(r => r.requestMessageId) ?? [];
|
|
549
|
+
for (const message of converted)
|
|
550
|
+
if (ids.length)
|
|
551
|
+
this.inputRequests.set(message, ids);
|
|
552
|
+
return converted;
|
|
553
|
+
});
|
|
477
554
|
if (messages.length === 0)
|
|
478
555
|
return;
|
|
479
556
|
const shouldReply = wantsReply(theirs);
|
|
@@ -551,7 +628,9 @@ export class ConversationHandle {
|
|
|
551
628
|
// 写回时以它为 target,平台回的时间写到它身上,下面按时间排
|
|
552
629
|
const fallback = textAssistantMessage(this.errorReply, Date.now(), this.identity);
|
|
553
630
|
agent.state.messages.push(fallback);
|
|
554
|
-
|
|
631
|
+
const ids = [...this.consumedRequests];
|
|
632
|
+
this.writer.enqueueMessage({ type: "message", text: this.errorReply, idempotencyKey: `fallback:${this.deps.key}:${this.replyTo}`, ...(this.pendingRequests !== undefined ? { inputRequestMessageIds: ids } : {}) }, fallback);
|
|
633
|
+
this.consumedRequests.clear();
|
|
555
634
|
}
|
|
556
635
|
this.writer.replying({ on: false });
|
|
557
636
|
await this.writer.flush();
|
|
@@ -566,6 +645,8 @@ export class ConversationHandle {
|
|
|
566
645
|
const history = agent.state.messages;
|
|
567
646
|
agent.state.messages = [...history.slice(0, roundStart), ...sortByTimestamp(history.slice(roundStart))];
|
|
568
647
|
this._busy = false;
|
|
648
|
+
this.recoveryNote = "";
|
|
649
|
+
this.consumedRequests.clear();
|
|
569
650
|
this._lastActivity = Date.now();
|
|
570
651
|
this.deps.log.info("回合收尾", {
|
|
571
652
|
convoKey: this.deps.key,
|
|
@@ -611,6 +692,8 @@ export class ConversationHandle {
|
|
|
611
692
|
break;
|
|
612
693
|
case "message_end": {
|
|
613
694
|
const m = event.message;
|
|
695
|
+
for (const id of this.inputRequests.get(m) ?? [])
|
|
696
|
+
this.consumedRequests.add(id);
|
|
614
697
|
this.steered = this.steered.filter(queued => queued !== m);
|
|
615
698
|
if (m.role === "assistant") {
|
|
616
699
|
const toolCallIds = m.content.filter((block) => block.type === "toolCall").map((block) => block.id);
|
|
@@ -622,8 +705,13 @@ export class ConversationHandle {
|
|
|
622
705
|
else if (textOf(m) !== "")
|
|
623
706
|
this.spoke = true;
|
|
624
707
|
// 正常收尾又带工具调用的,等 turn_end 连结果一起写成 tool 记录;说到一半断了的这一步没有结果,只写推过去的正文
|
|
625
|
-
if (!this.proactiveRun && (stopped || toolCallIds.length === 0))
|
|
626
|
-
this.writer.assistant(m, dataAccessTainted);
|
|
708
|
+
if (!this.proactiveRun && (stopped || toolCallIds.length === 0)) {
|
|
709
|
+
this.writer.assistant(m, dataAccessTainted, this.pendingRequests === undefined ? undefined : [...this.consumedRequests]);
|
|
710
|
+
if (!stopped) {
|
|
711
|
+
this.consumedRequests.clear();
|
|
712
|
+
this.recoveryNote = "";
|
|
713
|
+
}
|
|
714
|
+
}
|
|
627
715
|
}
|
|
628
716
|
break;
|
|
629
717
|
}
|
|
@@ -633,6 +721,7 @@ export class ConversationHandle {
|
|
|
633
721
|
// 说到一半断了的那一步不记:工具没执行、参数不完整,正文已在 message_end 写过
|
|
634
722
|
if (m.role === "assistant" && !stoppedByErrorOrAbort(m) && m.content.some((block) => block.type === "toolCall")) {
|
|
635
723
|
this.writer.toolStep(m, event.toolResults, agent.state.tools, (toolCallId) => this.dataAccessUsage?.details(toolCallId), {
|
|
724
|
+
inputRequestMessageIds: this.pendingRequests === undefined ? undefined : this.proactiveRun ? [] : [...this.consumedRequests],
|
|
636
725
|
dataAccessTainted: this.dataAccessTaintedSteps.get(m) ?? false,
|
|
637
726
|
isSensitiveCall: (toolCallId) => this.dataAccessUsage?.isSensitive(toolCallId) ?? false,
|
|
638
727
|
toolPolicyOf: (toolName) => dataAccessPolicyOf(agent.state.tools.find((tool) => tool.name === toolName)),
|