@cicctencent/agent-core 0.1.30 → 0.1.31
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/dist/cjs/agent/engine.d.ts +57 -0
- package/dist/cjs/agent/engine.d.ts.map +1 -1
- package/dist/cjs/agent/engine.js +191 -1
- package/dist/cjs/agent/engine.js.map +1 -1
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
- package/dist/cjs/agent/llm-caller.js +8 -0
- package/dist/cjs/agent/llm-caller.js.map +1 -1
- package/dist/cjs/agent/rate-limit-manager.d.ts +127 -0
- package/dist/cjs/agent/rate-limit-manager.d.ts.map +1 -0
- package/dist/cjs/agent/rate-limit-manager.js +465 -0
- package/dist/cjs/agent/rate-limit-manager.js.map +1 -0
- package/dist/cjs/agent/tool-executor.d.ts +11 -0
- package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
- package/dist/cjs/agent/tool-executor.js +95 -4
- package/dist/cjs/agent/tool-executor.js.map +1 -1
- package/dist/cjs/agent/types.d.ts +59 -0
- package/dist/cjs/agent/types.d.ts.map +1 -1
- package/dist/cjs/agent/types.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +7 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/runtime/run-registry.d.ts +2 -0
- package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.js +24 -1
- package/dist/cjs/runtime/run-registry.js.map +1 -1
- package/dist/cjs/utils/dsml-parser.d.ts +1 -1
- package/dist/cjs/utils/dsml-parser.d.ts.map +1 -1
- package/dist/cjs/utils/dsml-parser.js +16 -3
- package/dist/cjs/utils/dsml-parser.js.map +1 -1
- package/dist/esm/agent/engine.d.ts +57 -0
- package/dist/esm/agent/engine.d.ts.map +1 -1
- package/dist/esm/agent/engine.js +191 -1
- package/dist/esm/agent/engine.js.map +1 -1
- package/dist/esm/agent/llm-caller.d.ts.map +1 -1
- package/dist/esm/agent/llm-caller.js +8 -0
- package/dist/esm/agent/llm-caller.js.map +1 -1
- package/dist/esm/agent/rate-limit-manager.d.ts +127 -0
- package/dist/esm/agent/rate-limit-manager.d.ts.map +1 -0
- package/dist/esm/agent/rate-limit-manager.js +463 -0
- package/dist/esm/agent/rate-limit-manager.js.map +1 -0
- package/dist/esm/agent/tool-executor.d.ts +11 -0
- package/dist/esm/agent/tool-executor.d.ts.map +1 -1
- package/dist/esm/agent/tool-executor.js +95 -4
- package/dist/esm/agent/tool-executor.js.map +1 -1
- package/dist/esm/agent/types.d.ts +59 -0
- package/dist/esm/agent/types.d.ts.map +1 -1
- package/dist/esm/agent/types.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/run-registry.d.ts +2 -0
- package/dist/esm/runtime/run-registry.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.js +24 -1
- package/dist/esm/runtime/run-registry.js.map +1 -1
- package/dist/esm/utils/dsml-parser.d.ts +1 -1
- package/dist/esm/utils/dsml-parser.d.ts.map +1 -1
- package/dist/esm/utils/dsml-parser.js +16 -3
- package/dist/esm/utils/dsml-parser.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全局速率限制 + 并发控制管理器(单例)
|
|
3
|
+
*/
|
|
4
|
+
declare class RateLimitManager {
|
|
5
|
+
/** 是否正在冷却中 */
|
|
6
|
+
private cooldown;
|
|
7
|
+
/** 冷却结束时间(ms 时间戳) */
|
|
8
|
+
private cooldownUntil;
|
|
9
|
+
/** 连续 429 计数(同一冷却周期内累计) */
|
|
10
|
+
private count429;
|
|
11
|
+
/** 冷却周期数(每次触发冷却递增,用于指数退避) */
|
|
12
|
+
private cooldownCycles;
|
|
13
|
+
/** 当前活跃的子 Agent 数量 */
|
|
14
|
+
private activeSubSessionCount;
|
|
15
|
+
/** 已注册但尚未释放的子会话集合(防止重复释放) */
|
|
16
|
+
private activeSubSessionSet;
|
|
17
|
+
/** 并发控制等待队列 */
|
|
18
|
+
private waitQueue;
|
|
19
|
+
/** 子会话 ID → 父会话 ID */
|
|
20
|
+
private parentMap;
|
|
21
|
+
/** 主会话 ID → AbortController(用于在多轮冷却失败时终止主会话) */
|
|
22
|
+
private mainSessionControllers;
|
|
23
|
+
/** 已终止的主会话 ID(防止重复 abort) */
|
|
24
|
+
private abortedSessions;
|
|
25
|
+
/**
|
|
26
|
+
* 注册主会话。由 AgentEngine.run() 在开始时调用。
|
|
27
|
+
*
|
|
28
|
+
* @param sessionId 主会话 ID
|
|
29
|
+
* @param controller 引擎内部 AbortController,RateLimitManager 在多轮冷却失败时
|
|
30
|
+
* 可调用 controller.abort() 终止主会话
|
|
31
|
+
*/
|
|
32
|
+
registerMainSession(sessionId: string, controller: AbortController): void;
|
|
33
|
+
/**
|
|
34
|
+
* 注销主会话。由 AgentEngine.run() 在 finally 中调用。
|
|
35
|
+
* 清理该主会话下的所有子会话映射并唤醒等待队列。
|
|
36
|
+
*/
|
|
37
|
+
unregisterMainSession(sessionId: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* 注册子会话。由 AgentEngine.linkChildSession() 调用。
|
|
40
|
+
*
|
|
41
|
+
* 注意:此方法仅建立父子映射,不增加并发计数。
|
|
42
|
+
* 并发计数在 acquireSubSessionSlot() 中完成。
|
|
43
|
+
*/
|
|
44
|
+
registerSubSession(childId: string, parentId: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* 注销子会话。由 AgentEngine.unlinkChildSession() 调用。
|
|
47
|
+
* 同时释放并发槽位并唤醒等待队列。
|
|
48
|
+
*/
|
|
49
|
+
unregisterSubSession(childId: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* 获取子 Agent 执行槽位(并发控制)。
|
|
52
|
+
*
|
|
53
|
+
* 在 delegate_task 工具执行前调用,确保同时运行的子 Agent 不超过上限。
|
|
54
|
+
* - 冷却期内自动等待冷却结束
|
|
55
|
+
* - 并发槽位满时排队等待,超时则拒绝
|
|
56
|
+
*
|
|
57
|
+
* 注意:本方法会增加 activeSubSessionCount。调用方在子 Agent 结束后
|
|
58
|
+
* 必须调用 releaseSubSessionSlot() 或 unregisterSubSession() 释放槽位。
|
|
59
|
+
*
|
|
60
|
+
* @param sessionId 子会话 ID(用于在父会话 abort 时提前退出等待)
|
|
61
|
+
* @returns true 表示获得槽位可以执行,false 表示超时或被拒绝
|
|
62
|
+
*/
|
|
63
|
+
acquireSubSessionSlot(sessionId?: string): Promise<boolean>;
|
|
64
|
+
/**
|
|
65
|
+
* 释放子 Agent 执行槽位。
|
|
66
|
+
*
|
|
67
|
+
* 由 delegate_task 工具执行结束(无论成功或失败)后调用。
|
|
68
|
+
* 唤醒等待队列中的下一个子 Agent。
|
|
69
|
+
*/
|
|
70
|
+
releaseSubSessionSlot(sessionId?: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* 处理 429 速率限制事件。
|
|
73
|
+
*
|
|
74
|
+
* 由 LLMCaller 在捕获 429 错误时调用。
|
|
75
|
+
*
|
|
76
|
+
* 三级递进策略:
|
|
77
|
+
* 1. 容忍期(< 阈值):仅记录,让 LLM 层重试/降级自行处理
|
|
78
|
+
* 2. 冷却期(≥ 阈值):触发指数退避冷却,新子 Agent 排队等待
|
|
79
|
+
* 3. 终止期(冷却周期超过上限):终止整个主会话
|
|
80
|
+
*/
|
|
81
|
+
handleRateLimited(sessionId: string): void;
|
|
82
|
+
/** 是否处于冷却期 */
|
|
83
|
+
isCooling(): boolean;
|
|
84
|
+
/** 是否已达到并发上限或正在冷却(用于快速拒绝新请求) */
|
|
85
|
+
isRateLimitedOrSaturated(): boolean;
|
|
86
|
+
/** 获取当前状态快照(诊断用) */
|
|
87
|
+
getStats(): {
|
|
88
|
+
cooldown: boolean;
|
|
89
|
+
cooldownRemainingMs: number;
|
|
90
|
+
count429: number;
|
|
91
|
+
cooldownCycles: number;
|
|
92
|
+
activeSubSessions: number;
|
|
93
|
+
maxConcurrent: number;
|
|
94
|
+
queueLength: number;
|
|
95
|
+
};
|
|
96
|
+
/** 启动速率限制冷却期(指数退避) */
|
|
97
|
+
private startCooldown;
|
|
98
|
+
/** 获取当前冷却时长(指数退避:30s → 60s → 120s) */
|
|
99
|
+
private getCooldownDuration;
|
|
100
|
+
/** 终止指定主会话 */
|
|
101
|
+
private abortMainSession;
|
|
102
|
+
/** 等待冷却期结束 */
|
|
103
|
+
private waitCooldown;
|
|
104
|
+
/** 等待并发槽位(带超时) */
|
|
105
|
+
private waitForSlot;
|
|
106
|
+
/** 唤醒排队中的子 Agent,直到并发槽位用尽或队列空 */
|
|
107
|
+
private drainQueue;
|
|
108
|
+
/** 检查指定子会话的父主会话是否已被 abort */
|
|
109
|
+
private isParentAborted;
|
|
110
|
+
/** 重置全局限流状态(无活跃主会话时调用) */
|
|
111
|
+
private resetGlobal;
|
|
112
|
+
/** 重置指定主会话相关的限流状态 */
|
|
113
|
+
private resetForSession;
|
|
114
|
+
}
|
|
115
|
+
/** 全局单例(跨所有 AgentEngine 实例共享) */
|
|
116
|
+
export declare const rateLimitManager: RateLimitManager;
|
|
117
|
+
/** 导出类用于测试或自定义实例化 */
|
|
118
|
+
export { RateLimitManager };
|
|
119
|
+
/** 导出常量供外部读取(不可修改) */
|
|
120
|
+
export declare const RATE_LIMIT_CONFIG: {
|
|
121
|
+
readonly RATE_LIMIT_THRESHOLD: 3;
|
|
122
|
+
readonly COOLDOWN_BASE_MS: 30000;
|
|
123
|
+
readonly MAX_COOLDOWN_CYCLES: 3;
|
|
124
|
+
readonly MAX_CONCURRENT_SUB_SESSIONS: 3;
|
|
125
|
+
readonly SUB_SESSION_WAIT_TIMEOUT: 120000;
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=rate-limit-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AAgDA;;GAEG;AACH,cAAM,gBAAgB;IAEpB,cAAc;IACd,OAAO,CAAC,QAAQ,CAAS;IACzB,qBAAqB;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAK;IAG3B,sBAAsB;IACtB,OAAO,CAAC,qBAAqB,CAAK;IAClC,6BAA6B;IAC7B,OAAO,CAAC,mBAAmB,CAAqB;IAChD,eAAe;IACf,OAAO,CAAC,SAAS,CAAmB;IAGpC,sBAAsB;IACtB,OAAO,CAAC,SAAS,CAA6B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,6BAA6B;IAC7B,OAAO,CAAC,eAAe,CAAqB;IAI5C;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAIzE;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAiC9C;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAa3C;;;;;;;;;;;;OAYG;IACG,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCjE;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAuD1C,cAAc;IACd,SAAS,IAAI,OAAO;IAIpB,gCAAgC;IAChC,wBAAwB,IAAI,OAAO;IAInC,oBAAoB;IACpB,QAAQ,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB;IAcD,sBAAsB;IACtB,OAAO,CAAC,aAAa;IAmBrB,sCAAsC;IACtC,OAAO,CAAC,mBAAmB;IAI3B,cAAc;IACd,OAAO,CAAC,gBAAgB;IAqBxB,cAAc;IACd,OAAO,CAAC,YAAY;IAmBpB,kBAAkB;IAClB,OAAO,CAAC,WAAW;IAoCnB,iCAAiC;IACjC,OAAO,CAAC,UAAU;IA2BlB,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAMvB,0BAA0B;IAC1B,OAAO,CAAC,WAAW;IAuBnB,qBAAqB;IACrB,OAAO,CAAC,eAAe;CAkBxB;AAED,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,kBAAyB,CAAC;AAEvD,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,sBAAsB;AACtB,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC"}
|
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// RateLimitManager — 全局速率限制 + 子 Agent 并发控制
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// 解决 delegate_task 并发风暴导致的 LLM API TPM 限流(429)问题。
|
|
7
|
+
//
|
|
8
|
+
// 三级递进策略(与 omniinsight-bi AgentService 中的实现等价):
|
|
9
|
+
// 1. 容忍期:短时间内收到少量 429 时仅记录,让 LLM 层重试/降级自行处理
|
|
10
|
+
// 2. 冷却期:达到阈值后进入指数退避冷却(30s → 60s → 120s),
|
|
11
|
+
// 期间新建子 Agent 排队等待,已有子 Agent 继续运行
|
|
12
|
+
// 3. 终止期:冷却周期超过上限后终止整个主会话(避免无限循环)
|
|
13
|
+
//
|
|
14
|
+
// 并发控制:
|
|
15
|
+
// - MAX_CONCURRENT_SUB_SESSIONS 限制同时运行的子 Agent 数量
|
|
16
|
+
// - 超出上限时新请求进入等待队列,超时则拒绝
|
|
17
|
+
//
|
|
18
|
+
// 生命周期追踪:
|
|
19
|
+
// - registerMainSession / unregisterMainSession:由 AgentEngine.run() 调用
|
|
20
|
+
// - registerSubSession / unregisterSubSession:由 AgentEngine.linkChildSession() 调用
|
|
21
|
+
// - 子 Agent 完成时通过 releaseSubSessionSlot 释放槽位并唤醒队列
|
|
22
|
+
//
|
|
23
|
+
// 注意:本模块为进程级单例,跨所有 AgentEngine 实例共享状态,
|
|
24
|
+
// 因为 TPM 限制是 LLM API 层面的,所有 Engine 共享同一个 LLMProvider。
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.RATE_LIMIT_CONFIG = exports.RateLimitManager = exports.rateLimitManager = void 0;
|
|
27
|
+
const logger_ts_1 = require("../observability/logger.js");
|
|
28
|
+
/** 速率限制触发阈值:在短时间内收到这么多 429 即触发冷却 */
|
|
29
|
+
const RATE_LIMIT_THRESHOLD = 3;
|
|
30
|
+
/** 初始冷却时长(ms),后续每次翻倍 */
|
|
31
|
+
const COOLDOWN_BASE_MS = 30_000;
|
|
32
|
+
/** 最大冷却周期数:超过此值后终止整个主会话 */
|
|
33
|
+
const MAX_COOLDOWN_CYCLES = 3;
|
|
34
|
+
/** 最大并发子 Agent 数 */
|
|
35
|
+
const MAX_CONCURRENT_SUB_SESSIONS = 3;
|
|
36
|
+
/** 子 Agent 排队最大等待时间(ms),超时则拒绝 */
|
|
37
|
+
const SUB_SESSION_WAIT_TIMEOUT = 120_000;
|
|
38
|
+
/**
|
|
39
|
+
* 全局速率限制 + 并发控制管理器(单例)
|
|
40
|
+
*/
|
|
41
|
+
class RateLimitManager {
|
|
42
|
+
// ══════ 限流状态 ══════
|
|
43
|
+
/** 是否正在冷却中 */
|
|
44
|
+
cooldown = false;
|
|
45
|
+
/** 冷却结束时间(ms 时间戳) */
|
|
46
|
+
cooldownUntil = 0;
|
|
47
|
+
/** 连续 429 计数(同一冷却周期内累计) */
|
|
48
|
+
count429 = 0;
|
|
49
|
+
/** 冷却周期数(每次触发冷却递增,用于指数退避) */
|
|
50
|
+
cooldownCycles = 0;
|
|
51
|
+
// ══════ 并发控制 ══════
|
|
52
|
+
/** 当前活跃的子 Agent 数量 */
|
|
53
|
+
activeSubSessionCount = 0;
|
|
54
|
+
/** 已注册但尚未释放的子会话集合(防止重复释放) */
|
|
55
|
+
activeSubSessionSet = new Set();
|
|
56
|
+
/** 并发控制等待队列 */
|
|
57
|
+
waitQueue = [];
|
|
58
|
+
// ══════ 父子会话映射 ══════
|
|
59
|
+
/** 子会话 ID → 父会话 ID */
|
|
60
|
+
parentMap = new Map();
|
|
61
|
+
/** 主会话 ID → AbortController(用于在多轮冷却失败时终止主会话) */
|
|
62
|
+
mainSessionControllers = new Map();
|
|
63
|
+
/** 已终止的主会话 ID(防止重复 abort) */
|
|
64
|
+
abortedSessions = new Set();
|
|
65
|
+
// ───────── 主会话生命周期 ─────────
|
|
66
|
+
/**
|
|
67
|
+
* 注册主会话。由 AgentEngine.run() 在开始时调用。
|
|
68
|
+
*
|
|
69
|
+
* @param sessionId 主会话 ID
|
|
70
|
+
* @param controller 引擎内部 AbortController,RateLimitManager 在多轮冷却失败时
|
|
71
|
+
* 可调用 controller.abort() 终止主会话
|
|
72
|
+
*/
|
|
73
|
+
registerMainSession(sessionId, controller) {
|
|
74
|
+
this.mainSessionControllers.set(sessionId, controller);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 注销主会话。由 AgentEngine.run() 在 finally 中调用。
|
|
78
|
+
* 清理该主会话下的所有子会话映射并唤醒等待队列。
|
|
79
|
+
*/
|
|
80
|
+
unregisterMainSession(sessionId) {
|
|
81
|
+
this.mainSessionControllers.delete(sessionId);
|
|
82
|
+
this.abortedSessions.delete(sessionId);
|
|
83
|
+
// 清理该主会话下的所有子会话映射(sessionId 作为 parent)
|
|
84
|
+
for (const [subId, parentId] of this.parentMap) {
|
|
85
|
+
if (parentId === sessionId) {
|
|
86
|
+
this.parentMap.delete(subId);
|
|
87
|
+
// 子会话可能仍在活跃集合中(异常退出未正常释放)
|
|
88
|
+
if (this.activeSubSessionSet.has(subId)) {
|
|
89
|
+
this.activeSubSessionSet.delete(subId);
|
|
90
|
+
if (this.activeSubSessionCount > 0)
|
|
91
|
+
this.activeSubSessionCount--;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// 兜底:清理 sessionId 作为 child 的条目(子 engine run() 结束时自动清理自身映射)
|
|
96
|
+
// 注意:不递减 activeSubSessionCount,因为并发槽位由 tool-executor 的
|
|
97
|
+
// releaseSubSessionSlot 管理(使用临时 subslot ID,不是实际的 sessionId)
|
|
98
|
+
this.parentMap.delete(sessionId);
|
|
99
|
+
this.activeSubSessionSet.delete(sessionId);
|
|
100
|
+
// 如果已经没有任何活跃主会话,重置全局限流状态
|
|
101
|
+
if (this.mainSessionControllers.size === 0) {
|
|
102
|
+
this.resetGlobal();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// 仍有其他主会话在运行,尝试唤醒排队
|
|
106
|
+
this.drainQueue();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// ───────── 子会话生命周期 ─────────
|
|
110
|
+
/**
|
|
111
|
+
* 注册子会话。由 AgentEngine.linkChildSession() 调用。
|
|
112
|
+
*
|
|
113
|
+
* 注意:此方法仅建立父子映射,不增加并发计数。
|
|
114
|
+
* 并发计数在 acquireSubSessionSlot() 中完成。
|
|
115
|
+
*/
|
|
116
|
+
registerSubSession(childId, parentId) {
|
|
117
|
+
this.parentMap.set(childId, parentId);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* 注销子会话。由 AgentEngine.unlinkChildSession() 调用。
|
|
121
|
+
* 同时释放并发槽位并唤醒等待队列。
|
|
122
|
+
*/
|
|
123
|
+
unregisterSubSession(childId) {
|
|
124
|
+
const wasActive = this.activeSubSessionSet.has(childId);
|
|
125
|
+
this.activeSubSessionSet.delete(childId);
|
|
126
|
+
this.parentMap.delete(childId);
|
|
127
|
+
if (wasActive) {
|
|
128
|
+
if (this.activeSubSessionCount > 0)
|
|
129
|
+
this.activeSubSessionCount--;
|
|
130
|
+
this.drainQueue();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// ───────── 并发槽位 ─────────
|
|
134
|
+
/**
|
|
135
|
+
* 获取子 Agent 执行槽位(并发控制)。
|
|
136
|
+
*
|
|
137
|
+
* 在 delegate_task 工具执行前调用,确保同时运行的子 Agent 不超过上限。
|
|
138
|
+
* - 冷却期内自动等待冷却结束
|
|
139
|
+
* - 并发槽位满时排队等待,超时则拒绝
|
|
140
|
+
*
|
|
141
|
+
* 注意:本方法会增加 activeSubSessionCount。调用方在子 Agent 结束后
|
|
142
|
+
* 必须调用 releaseSubSessionSlot() 或 unregisterSubSession() 释放槽位。
|
|
143
|
+
*
|
|
144
|
+
* @param sessionId 子会话 ID(用于在父会话 abort 时提前退出等待)
|
|
145
|
+
* @returns true 表示获得槽位可以执行,false 表示超时或被拒绝
|
|
146
|
+
*/
|
|
147
|
+
async acquireSubSessionSlot(sessionId) {
|
|
148
|
+
// ① 如果处于冷却期,等待冷却结束
|
|
149
|
+
if (this.cooldown) {
|
|
150
|
+
const remaining = Math.max(0, this.cooldownUntil - Date.now());
|
|
151
|
+
if (remaining > 0) {
|
|
152
|
+
if (remaining > SUB_SESSION_WAIT_TIMEOUT) {
|
|
153
|
+
(0, logger_ts_1.logEvent)({
|
|
154
|
+
event: 'rate_limit.cooldown_too_long',
|
|
155
|
+
level: 'warn',
|
|
156
|
+
sessionId,
|
|
157
|
+
data: { remaining, max: SUB_SESSION_WAIT_TIMEOUT },
|
|
158
|
+
});
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
await this.waitCooldown(remaining, sessionId);
|
|
162
|
+
// 等待期间父会话可能已 abort
|
|
163
|
+
if (sessionId && this.isParentAborted(sessionId)) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// ② 检查并发槽位
|
|
169
|
+
if (this.activeSubSessionCount >= MAX_CONCURRENT_SUB_SESSIONS) {
|
|
170
|
+
const granted = await this.waitForSlot(sessionId);
|
|
171
|
+
if (!granted)
|
|
172
|
+
return false;
|
|
173
|
+
// 等待期间父会话可能已 abort
|
|
174
|
+
if (sessionId && this.isParentAborted(sessionId)) {
|
|
175
|
+
// 释放刚刚获得的槽位
|
|
176
|
+
this.releaseSubSessionSlot();
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// ③ 获得槽位
|
|
181
|
+
this.activeSubSessionCount++;
|
|
182
|
+
if (sessionId)
|
|
183
|
+
this.activeSubSessionSet.add(sessionId);
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* 释放子 Agent 执行槽位。
|
|
188
|
+
*
|
|
189
|
+
* 由 delegate_task 工具执行结束(无论成功或失败)后调用。
|
|
190
|
+
* 唤醒等待队列中的下一个子 Agent。
|
|
191
|
+
*/
|
|
192
|
+
releaseSubSessionSlot(sessionId) {
|
|
193
|
+
if (sessionId)
|
|
194
|
+
this.activeSubSessionSet.delete(sessionId);
|
|
195
|
+
if (this.activeSubSessionCount > 0)
|
|
196
|
+
this.activeSubSessionCount--;
|
|
197
|
+
this.drainQueue();
|
|
198
|
+
}
|
|
199
|
+
// ───────── 429 速率限制处理 ─────────
|
|
200
|
+
/**
|
|
201
|
+
* 处理 429 速率限制事件。
|
|
202
|
+
*
|
|
203
|
+
* 由 LLMCaller 在捕获 429 错误时调用。
|
|
204
|
+
*
|
|
205
|
+
* 三级递进策略:
|
|
206
|
+
* 1. 容忍期(< 阈值):仅记录,让 LLM 层重试/降级自行处理
|
|
207
|
+
* 2. 冷却期(≥ 阈值):触发指数退避冷却,新子 Agent 排队等待
|
|
208
|
+
* 3. 终止期(冷却周期超过上限):终止整个主会话
|
|
209
|
+
*/
|
|
210
|
+
handleRateLimited(sessionId) {
|
|
211
|
+
this.count429++;
|
|
212
|
+
// 解析父主会话 ID
|
|
213
|
+
const parentSessionId = this.parentMap.get(sessionId) || sessionId;
|
|
214
|
+
// 已处于冷却期:仅记录,让冷却计时自然结束
|
|
215
|
+
if (this.cooldown) {
|
|
216
|
+
(0, logger_ts_1.logEvent)({
|
|
217
|
+
event: 'rate_limit.429_during_cooldown',
|
|
218
|
+
level: 'warn',
|
|
219
|
+
sessionId,
|
|
220
|
+
data: {
|
|
221
|
+
count429: this.count429,
|
|
222
|
+
cooldownRemaining: Math.max(0, this.cooldownUntil - Date.now()),
|
|
223
|
+
parentSessionId,
|
|
224
|
+
},
|
|
225
|
+
});
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
// 未冷却:检查是否达到触发阈值
|
|
229
|
+
if (this.count429 >= RATE_LIMIT_THRESHOLD) {
|
|
230
|
+
this.startCooldown();
|
|
231
|
+
// 检查冷却周期是否超过上限 → 终止主会话
|
|
232
|
+
if (this.cooldownCycles >= MAX_COOLDOWN_CYCLES) {
|
|
233
|
+
this.abortMainSession(parentSessionId);
|
|
234
|
+
this.resetForSession(parentSessionId);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
(0, logger_ts_1.logEvent)({
|
|
238
|
+
event: 'rate_limit.cooldown_started',
|
|
239
|
+
level: 'warn',
|
|
240
|
+
sessionId,
|
|
241
|
+
data: {
|
|
242
|
+
cycle: this.cooldownCycles,
|
|
243
|
+
durationMs: this.getCooldownDuration(),
|
|
244
|
+
count429: this.count429,
|
|
245
|
+
activeSubSessions: this.activeSubSessionCount,
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// 未达到阈值,仅记录
|
|
252
|
+
(0, logger_ts_1.logEvent)({
|
|
253
|
+
event: 'rate_limit.429_observed',
|
|
254
|
+
level: 'warn',
|
|
255
|
+
sessionId,
|
|
256
|
+
data: { count429: this.count429, threshold: RATE_LIMIT_THRESHOLD },
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// ───────── 查询 API ─────────
|
|
261
|
+
/** 是否处于冷却期 */
|
|
262
|
+
isCooling() {
|
|
263
|
+
return this.cooldown;
|
|
264
|
+
}
|
|
265
|
+
/** 是否已达到并发上限或正在冷却(用于快速拒绝新请求) */
|
|
266
|
+
isRateLimitedOrSaturated() {
|
|
267
|
+
return this.cooldown || this.activeSubSessionCount >= MAX_CONCURRENT_SUB_SESSIONS;
|
|
268
|
+
}
|
|
269
|
+
/** 获取当前状态快照(诊断用) */
|
|
270
|
+
getStats() {
|
|
271
|
+
return {
|
|
272
|
+
cooldown: this.cooldown,
|
|
273
|
+
cooldownRemainingMs: Math.max(0, this.cooldownUntil - Date.now()),
|
|
274
|
+
count429: this.count429,
|
|
275
|
+
cooldownCycles: this.cooldownCycles,
|
|
276
|
+
activeSubSessions: this.activeSubSessionCount,
|
|
277
|
+
maxConcurrent: MAX_CONCURRENT_SUB_SESSIONS,
|
|
278
|
+
queueLength: this.waitQueue.length,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
// ───────── 内部实现 ─────────
|
|
282
|
+
/** 启动速率限制冷却期(指数退避) */
|
|
283
|
+
startCooldown() {
|
|
284
|
+
this.cooldown = true;
|
|
285
|
+
this.cooldownCycles++;
|
|
286
|
+
const duration = this.getCooldownDuration();
|
|
287
|
+
this.cooldownUntil = Date.now() + duration;
|
|
288
|
+
setTimeout(() => {
|
|
289
|
+
this.cooldown = false;
|
|
290
|
+
this.count429 = 0;
|
|
291
|
+
(0, logger_ts_1.logEvent)({
|
|
292
|
+
event: 'rate_limit.cooldown_ended',
|
|
293
|
+
level: 'info',
|
|
294
|
+
data: { cycle: this.cooldownCycles },
|
|
295
|
+
});
|
|
296
|
+
// 唤醒排队中的子 Agent
|
|
297
|
+
this.drainQueue();
|
|
298
|
+
}, duration);
|
|
299
|
+
}
|
|
300
|
+
/** 获取当前冷却时长(指数退避:30s → 60s → 120s) */
|
|
301
|
+
getCooldownDuration() {
|
|
302
|
+
return COOLDOWN_BASE_MS * Math.pow(2, this.cooldownCycles - 1);
|
|
303
|
+
}
|
|
304
|
+
/** 终止指定主会话 */
|
|
305
|
+
abortMainSession(sessionId) {
|
|
306
|
+
if (this.abortedSessions.has(sessionId))
|
|
307
|
+
return;
|
|
308
|
+
this.abortedSessions.add(sessionId);
|
|
309
|
+
const controller = this.mainSessionControllers.get(sessionId);
|
|
310
|
+
if (controller && !controller.signal.aborted) {
|
|
311
|
+
controller.abort(new Error(`TPM rate limit — ${this.cooldownCycles} cooldown cycles exhausted`));
|
|
312
|
+
(0, logger_ts_1.logEvent)({
|
|
313
|
+
event: 'rate_limit.main_session_aborted',
|
|
314
|
+
level: 'error',
|
|
315
|
+
sessionId,
|
|
316
|
+
data: {
|
|
317
|
+
cooldownCycles: this.cooldownCycles,
|
|
318
|
+
count429: this.count429,
|
|
319
|
+
},
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/** 等待冷却期结束 */
|
|
324
|
+
waitCooldown(remainingMs, sessionId) {
|
|
325
|
+
return new Promise(resolve => {
|
|
326
|
+
const timer = setTimeout(resolve, remainingMs);
|
|
327
|
+
// 主会话被 abort 时提前退出等待
|
|
328
|
+
if (sessionId) {
|
|
329
|
+
const parentId = this.parentMap.get(sessionId) || sessionId;
|
|
330
|
+
const controller = this.mainSessionControllers.get(parentId);
|
|
331
|
+
if (controller && !controller.signal.aborted) {
|
|
332
|
+
const onAbort = () => {
|
|
333
|
+
clearTimeout(timer);
|
|
334
|
+
resolve();
|
|
335
|
+
};
|
|
336
|
+
controller.signal.addEventListener('abort', onAbort, { once: true });
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
/** 等待并发槽位(带超时) */
|
|
342
|
+
waitForSlot(sessionId) {
|
|
343
|
+
return new Promise(resolve => {
|
|
344
|
+
const item = { resolve, sessionId };
|
|
345
|
+
// 排队超时
|
|
346
|
+
item.timeoutId = setTimeout(() => {
|
|
347
|
+
const idx = this.waitQueue.indexOf(item);
|
|
348
|
+
if (idx !== -1)
|
|
349
|
+
this.waitQueue.splice(idx, 1);
|
|
350
|
+
(0, logger_ts_1.logEvent)({
|
|
351
|
+
event: 'rate_limit.slot_wait_timeout',
|
|
352
|
+
level: 'warn',
|
|
353
|
+
sessionId,
|
|
354
|
+
data: { timeout: SUB_SESSION_WAIT_TIMEOUT },
|
|
355
|
+
});
|
|
356
|
+
resolve(false);
|
|
357
|
+
}, SUB_SESSION_WAIT_TIMEOUT);
|
|
358
|
+
// 主会话被 abort 时立即退出等待
|
|
359
|
+
if (sessionId) {
|
|
360
|
+
const parentId = this.parentMap.get(sessionId) || sessionId;
|
|
361
|
+
const controller = this.mainSessionControllers.get(parentId);
|
|
362
|
+
if (controller && !controller.signal.aborted) {
|
|
363
|
+
item.abortListener = () => {
|
|
364
|
+
if (item.timeoutId)
|
|
365
|
+
clearTimeout(item.timeoutId);
|
|
366
|
+
const idx = this.waitQueue.indexOf(item);
|
|
367
|
+
if (idx !== -1)
|
|
368
|
+
this.waitQueue.splice(idx, 1);
|
|
369
|
+
resolve(false);
|
|
370
|
+
};
|
|
371
|
+
controller.signal.addEventListener('abort', item.abortListener, { once: true });
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
this.waitQueue.push(item);
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
/** 唤醒排队中的子 Agent,直到并发槽位用尽或队列空 */
|
|
378
|
+
drainQueue() {
|
|
379
|
+
while (this.activeSubSessionCount < MAX_CONCURRENT_SUB_SESSIONS &&
|
|
380
|
+
this.waitQueue.length > 0 &&
|
|
381
|
+
!this.cooldown) {
|
|
382
|
+
const item = this.waitQueue.shift();
|
|
383
|
+
if (!item)
|
|
384
|
+
continue;
|
|
385
|
+
// 清理定时器和 abort 监听器
|
|
386
|
+
if (item.timeoutId)
|
|
387
|
+
clearTimeout(item.timeoutId);
|
|
388
|
+
if (item.abortListener && item.sessionId) {
|
|
389
|
+
const parentId = this.parentMap.get(item.sessionId) || item.sessionId;
|
|
390
|
+
const controller = this.mainSessionControllers.get(parentId);
|
|
391
|
+
if (controller) {
|
|
392
|
+
controller.signal.removeEventListener('abort', item.abortListener);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
try {
|
|
396
|
+
item.resolve(true);
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
// ignore
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
/** 检查指定子会话的父主会话是否已被 abort */
|
|
404
|
+
isParentAborted(sessionId) {
|
|
405
|
+
const parentId = this.parentMap.get(sessionId) || sessionId;
|
|
406
|
+
const controller = this.mainSessionControllers.get(parentId);
|
|
407
|
+
return !!controller?.signal.aborted;
|
|
408
|
+
}
|
|
409
|
+
/** 重置全局限流状态(无活跃主会话时调用) */
|
|
410
|
+
resetGlobal() {
|
|
411
|
+
this.cooldown = false;
|
|
412
|
+
this.cooldownUntil = 0;
|
|
413
|
+
this.count429 = 0;
|
|
414
|
+
this.cooldownCycles = 0;
|
|
415
|
+
this.activeSubSessionCount = 0;
|
|
416
|
+
this.activeSubSessionSet.clear();
|
|
417
|
+
this.parentMap.clear();
|
|
418
|
+
this.abortedSessions.clear();
|
|
419
|
+
// 唤醒所有排队项(拒绝,因为已无主会话)
|
|
420
|
+
const queue = this.waitQueue;
|
|
421
|
+
this.waitQueue = [];
|
|
422
|
+
for (const item of queue) {
|
|
423
|
+
if (item.timeoutId)
|
|
424
|
+
clearTimeout(item.timeoutId);
|
|
425
|
+
try {
|
|
426
|
+
item.resolve(false);
|
|
427
|
+
}
|
|
428
|
+
catch {
|
|
429
|
+
// ignore
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
/** 重置指定主会话相关的限流状态 */
|
|
434
|
+
resetForSession(sessionId) {
|
|
435
|
+
this.cooldown = false;
|
|
436
|
+
this.cooldownUntil = 0;
|
|
437
|
+
this.count429 = 0;
|
|
438
|
+
this.cooldownCycles = 0;
|
|
439
|
+
// 唤醒所有排队项(主会话被终止,全部拒绝)
|
|
440
|
+
const queue = this.waitQueue;
|
|
441
|
+
this.waitQueue = [];
|
|
442
|
+
for (const item of queue) {
|
|
443
|
+
if (item.timeoutId)
|
|
444
|
+
clearTimeout(item.timeoutId);
|
|
445
|
+
try {
|
|
446
|
+
item.resolve(false);
|
|
447
|
+
}
|
|
448
|
+
catch {
|
|
449
|
+
// ignore
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
exports.RateLimitManager = RateLimitManager;
|
|
455
|
+
/** 全局单例(跨所有 AgentEngine 实例共享) */
|
|
456
|
+
exports.rateLimitManager = new RateLimitManager();
|
|
457
|
+
/** 导出常量供外部读取(不可修改) */
|
|
458
|
+
exports.RATE_LIMIT_CONFIG = {
|
|
459
|
+
RATE_LIMIT_THRESHOLD,
|
|
460
|
+
COOLDOWN_BASE_MS,
|
|
461
|
+
MAX_COOLDOWN_CYCLES,
|
|
462
|
+
MAX_CONCURRENT_SUB_SESSIONS,
|
|
463
|
+
SUB_SESSION_WAIT_TIMEOUT,
|
|
464
|
+
};
|
|
465
|
+
//# sourceMappingURL=rate-limit-manager.js.map
|