@my-life-buddies/buddy-runtime 0.27.0 → 0.28.0-dev.1
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/README.md +71 -2
- package/dist/conversation/agent.d.ts +10 -2
- package/dist/conversation/agent.d.ts.map +1 -1
- package/dist/conversation/agent.js +83 -6
- package/dist/conversation/agent.js.map +1 -1
- package/dist/conversation/index.d.ts +24 -5
- package/dist/conversation/index.d.ts.map +1 -1
- package/dist/conversation/index.js +189 -22
- 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 -1
- 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 +8 -1
- package/dist/conversation/writeMLBMessage.d.ts.map +1 -1
- package/dist/conversation/writeMLBMessage.js +26 -4
- package/dist/conversation/writeMLBMessage.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.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 +20 -8
- package/dist/mlbClient.d.ts.map +1 -1
- package/dist/mlbClient.js +102 -19
- 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 +82 -2
- package/dist/server.js.map +1 -1
- package/dist/services/cache.d.ts +15 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +58 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/manifest.d.ts +3 -0
- package/dist/services/manifest.d.ts.map +1 -0
- package/dist/services/manifest.js +19 -0
- package/dist/services/manifest.js.map +1 -0
- package/dist/services/session.d.ts +10 -0
- package/dist/services/session.d.ts.map +1 -0
- package/dist/services/session.js +57 -0
- package/dist/services/session.js.map +1 -0
- package/dist/services/types.d.ts +120 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/types.js +2 -0
- package/dist/services/types.js.map +1 -0
- package/dist/tools/service.d.ts +18 -0
- package/dist/tools/service.d.ts.map +1 -0
- package/dist/tools/service.js +25 -0
- package/dist/tools/service.js.map +1 -0
- package/dist/types.d.ts +47 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
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`
|
|
@@ -226,6 +234,7 @@ interface Conversation {
|
|
|
226
234
|
| 搭子关系 | 无 | `buddy_relationship_request` |
|
|
227
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` |
|
|
228
236
|
| 主动服务 | `conversation.proactive.subscribe` / `list` / `unsubscribe` / `unsubscribeAll` / `isRunning` | `proactive_subscribe` / `proactive_list` / `proactive_unsubscribe` / `proactive_unsubscribe_all` |
|
|
237
|
+
| 商品(模拟购买) | `conversation.product`:展示商品、读取、启用和终止服务凭证 | `show_product_card` |
|
|
229
238
|
|
|
230
239
|
```ts
|
|
231
240
|
buddy: (conversation) => ({
|
|
@@ -1026,7 +1035,7 @@ await BuddyServer.start((conversation) => ({
|
|
|
1026
1035
|
|
|
1027
1036
|
**主动服务的回合,不允许使用部分模型工具**
|
|
1028
1037
|
|
|
1029
|
-
|
|
1038
|
+
主动服务回合沿用当前配置的工具,数据授权保护照常生效;`show_product_card` 只允许普通用户私聊回合调用,见 3.9。开发者如需进一步限制其他工具,可以使用 `beforeToolCall`,通过 `conversation.proactive.isRunning()` 判断当前是否为主动服务回合:
|
|
1030
1039
|
|
|
1031
1040
|
```ts
|
|
1032
1041
|
beforeToolCall: async ({ toolCall }) =>
|
|
@@ -1034,3 +1043,63 @@ beforeToolCall: async ({ toolCall }) =>
|
|
|
1034
1043
|
? { block: true, reason: "这一轮用户不在场,这个工具用不了。" }
|
|
1035
1044
|
: undefined,
|
|
1036
1045
|
```
|
|
1046
|
+
|
|
1047
|
+
### 3.9 商品与模拟购买
|
|
1048
|
+
|
|
1049
|
+
商品能力只支持私聊。创作者在工程根目录放置 `products.json`;没有文件时 Runtime 不提交商品声明,但仍会处理已经售出的凭证事件。平台对声明做结构校验并分配数字版本,不需要在文件中写版本,也没有人工审批步骤。更新商品承诺须通过创作者商品更新接口提交 `expectedVersions`,不能靠重启 Runtime 覆盖已有版本。
|
|
1050
|
+
|
|
1051
|
+
```json
|
|
1052
|
+
{
|
|
1053
|
+
"schemaVersion": 1,
|
|
1054
|
+
"products": [{
|
|
1055
|
+
"productId": "plant_care",
|
|
1056
|
+
"name": "植物养护陪伴",
|
|
1057
|
+
"description": "结合用户的记录提供养护安排和调整建议。",
|
|
1058
|
+
"audience": "希望获得持续养护支持的用户",
|
|
1059
|
+
"pricingUnitLabel": "一次养护计划",
|
|
1060
|
+
"benefits": [{ "title": "养护计划", "description": "结合观察记录调整安排" }],
|
|
1061
|
+
"productTerms": { "startCondition": "确认资料后开始", "endCondition": "计划交付后结束" },
|
|
1062
|
+
"limitations": ["不含上门养护"],
|
|
1063
|
+
"requestedPrice": { "amountMinor": 3900, "currency": "CNY" }
|
|
1064
|
+
}]
|
|
1065
|
+
}
|
|
1066
|
+
```
|
|
1067
|
+
|
|
1068
|
+
`conversation.product` 提供绑定当前私聊的 `showCard`、`readCurrentCredential`、`listCredentials`、`activateCredential`、`terminateCredential`。`showCard` 必须绑定当前真实用户消息;卡片引用进入普通消息写入队列,不创建订单。`conversation.tools.show_product_card` 是给模型的包装工具,参数为 `productId` 和 `personalization`。个性化内容必须有 `cardSummary`;`buttonText`、`needSummary`、`contextItems` 可选。名称、价格与交付承诺只能来自声明,模型不能覆盖。
|
|
1069
|
+
|
|
1070
|
+
```ts
|
|
1071
|
+
await BuddyServer.start((conversation) => {
|
|
1072
|
+
if (!conversation.key.startsWith("p_")) {
|
|
1073
|
+
return { initialState: { model: "deepseek-v4-flash", systemPrompt: "提供普通群聊帮助。", tools: [] } };
|
|
1074
|
+
}
|
|
1075
|
+
const product = conversation.product;
|
|
1076
|
+
const showCard = conversation.tools.show_product_card;
|
|
1077
|
+
if (!product || !showCard) throw new Error("当前 Runtime 不支持商品能力");
|
|
1078
|
+
const basic = {
|
|
1079
|
+
model: "deepseek-v4-flash" as const,
|
|
1080
|
+
systemPrompt: "提供基础养护帮助;用户有持续养护需求时可展示 plant_care 商品。",
|
|
1081
|
+
tools: [showCard],
|
|
1082
|
+
};
|
|
1083
|
+
return {
|
|
1084
|
+
initialState: basic,
|
|
1085
|
+
configureTurn: ({ credential }) => credential.current?.productId === "plant_care"
|
|
1086
|
+
? { model: "kimi-k3", systemPrompt: "按已购买商品的承诺提供养护服务。", tools: [] }
|
|
1087
|
+
: basic,
|
|
1088
|
+
onCredentialCreated: async (credential) => {
|
|
1089
|
+
if (credential.productId !== "plant_care") return;
|
|
1090
|
+
if (!(await product.readCurrentCredential({ refresh: true })).current) {
|
|
1091
|
+
await product.activateCredential({
|
|
1092
|
+
credentialId: credential.credentialId,
|
|
1093
|
+
expectedRevision: credential.revision,
|
|
1094
|
+
idempotencyKey: `start:${credential.credentialId}`,
|
|
1095
|
+
});
|
|
1096
|
+
}
|
|
1097
|
+
return { autoStartPrompt: "用户已购买一次养护计划。现在读取已有观察记录并开始交付,不要等待再次发消息。" };
|
|
1098
|
+
},
|
|
1099
|
+
};
|
|
1100
|
+
});
|
|
1101
|
+
```
|
|
1102
|
+
|
|
1103
|
+
用户点击商品卡先看详情,再点击「去购买」;客户端向平台发送 `expectedVersion` 和 `idempotencyKey` 完成零扣费模拟购买。平台生成 `pending` 凭证并投递持久事件;Runtime 收到事件后调用 `onCredentialCreated`。事件可能重放,回调须按 `credentialId` 幂等。创作者决定凭证何时启用、何时终止;回调在启用凭证后可返回 `{ autoStartPrompt: string }`,让 Runtime 自动开始一次正常的流式回复,写回成功后才确认事件。省略该返回值则沿用等待用户下一条消息的流程。`configureTurn` 在自动交付或下一独立私聊回合读取平台凭证并选择配置,不重建对话或清空历史。查询暂时失败时保留基础对话但不开放工具,不能将失败当作未购买。群聊不读凭证,也不会注册 `show_product_card`。
|
|
1104
|
+
|
|
1105
|
+
`ProductCredentialSnapshot.current` 仅代表当前生效凭证;`nextRefreshAt` 是缓存刷新时刻,不是服务到期时间。购买后的待启用凭证通过 `listCredentials({ state: "pending" })` 查询。凭证读写、卡片准备失败会抛错,不伪报成功;写操作不自动重试,调用方使用稳定幂等键恢复。模拟购买实付永远为 0,不能作为正式收费实现。
|
|
@@ -4,14 +4,19 @@ import type { Api, Model } from "@earendil-works/pi-ai";
|
|
|
4
4
|
import type { MLBClient, WidgetType } from "../mlbClient.ts";
|
|
5
5
|
import { DataAccessUsageTracker } from "../tools/dataAccess.ts";
|
|
6
6
|
import type { Resource } from "../tools/resource.ts";
|
|
7
|
+
import type { ProductEvent } from "../services/types.ts";
|
|
7
8
|
import type { BuddyFactory, BuddyLogger, DataRequirement, MLBMessageToWrite } from "../types.ts";
|
|
8
9
|
export interface AgentDeps {
|
|
9
|
-
/**
|
|
10
|
+
/** 当前普通用户回合的真实来源消息;模型参数不能覆盖。 */
|
|
11
|
+
sourceMessage?: () => string | undefined;
|
|
12
|
+
/** 这场会话的发送队列:小挂件引用、服务引用、权限请求卡、题卡都放进来 */
|
|
10
13
|
enqueueMessage: (message: MLBMessageToWrite) => void;
|
|
11
14
|
/** 发了一张等用户操作的卡(权限请求卡、题卡):这张卡算这一轮说过的话 */
|
|
12
15
|
onWaitingForUser: () => void;
|
|
13
16
|
/** shouldStopAfterTurn 让这一轮停下了(发了等用户操作的卡,或开发者的钩子回 true):index.ts 据此不再接着 continue */
|
|
14
|
-
onPolicyStop: () => void;
|
|
17
|
+
onPolicyStop: (waitingForUser?: boolean) => void;
|
|
18
|
+
/** 只交给本次模型请求的重建说明,不写进用户消息或会话历史。 */
|
|
19
|
+
recoveryNote?: () => string;
|
|
15
20
|
key: string;
|
|
16
21
|
buddyId: string;
|
|
17
22
|
client: MLBClient;
|
|
@@ -34,6 +39,9 @@ export interface AgentDeps {
|
|
|
34
39
|
}
|
|
35
40
|
/** createAgent 建好的:Agent、这场会话的模型条目、授权数据记账,以及开发者配的兜底话 */
|
|
36
41
|
export interface CreatedAgent {
|
|
42
|
+
prepareTurn: () => Promise<Model<Api>>;
|
|
43
|
+
handleProductEvent: (event: ProductEvent) => Promise<string | undefined>;
|
|
44
|
+
invalidateCredential: () => void;
|
|
37
45
|
agent: Agent;
|
|
38
46
|
/** 按开发者 initialState.model 造的模型条目:重建历史时抄身份按它 */
|
|
39
47
|
model: Model<Api>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/conversation/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/conversation/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,11 @@
|
|
|
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
|
+
// 私聊的 configureTurn 在回合边界返回完整配置时,保留平台规则、鉴权与历史,替换模型/开发者提示/工具;凭证查询失败保留基础对话但不开放工具,不伪造空凭证;
|
|
12
|
+
// 服务事件只调用同一私聊的创作者回调;回调明确返回自动开始指令且凭证已启用时,交由会话调度普通流式回合。
|
|
13
|
+
// 不管:回合和事件调度(index.ts)、服务业务计时计次。
|
|
12
14
|
import { Agent } from "@earendil-works/pi-agent-core";
|
|
13
15
|
import { clampThinkingLevel, getSupportedThinkingLevels } from "@earendil-works/pi-ai";
|
|
14
16
|
import { agentMessagesToLLMMessages } from "./agentMessageLLMMessageConverter.js";
|
|
@@ -26,6 +28,8 @@ import { viewImageTool } from "../tools/viewImage.js";
|
|
|
26
28
|
import { dataAccessRequestTool, validateDataAccessRequest } from "../tools/dataAccessRequest.js";
|
|
27
29
|
import { proactiveTools, validateProactiveSubscribe } from "../tools/proactive.js";
|
|
28
30
|
import { buddyRelationshipRequestTool } from "../tools/buddyRelationshipRequest.js";
|
|
31
|
+
import { productCardTool } from "../tools/service.js";
|
|
32
|
+
import { ProductSession } from "../services/session.js";
|
|
29
33
|
/**
|
|
30
34
|
* 运行时自己挂、不经开发者挑的工具:view_image,只给收图片的模型(模型条目 input 含 image)。
|
|
31
35
|
* 重建的历史里搭子答过的图只剩「[图片 #id]」标签(mlbMessageAgentMessageConverter.ts),模型要看旧图只能靠它;
|
|
@@ -37,6 +41,7 @@ export function builtinTools(model, client, convoKey) {
|
|
|
37
41
|
/** 跑开发者工厂拿配置,叠上运行时预置,建 Agent。模型 id 运行时不支持、工具清单重名、拉平台 system prompt 失败 → throw。 */
|
|
38
42
|
export async function createAgent(deps) {
|
|
39
43
|
const dataAccessUsage = new DataAccessUsageTracker();
|
|
44
|
+
const supportsProducts = deps.key.startsWith("p_");
|
|
40
45
|
/** 这一轮发了等用户操作的卡(权限请求卡、题卡):shouldStopAfterTurn 在这一步收尾后停下,不再请求模型 */
|
|
41
46
|
let waitingForUser = false;
|
|
42
47
|
const waitForUser = () => {
|
|
@@ -44,6 +49,7 @@ export async function createAgent(deps) {
|
|
|
44
49
|
deps.onWaitingForUser();
|
|
45
50
|
};
|
|
46
51
|
const { client } = deps;
|
|
52
|
+
const product = new ProductSession(client, deps.key, () => dataAccessUsage.isProactive() ? undefined : deps.sourceMessage?.(), waitForUser, () => dataAccessUsage.guardPersistence("服务凭证操作(长期留存)"), deps.enqueueMessage);
|
|
47
53
|
// 平台工具:每场会话造一份、绑好会话键,挂在 conversation.tools 上由开发者挑。背后没数据时照样造:
|
|
48
54
|
// 没资料、没声明 Dataset、没有小挂件类型,工具照常注册,调用时回空结果或报错
|
|
49
55
|
const [widgetCreate, widgetRead, widgetReadModule, widgetRename, widgetWriteRecord, widgetDeleteRecord, widgetDelete, widgetSend] = widgetTools(client, deps.key, deps.widgetTypes, deps.enqueueMessage, dataAccessUsage);
|
|
@@ -54,6 +60,7 @@ export async function createAgent(deps) {
|
|
|
54
60
|
rednote: (input) => client.searchRednote(deps.key, input),
|
|
55
61
|
};
|
|
56
62
|
const platformTools = {
|
|
63
|
+
show_product_card: productCardTool(product.api),
|
|
57
64
|
proactive_subscribe: proactiveSubscribe,
|
|
58
65
|
proactive_list: proactiveList,
|
|
59
66
|
proactive_unsubscribe: proactiveUnsubscribe,
|
|
@@ -78,6 +85,7 @@ export async function createAgent(deps) {
|
|
|
78
85
|
};
|
|
79
86
|
// 这些方法在主动服务回合里跟普通回合一样能调:运行时不按回合性质拦,开发者要限制就在 beforeToolCall 里按 proactive.isRunning() 拦
|
|
80
87
|
const conversation = {
|
|
88
|
+
product: product.api,
|
|
81
89
|
key: deps.key,
|
|
82
90
|
log: deps.log,
|
|
83
91
|
tools: platformTools,
|
|
@@ -157,7 +165,7 @@ export async function createAgent(deps) {
|
|
|
157
165
|
const model = createModel(deps.gatewayUrl, options.initialState.model);
|
|
158
166
|
// 平台的 system prompt 拉失败就 throw:这场会话起不来,等下一条消息再重建
|
|
159
167
|
const platformPrompt = await deps.client.systemPrompt(deps.key);
|
|
160
|
-
const devTools = [...(options.initialState.tools ?? []), ...builtinTools(model, client, deps.key)];
|
|
168
|
+
const devTools = [...(options.initialState.tools ?? []).filter(tool => supportsProducts || tool.name !== "show_product_card"), ...builtinTools(model, client, deps.key)];
|
|
161
169
|
assertUniqueToolNames(devTools);
|
|
162
170
|
const tools = devTools.map((tool) => dataAccessUsage.track(tool));
|
|
163
171
|
const { log, key } = deps;
|
|
@@ -196,7 +204,13 @@ export async function createAgent(deps) {
|
|
|
196
204
|
followUpMode: "all",
|
|
197
205
|
// 下面三个钩子按 pi 每次请求模型时的调用顺序排:transformContext → convertToLlm → onPayload;请求体每次请求全量打日志,主动回合也一样。
|
|
198
206
|
// transformContext 的返回值只交给这一次请求,不写回会话历史;场合交代和图片本来就是历史里的记录,不在这里加
|
|
199
|
-
transformContext: async (messages) =>
|
|
207
|
+
transformContext: async (messages) => {
|
|
208
|
+
const context = withCurrentTime(messages, Date.now());
|
|
209
|
+
const note = deps.recoveryNote?.();
|
|
210
|
+
if (note)
|
|
211
|
+
context.push({ role: "user", content: [{ type: "text", text: note }], timestamp: Date.now() });
|
|
212
|
+
return context;
|
|
213
|
+
},
|
|
200
214
|
convertToLlm: agentMessagesToLLMMessages,
|
|
201
215
|
// 只打日志、记请求开始时刻,返回 undefined:返回别的值 pi-ai 会拿它顶替请求体发出去
|
|
202
216
|
onPayload: (payload) => {
|
|
@@ -234,7 +248,7 @@ export async function createAgent(deps) {
|
|
|
234
248
|
shouldStopAfterTurn: async (context, signal) => {
|
|
235
249
|
if (waitingForUser) {
|
|
236
250
|
waitingForUser = false;
|
|
237
|
-
deps.onPolicyStop();
|
|
251
|
+
deps.onPolicyStop(true);
|
|
238
252
|
return true;
|
|
239
253
|
}
|
|
240
254
|
if (options.shouldStopAfterTurn === undefined)
|
|
@@ -267,7 +281,70 @@ export async function createAgent(deps) {
|
|
|
267
281
|
}
|
|
268
282
|
deps.onEvent(agent, event);
|
|
269
283
|
});
|
|
270
|
-
|
|
284
|
+
const applyConfiguration = (config, serviceState) => {
|
|
285
|
+
const nextModel = createModel(deps.gatewayUrl, config.model);
|
|
286
|
+
if (typeof config.systemPrompt !== "string")
|
|
287
|
+
throw new Error("configureTurn 需要返回完整 systemPrompt");
|
|
288
|
+
const nextTools = [...(config.tools ?? []).filter(tool => supportsProducts || tool.name !== "show_product_card"), ...builtinTools(nextModel, client, deps.key)];
|
|
289
|
+
assertUniqueToolNames(nextTools);
|
|
290
|
+
const tracked = nextTools.map(tool => dataAccessUsage.track(tool));
|
|
291
|
+
// 全部校验后一起应用;平台提示与 DataAccess Gate 保留,历史不改。
|
|
292
|
+
agent.state.model = nextModel;
|
|
293
|
+
agent.state.systemPrompt = [platformPrompt, serviceState, config.systemPrompt].filter(part => part !== undefined).join("\n\n");
|
|
294
|
+
agent.state.tools = tracked;
|
|
295
|
+
agent.state.thinkingLevel = config.thinkingLevel ?? "off";
|
|
296
|
+
toolByName.clear();
|
|
297
|
+
for (const tool of tracked)
|
|
298
|
+
toolByName.set(tool.name, tool);
|
|
299
|
+
return nextModel;
|
|
300
|
+
};
|
|
301
|
+
return {
|
|
302
|
+
agent, model, dataAccessUsage, errorReply: options.errorReply,
|
|
303
|
+
invalidateCredential: () => product.invalidate(),
|
|
304
|
+
prepareTurn: async () => {
|
|
305
|
+
if (!supportsProducts || !options.configureTurn)
|
|
306
|
+
return agent.state.model;
|
|
307
|
+
let credential;
|
|
308
|
+
try {
|
|
309
|
+
credential = await product.api.readCurrentCredential();
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
// 查询未知不是未购买;不修改缓存或调用创作者的无凭证分支,也不复用上轮付费工具。
|
|
313
|
+
log.warn("服务凭证暂时无法核验,本轮仅提供基础对话", { convoKey: key });
|
|
314
|
+
return applyConfiguration({ ...options.initialState, tools: [] }, "平台服务状态:凭证校验暂不可用。");
|
|
315
|
+
}
|
|
316
|
+
return applyConfiguration(await options.configureTurn({ credential }));
|
|
317
|
+
},
|
|
318
|
+
handleProductEvent: async (event) => {
|
|
319
|
+
if (!supportsProducts || event.convoKey !== deps.key)
|
|
320
|
+
return;
|
|
321
|
+
product.invalidate();
|
|
322
|
+
if (event.type !== "credential_created" || !options.onCredentialCreated)
|
|
323
|
+
return;
|
|
324
|
+
// 回调可能已启用凭证、但进程在交付或事件确认前退出;重放时仍须从 active 找回同一凭证。
|
|
325
|
+
for (const state of ["pending", "active"]) {
|
|
326
|
+
let cursor;
|
|
327
|
+
do {
|
|
328
|
+
const page = await product.api.listCredentials({ state, cursor });
|
|
329
|
+
const credential = page.items.find(item => item.credentialId === event.credentialId);
|
|
330
|
+
if (!credential) {
|
|
331
|
+
cursor = page.nextCursor;
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
const result = await options.onCredentialCreated(credential);
|
|
335
|
+
const prompt = result?.autoStartPrompt?.trim();
|
|
336
|
+
if (!prompt)
|
|
337
|
+
return;
|
|
338
|
+
if (prompt.length > 1000)
|
|
339
|
+
throw new Error("自动开始指令超过 1000 字符");
|
|
340
|
+
const current = (await product.api.readCurrentCredential({ refresh: true })).current;
|
|
341
|
+
if (current?.credentialId !== credential.credentialId || current.state !== "active")
|
|
342
|
+
throw new Error("服务凭证尚未启用,等待事件重试");
|
|
343
|
+
return prompt;
|
|
344
|
+
} while (cursor);
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
};
|
|
271
348
|
}
|
|
272
349
|
/**
|
|
273
350
|
* 每次请求模型时接在历史末尾那条 user 消息的正文;现在的时间由 convertToLlm 按这条消息的 timestamp 拼在开头。
|
|
@@ -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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"}
|
|
@@ -2,6 +2,7 @@ import type { AgentMessage, StreamFn } from "@earendil-works/pi-agent-core";
|
|
|
2
2
|
import type { MLBClient, WidgetType } from "../mlbClient.ts";
|
|
3
3
|
import type { Resource } from "../tools/resource.ts";
|
|
4
4
|
import type { BuddyFactory, BuddyLogger, DataRequirement, ProactiveRun, ProactiveSkip, WidgetChangeRun } from "../types.ts";
|
|
5
|
+
import type { ProductEvent } from "../services/types.ts";
|
|
5
6
|
import type { CompactionSnapshot } from "./compaction.ts";
|
|
6
7
|
export interface ConversationHandleDeps {
|
|
7
8
|
/** 平台会话键:p_ 私聊、g_ 群 */
|
|
@@ -29,6 +30,12 @@ export interface ConversationHandleDeps {
|
|
|
29
30
|
export declare class ConversationHandle {
|
|
30
31
|
/** 收到过 welcome 事件(会话刚建好):首次拉到的只有场合交代时,重建完从它接着起回合开口 */
|
|
31
32
|
private welcomeRequested;
|
|
33
|
+
private pendingRequests;
|
|
34
|
+
private readonly answeredRequests;
|
|
35
|
+
private readonly consumedRequests;
|
|
36
|
+
private readonly inputRequests;
|
|
37
|
+
private recoveryNote;
|
|
38
|
+
private readonly inputRecords;
|
|
32
39
|
private steered;
|
|
33
40
|
private policyStopped;
|
|
34
41
|
private readonly deps;
|
|
@@ -40,6 +47,7 @@ export declare class ConversationHandle {
|
|
|
40
47
|
private agent;
|
|
41
48
|
/** 与主 Agent 相同的模型条目;Widget 快速二元判断用它发一条独立、无工具、低思考请求。 */
|
|
42
49
|
private model;
|
|
50
|
+
private created;
|
|
43
51
|
private dataAccessUsage;
|
|
44
52
|
/** 每条 assistant 工具步生成参数前是否已经见过授权数据;message_end 记下,turn_end 写回时使用。 */
|
|
45
53
|
private readonly dataAccessTaintedSteps;
|
|
@@ -64,6 +72,9 @@ export declare class ConversationHandle {
|
|
|
64
72
|
private proactiveRun;
|
|
65
73
|
private proactiveTask;
|
|
66
74
|
private widgetChangeTask;
|
|
75
|
+
/** 购买触发的交付回合期间,后到的用户消息等交付收尾后再按普通规则处理。 */
|
|
76
|
+
private productDelivery;
|
|
77
|
+
private deferredDuringProductDelivery;
|
|
67
78
|
private widgetChangeReplying;
|
|
68
79
|
private widgetChangeDecisionAbort;
|
|
69
80
|
private deferredDuringProactive;
|
|
@@ -83,8 +94,11 @@ export declare class ConversationHandle {
|
|
|
83
94
|
snapshotForCompaction(): CompactionSnapshot | undefined;
|
|
84
95
|
/** SSE message / welcome 到了:让 reader 拉一次,welcome 另记下会话刚建好。已退役的直接忽略 */
|
|
85
96
|
notify(welcome?: boolean): void;
|
|
86
|
-
/**
|
|
87
|
-
|
|
97
|
+
/** 服务事件由创作者决定是否自动开始;交付成功才让外层确认持久事件。 */
|
|
98
|
+
handleProductEvent(event: ProductEvent): Promise<void>;
|
|
99
|
+
private runProductDelivery;
|
|
100
|
+
invalidateCredential(): void;
|
|
101
|
+
private prepareTurn;
|
|
88
102
|
runProactive(run: ProactiveRun): Promise<ProactiveSkip | undefined>;
|
|
89
103
|
/** Widget 详情页关闭后的隐藏回合:不推 delta;模型确定要回复后才短暂打开思考态,[[SILENT]] 不打扰。 */
|
|
90
104
|
runWidgetChange(run: WidgetChangeRun): Promise<"reply" | "silent" | "failed">;
|
|
@@ -111,14 +125,19 @@ export declare class ConversationHandle {
|
|
|
111
125
|
*/
|
|
112
126
|
private onMessages;
|
|
113
127
|
/**
|
|
114
|
-
* 首次拉取:建 Agent
|
|
115
|
-
*
|
|
128
|
+
* 首次拉取:建 Agent,整段历史按平台顺序还原,再根据 pendingRequests 继续待答输入(REDoc《【技术设计】搭子会话重建》)。
|
|
129
|
+
* 旧平台不提供 pendingRequests 时,保留 splitForRebuild 的按时间切分。
|
|
130
|
+
* 灌历史时带上这个进程的搭子版本:换版之前那一版写的搭子记录(含打版本戳之前写的)换成一条平台附注,不还原成它自己的话,
|
|
131
|
+
* 模型就不会照着上一版的做法接着做;平台还没发 version 事件时不替换。
|
|
116
132
|
*/
|
|
117
133
|
private rebuild;
|
|
134
|
+
/** 完整历史只注入一次,已有工具结果从其后继续生成。 */
|
|
135
|
+
private resumePending;
|
|
136
|
+
private continueHistory;
|
|
118
137
|
/** 一批新记录(reader 只交比上一批晚的,自己写回的也在里面——包括主动回合里写的那些,内存里本来就有):对方的交给 admit */
|
|
119
138
|
private ingest;
|
|
120
139
|
/**
|
|
121
|
-
*
|
|
140
|
+
* 新收到的对方记录换成 user 消息分发;旧平台重建时也用它接收 splitForRebuild 切出的待答记录。
|
|
122
141
|
* 其中有一条是用户说的、平台标了该答(wantsReply),就要开口:
|
|
123
142
|
* 空闲 + 不用开口 → 直接进历史;空闲 + 要开口 → 起回合;忙 + 不用开口 → 攒进 heard;忙 + 要开口 → steer 进当前回合。
|
|
124
143
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversation/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversation/index.ts"],"names":[],"mappings":"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"}
|