@cicctencent/agent-core 0.1.67 → 0.1.69

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.
@@ -12,18 +12,26 @@ declare class RateLimitManager {
12
12
  private last429Ts;
13
13
  /** 冷却周期数(每次触发冷却递增,用于指数退避) */
14
14
  private cooldownCycles;
15
- /** 当前活跃的子 Agent 数量 */
16
- private activeSubSessionCount;
15
+ /** 冷却恢复定时器,避免重复冷却定时器交叉恢复状态 */
16
+ private cooldownTimer;
17
+ /**
18
+ * 每个主会话的子 Agent 并发状态。全局 429 冷却仍保留(见 cooldown 系列字段,
19
+ * 因为 429 是 LLM Provider 层面、所有 Engine 共享的限制),但「同时运行的子 Agent 数」
20
+ * 按主会话隔离,使一个会话触发冷却/排队不会拖垮其它租户会话。
21
+ */
22
+ private sessionConcurrency;
17
23
  /** 已注册但尚未释放的子会话集合(防止重复释放) */
18
24
  private activeSubSessionSet;
19
- /** 并发控制等待队列 */
20
- private waitQueue;
21
25
  /** 子会话 ID → 父会话 ID */
22
26
  private parentMap;
23
27
  /** 主会话 ID → AbortController(用于在多轮冷却失败时终止主会话) */
24
28
  private mainSessionControllers;
25
29
  /** 已终止的主会话 ID(防止重复 abort) */
26
30
  private abortedSessions;
31
+ /** 获取(懒创建)某主会话的 per-session 并发状态 */
32
+ private getConcurrency;
33
+ /** 所有主会话的子 Agent 并发总数(仅用于诊断,不做全局门控) */
34
+ private getTotalActive;
27
35
  /**
28
36
  * 注册主会话。由 AgentEngine.run() 在开始时调用。
29
37
  *
@@ -56,7 +64,7 @@ declare class RateLimitManager {
56
64
  * - 冷却期内自动等待冷却结束
57
65
  * - 并发槽位满时排队等待,超时则拒绝
58
66
  *
59
- * 注意:本方法会增加 activeSubSessionCount。调用方在子 Agent 结束后
67
+ * 注意:本方法会增加对应主会话的 per-session 并发计数。调用方在子 Agent 结束后
60
68
  * 必须调用 releaseSubSessionSlot() 或 unregisterSubSession() 释放槽位。
61
69
  *
62
70
  * @param sessionId 子会话 ID(用于在父会话 abort 时提前退出等待)
@@ -95,6 +103,8 @@ declare class RateLimitManager {
95
103
  maxConcurrent: number;
96
104
  queueLength: number;
97
105
  };
106
+ /** 所有主会话等待队列长度之和(诊断用) */
107
+ private getTotalQueueLength;
98
108
  /** 启动速率限制冷却期(指数退避) */
99
109
  private startCooldown;
100
110
  /** 获取当前冷却时长(指数退避:30s → 60s → 120s) */
@@ -103,9 +113,9 @@ declare class RateLimitManager {
103
113
  private abortMainSession;
104
114
  /** 等待冷却期结束 */
105
115
  private waitCooldown;
106
- /** 等待并发槽位(带超时) */
116
+ /** 等待并发槽位(带超时,per-session 队列) */
107
117
  private waitForSlot;
108
- /** 唤醒排队中的子 Agent,直到并发槽位用尽或队列空 */
118
+ /** 唤醒某主会话排队中的子 Agent,直到并发槽位用尽或队列空 */
109
119
  private drainQueue;
110
120
  /** 检查指定子会话的父主会话是否已被 abort */
111
121
  private isParentAborted;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AAuDA;;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,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,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;IAwD1C,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;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA6BnB,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;;;;;;;CAOpB,CAAC"}
1
+ {"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AA8DA;;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,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,8BAA8B;IAC9B,OAAO,CAAC,aAAa,CAA8C;IAGnE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAyC;IACnE,6BAA6B;IAC7B,OAAO,CAAC,mBAAmB,CAAqB;IAGhD,sBAAsB;IACtB,OAAO,CAAC,SAAS,CAA6B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,6BAA6B;IAC7B,OAAO,CAAC,eAAe,CAAqB;IAE5C,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAWtB,uCAAuC;IACvC,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAQzE;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA4C9C;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe3C;;;;;;;;;;;;OAYG;IACG,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CjE;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAwD1C,cAAc;IACd,SAAS,IAAI,OAAO;IAIpB,gCAAgC;IAChC,wBAAwB,IAAI,OAAO;IAKnC,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;IAYD,yBAAyB;IACzB,OAAO,CAAC,mBAAmB;IAQ3B,sBAAsB;IACtB,OAAO,CAAC,aAAa;IA0BrB,sCAAsC;IACtC,OAAO,CAAC,mBAAmB;IAI3B,cAAc;IACd,OAAO,CAAC,gBAAgB;IAqBxB,cAAc;IACd,OAAO,CAAC,YAAY;IAmBpB,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAkCnB,qCAAqC;IACrC,OAAO,CAAC,UAAU;IA4BlB,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAMvB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAoCnB,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;;;;;;;CAOpB,CAAC"}
@@ -57,13 +57,17 @@ class RateLimitManager {
57
57
  last429Ts = 0;
58
58
  /** 冷却周期数(每次触发冷却递增,用于指数退避) */
59
59
  cooldownCycles = 0;
60
- // ══════ 并发控制 ══════
61
- /** 当前活跃的子 Agent 数量 */
62
- activeSubSessionCount = 0;
60
+ /** 冷却恢复定时器,避免重复冷却定时器交叉恢复状态 */
61
+ cooldownTimer = null;
62
+ // ══════ 并发控制(per-session,避免跨会话互相阻塞) ══════
63
+ /**
64
+ * 每个主会话的子 Agent 并发状态。全局 429 冷却仍保留(见 cooldown 系列字段,
65
+ * 因为 429 是 LLM Provider 层面、所有 Engine 共享的限制),但「同时运行的子 Agent 数」
66
+ * 按主会话隔离,使一个会话触发冷却/排队不会拖垮其它租户会话。
67
+ */
68
+ sessionConcurrency = new Map();
63
69
  /** 已注册但尚未释放的子会话集合(防止重复释放) */
64
70
  activeSubSessionSet = new Set();
65
- /** 并发控制等待队列 */
66
- waitQueue = [];
67
71
  // ══════ 父子会话映射 ══════
68
72
  /** 子会话 ID → 父会话 ID */
69
73
  parentMap = new Map();
@@ -71,6 +75,25 @@ class RateLimitManager {
71
75
  mainSessionControllers = new Map();
72
76
  /** 已终止的主会话 ID(防止重复 abort) */
73
77
  abortedSessions = new Set();
78
+ /** 获取(懒创建)某主会话的 per-session 并发状态 */
79
+ getConcurrency(mainKey) {
80
+ let conc = this.sessionConcurrency.get(mainKey);
81
+ if (!conc) {
82
+ conc = { active: 0, waitQueue: [], updatedAt: Date.now() };
83
+ this.sessionConcurrency.set(mainKey, conc);
84
+ }
85
+ else {
86
+ conc.updatedAt = Date.now();
87
+ }
88
+ return conc;
89
+ }
90
+ /** 所有主会话的子 Agent 并发总数(仅用于诊断,不做全局门控) */
91
+ getTotalActive() {
92
+ let n = 0;
93
+ for (const c of this.sessionConcurrency.values())
94
+ n += c.active;
95
+ return n;
96
+ }
74
97
  // ───────── 主会话生命周期 ─────────
75
98
  /**
76
99
  * 注册主会话。由 AgentEngine.run() 在开始时调用。
@@ -81,6 +104,10 @@ class RateLimitManager {
81
104
  */
82
105
  registerMainSession(sessionId, controller) {
83
106
  this.mainSessionControllers.set(sessionId, controller);
107
+ // 初始化该主会话的 per-session 并发状态
108
+ if (!this.sessionConcurrency.has(sessionId)) {
109
+ this.sessionConcurrency.set(sessionId, { active: 0, waitQueue: [], updatedAt: Date.now() });
110
+ }
84
111
  }
85
112
  /**
86
113
  * 注销主会话。由 AgentEngine.run() 在 finally 中调用。
@@ -96,24 +123,37 @@ class RateLimitManager {
96
123
  // 子会话可能仍在活跃集合中(异常退出未正常释放)
97
124
  if (this.activeSubSessionSet.has(subId)) {
98
125
  this.activeSubSessionSet.delete(subId);
99
- if (this.activeSubSessionCount > 0)
100
- this.activeSubSessionCount--;
126
+ const conc = this.getConcurrency(sessionId);
127
+ if (conc.active > 0)
128
+ conc.active--;
101
129
  }
102
130
  }
103
131
  }
104
132
  // 兜底:清理 sessionId 作为 child 的条目(子 engine run() 结束时自动清理自身映射)
105
- // 注意:不递减 activeSubSessionCount,因为并发槽位由 tool-executor 的
133
+ // 注意:不递减 per-session active,因为并发槽位由 tool-executor 的
106
134
  // releaseSubSessionSlot 管理(使用临时 subslot ID,不是实际的 sessionId)
107
135
  this.parentMap.delete(sessionId);
108
136
  this.activeSubSessionSet.delete(sessionId);
137
+ // 清理该主会话的 per-session 并发状态与等待队列
138
+ const conc = this.sessionConcurrency.get(sessionId);
139
+ if (conc) {
140
+ const queue = conc.waitQueue;
141
+ conc.waitQueue = [];
142
+ for (const item of queue) {
143
+ if (item.timeoutId)
144
+ clearTimeout(item.timeoutId);
145
+ try {
146
+ item.resolve(false);
147
+ }
148
+ catch { /* ignore */ }
149
+ }
150
+ this.sessionConcurrency.delete(sessionId);
151
+ }
109
152
  // 如果已经没有任何活跃主会话,重置全局限流状态
110
153
  if (this.mainSessionControllers.size === 0) {
111
154
  this.resetGlobal();
112
155
  }
113
- else {
114
- // 仍有其他主会话在运行,尝试唤醒排队
115
- this.drainQueue();
116
- }
156
+ // 注意:不再 drainQueue() 全局队列——并发已按主会话隔离,其它会话的队列不受影响
117
157
  }
118
158
  // ───────── 子会话生命周期 ─────────
119
159
  /**
@@ -131,12 +171,14 @@ class RateLimitManager {
131
171
  */
132
172
  unregisterSubSession(childId) {
133
173
  const wasActive = this.activeSubSessionSet.has(childId);
174
+ const parentId = this.parentMap.get(childId) || childId;
134
175
  this.activeSubSessionSet.delete(childId);
135
176
  this.parentMap.delete(childId);
136
177
  if (wasActive) {
137
- if (this.activeSubSessionCount > 0)
138
- this.activeSubSessionCount--;
139
- this.drainQueue();
178
+ const conc = this.getConcurrency(parentId);
179
+ if (conc.active > 0)
180
+ conc.active--;
181
+ this.drainQueue(parentId);
140
182
  }
141
183
  }
142
184
  // ───────── 并发槽位 ─────────
@@ -147,14 +189,16 @@ class RateLimitManager {
147
189
  * - 冷却期内自动等待冷却结束
148
190
  * - 并发槽位满时排队等待,超时则拒绝
149
191
  *
150
- * 注意:本方法会增加 activeSubSessionCount。调用方在子 Agent 结束后
192
+ * 注意:本方法会增加对应主会话的 per-session 并发计数。调用方在子 Agent 结束后
151
193
  * 必须调用 releaseSubSessionSlot() 或 unregisterSubSession() 释放槽位。
152
194
  *
153
195
  * @param sessionId 子会话 ID(用于在父会话 abort 时提前退出等待)
154
196
  * @returns true 表示获得槽位可以执行,false 表示超时或被拒绝
155
197
  */
156
198
  async acquireSubSessionSlot(sessionId) {
157
- // 如果处于冷却期,等待冷却结束
199
+ const mainKey = sessionId ? (this.parentMap.get(sessionId) || sessionId) : 'global';
200
+ const conc = this.getConcurrency(mainKey);
201
+ // ① 如果处于冷却期(全局,Provider 保护),等待冷却结束
158
202
  if (this.cooldown) {
159
203
  const remaining = Math.max(0, this.cooldownUntil - Date.now());
160
204
  if (remaining > 0) {
@@ -174,20 +218,20 @@ class RateLimitManager {
174
218
  }
175
219
  }
176
220
  }
177
- // ② 检查并发槽位
178
- if (this.activeSubSessionCount >= MAX_CONCURRENT_SUB_SESSIONS) {
179
- const granted = await this.waitForSlot(sessionId);
221
+ // ② 检查「本会话」并发槽位(不再阻塞其它会话)
222
+ if (conc.active >= MAX_CONCURRENT_SUB_SESSIONS) {
223
+ const granted = await this.waitForSlot(mainKey);
180
224
  if (!granted)
181
225
  return false;
182
226
  // 等待期间父会话可能已 abort
183
227
  if (sessionId && this.isParentAborted(sessionId)) {
184
228
  // 释放刚刚获得的槽位
185
- this.releaseSubSessionSlot();
229
+ this.releaseSubSessionSlot(sessionId);
186
230
  return false;
187
231
  }
188
232
  }
189
233
  // ③ 获得槽位
190
- this.activeSubSessionCount++;
234
+ conc.active++;
191
235
  if (sessionId)
192
236
  this.activeSubSessionSet.add(sessionId);
193
237
  return true;
@@ -201,9 +245,12 @@ class RateLimitManager {
201
245
  releaseSubSessionSlot(sessionId) {
202
246
  if (sessionId)
203
247
  this.activeSubSessionSet.delete(sessionId);
204
- if (this.activeSubSessionCount > 0)
205
- this.activeSubSessionCount--;
206
- this.drainQueue();
248
+ const mainKey = sessionId ? (this.parentMap.get(sessionId) || sessionId) : 'global';
249
+ const conc = this.getConcurrency(mainKey);
250
+ if (conc.active > 0)
251
+ conc.active--;
252
+ // 唤醒本会话排队中的下一个
253
+ this.drainQueue(mainKey);
207
254
  }
208
255
  // ───────── 429 速率限制处理 ─────────
209
256
  /**
@@ -252,7 +299,7 @@ class RateLimitManager {
252
299
  cycle: this.cooldownCycles,
253
300
  durationMs: this.getCooldownDuration(),
254
301
  count429: this.count429,
255
- activeSubSessions: this.activeSubSessionCount,
302
+ activeSubSessions: this.getTotalActive(),
256
303
  },
257
304
  });
258
305
  }
@@ -274,7 +321,8 @@ class RateLimitManager {
274
321
  }
275
322
  /** 是否已达到并发上限或正在冷却(用于快速拒绝新请求) */
276
323
  isRateLimitedOrSaturated() {
277
- return this.cooldown || this.activeSubSessionCount >= MAX_CONCURRENT_SUB_SESSIONS;
324
+ // 并发上限已改为 per-session,无 sessionKey 时仅看全局冷却(避免在不知会话维度时误判)
325
+ return this.cooldown;
278
326
  }
279
327
  /** 获取当前状态快照(诊断用) */
280
328
  getStats() {
@@ -283,11 +331,18 @@ class RateLimitManager {
283
331
  cooldownRemainingMs: Math.max(0, this.cooldownUntil - Date.now()),
284
332
  count429: this.count429,
285
333
  cooldownCycles: this.cooldownCycles,
286
- activeSubSessions: this.activeSubSessionCount,
334
+ activeSubSessions: this.getTotalActive(),
287
335
  maxConcurrent: MAX_CONCURRENT_SUB_SESSIONS,
288
- queueLength: this.waitQueue.length,
336
+ queueLength: this.getTotalQueueLength(),
289
337
  };
290
338
  }
339
+ /** 所有主会话等待队列长度之和(诊断用) */
340
+ getTotalQueueLength() {
341
+ let n = 0;
342
+ for (const c of this.sessionConcurrency.values())
343
+ n += c.waitQueue.length;
344
+ return n;
345
+ }
291
346
  // ───────── 内部实现 ─────────
292
347
  /** 启动速率限制冷却期(指数退避) */
293
348
  startCooldown() {
@@ -295,16 +350,23 @@ class RateLimitManager {
295
350
  this.cooldownCycles++;
296
351
  const duration = this.getCooldownDuration();
297
352
  this.cooldownUntil = Date.now() + duration;
298
- setTimeout(() => {
353
+ // 清除旧的冷却定时器,避免多个 timer 交叉修改全局冷却状态
354
+ if (this.cooldownTimer) {
355
+ clearTimeout(this.cooldownTimer);
356
+ this.cooldownTimer = null;
357
+ }
358
+ this.cooldownTimer = setTimeout(() => {
299
359
  this.cooldown = false;
300
360
  this.count429 = 0;
361
+ this.cooldownTimer = null;
301
362
  (0, logger_ts_1.logEvent)({
302
363
  event: 'rate_limit.cooldown_ended',
303
364
  level: 'info',
304
365
  data: { cycle: this.cooldownCycles },
305
366
  });
306
- // 唤醒排队中的子 Agent
307
- this.drainQueue();
367
+ // 唤醒所有主会话排队中的子 Agent
368
+ for (const key of this.sessionConcurrency.keys())
369
+ this.drainQueue(key);
308
370
  }, duration);
309
371
  }
310
372
  /** 获取当前冷却时长(指数退避:30s → 60s → 120s) */
@@ -348,48 +410,47 @@ class RateLimitManager {
348
410
  }
349
411
  });
350
412
  }
351
- /** 等待并发槽位(带超时) */
352
- waitForSlot(sessionId) {
413
+ /** 等待并发槽位(带超时,per-session 队列) */
414
+ waitForSlot(mainKey) {
415
+ const conc = this.getConcurrency(mainKey);
353
416
  return new Promise(resolve => {
354
- const item = { resolve, sessionId };
417
+ const item = { resolve, sessionId: mainKey };
355
418
  // 排队超时
356
419
  item.timeoutId = setTimeout(() => {
357
- const idx = this.waitQueue.indexOf(item);
420
+ const idx = conc.waitQueue.indexOf(item);
358
421
  if (idx !== -1)
359
- this.waitQueue.splice(idx, 1);
422
+ conc.waitQueue.splice(idx, 1);
360
423
  (0, logger_ts_1.logEvent)({
361
424
  event: 'rate_limit.slot_wait_timeout',
362
425
  level: 'warn',
363
- sessionId,
426
+ sessionId: mainKey,
364
427
  data: { timeout: SUB_SESSION_WAIT_TIMEOUT },
365
428
  });
366
429
  resolve(false);
367
430
  }, SUB_SESSION_WAIT_TIMEOUT);
368
431
  // 主会话被 abort 时立即退出等待
369
- if (sessionId) {
370
- const parentId = this.parentMap.get(sessionId) || sessionId;
371
- const controller = this.mainSessionControllers.get(parentId);
372
- if (controller && !controller.signal.aborted) {
373
- item.abortListener = () => {
374
- if (item.timeoutId)
375
- clearTimeout(item.timeoutId);
376
- const idx = this.waitQueue.indexOf(item);
377
- if (idx !== -1)
378
- this.waitQueue.splice(idx, 1);
379
- resolve(false);
380
- };
381
- controller.signal.addEventListener('abort', item.abortListener, { once: true });
382
- }
432
+ const controller = this.mainSessionControllers.get(mainKey);
433
+ if (controller && !controller.signal.aborted) {
434
+ item.abortListener = () => {
435
+ if (item.timeoutId)
436
+ clearTimeout(item.timeoutId);
437
+ const idx = conc.waitQueue.indexOf(item);
438
+ if (idx !== -1)
439
+ conc.waitQueue.splice(idx, 1);
440
+ resolve(false);
441
+ };
442
+ controller.signal.addEventListener('abort', item.abortListener, { once: true });
383
443
  }
384
- this.waitQueue.push(item);
444
+ conc.waitQueue.push(item);
385
445
  });
386
446
  }
387
- /** 唤醒排队中的子 Agent,直到并发槽位用尽或队列空 */
388
- drainQueue() {
389
- while (this.activeSubSessionCount < MAX_CONCURRENT_SUB_SESSIONS &&
390
- this.waitQueue.length > 0 &&
447
+ /** 唤醒某主会话排队中的子 Agent,直到并发槽位用尽或队列空 */
448
+ drainQueue(mainKey) {
449
+ const conc = this.getConcurrency(mainKey);
450
+ while (conc.active < MAX_CONCURRENT_SUB_SESSIONS &&
451
+ conc.waitQueue.length > 0 &&
391
452
  !this.cooldown) {
392
- const item = this.waitQueue.shift();
453
+ const item = conc.waitQueue.shift();
393
454
  if (!item)
394
455
  continue;
395
456
  // 清理定时器和 abort 监听器
@@ -429,47 +490,55 @@ class RateLimitManager {
429
490
  (Date.now() - this.last429Ts) < COUNT_429_DECAY_MS;
430
491
  this.cooldown = false;
431
492
  this.cooldownUntil = 0;
493
+ // 清理冷却定时器
494
+ if (this.cooldownTimer) {
495
+ clearTimeout(this.cooldownTimer);
496
+ this.cooldownTimer = null;
497
+ }
432
498
  if (!preserve429State) {
433
499
  this.count429 = 0;
434
500
  this.cooldownCycles = 0;
435
501
  this.last429Ts = 0;
436
502
  }
437
- this.activeSubSessionCount = 0;
438
503
  this.activeSubSessionSet.clear();
439
504
  this.parentMap.clear();
440
505
  this.abortedSessions.clear();
441
- // 唤醒所有排队项(拒绝,因为已无主会话)
442
- const queue = this.waitQueue;
443
- this.waitQueue = [];
444
- for (const item of queue) {
445
- if (item.timeoutId)
446
- clearTimeout(item.timeoutId);
447
- try {
448
- item.resolve(false);
449
- }
450
- catch {
451
- // ignore
506
+ // 清空所有 per-session 并发状态与等待队列(拒绝,因为已无主会话)
507
+ for (const conc of this.sessionConcurrency.values()) {
508
+ const queue = conc.waitQueue;
509
+ conc.waitQueue = [];
510
+ for (const item of queue) {
511
+ if (item.timeoutId)
512
+ clearTimeout(item.timeoutId);
513
+ try {
514
+ item.resolve(false);
515
+ }
516
+ catch {
517
+ // ignore
518
+ }
452
519
  }
453
520
  }
521
+ this.sessionConcurrency.clear();
454
522
  }
455
523
  /** 重置指定主会话相关的限流状态 */
456
524
  resetForSession(sessionId) {
457
- this.cooldown = false;
458
- this.cooldownUntil = 0;
459
- this.count429 = 0;
460
- this.cooldownCycles = 0;
461
- // 唤醒所有排队项(主会话被终止,全部拒绝)
462
- const queue = this.waitQueue;
463
- this.waitQueue = [];
464
- for (const item of queue) {
465
- if (item.timeoutId)
466
- clearTimeout(item.timeoutId);
467
- try {
468
- item.resolve(false);
469
- }
470
- catch {
471
- // ignore
525
+ // 仅清理该主会话的并发状态与等待队列,不重置全局冷却(由定时器自然恢复)
526
+ // 唤醒该主会话排队项(主会话被终止,全部拒绝)
527
+ const conc = this.sessionConcurrency.get(sessionId);
528
+ if (conc) {
529
+ const queue = conc.waitQueue;
530
+ conc.waitQueue = [];
531
+ for (const item of queue) {
532
+ if (item.timeoutId)
533
+ clearTimeout(item.timeoutId);
534
+ try {
535
+ item.resolve(false);
536
+ }
537
+ catch {
538
+ // ignore
539
+ }
472
540
  }
541
+ this.sessionConcurrency.delete(sessionId);
473
542
  }
474
543
  }
475
544
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-manager.js","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit-manager.js","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,kBAAkB,KAAK,IAAI,CAAC;AAYtH,iBAAiB;AACjB,wBAAgB,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED,eAAe;AACf,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAUxD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,kBAAkB,KAAK,IAAI,CAAC;AA0CtH,iBAAiB;AACjB,wBAAgB,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED,eAAe;AACf,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAUxD"}
@@ -5,9 +5,41 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.setLogTransport = setLogTransport;
7
7
  exports.logEvent = logEvent;
8
- /** 默认传输:console 输出 */
8
+ /** 需脱敏的字段名(不区分大小写) */
9
+ const SENSITIVE_KEY_RE = /^(authorization|auth|api[_-]?key|apikey|token|secret|cookie|password|passwd|x-api-key|access[_-]?token|refresh[_-]?token)$/i;
10
+ /** 单条日志最大长度(字符),超出截断,降低高并发磁盘 I/O 与内存压力 */
11
+ const LOG_LINE_MAX_LEN = 2000;
12
+ function redactSensitive(value, depth) {
13
+ if (depth > 8)
14
+ return '[omitted]';
15
+ if (Array.isArray(value))
16
+ return value.map(v => redactSensitive(v, depth + 1));
17
+ if (value && typeof value === 'object') {
18
+ const out = {};
19
+ for (const [k, v] of Object.entries(value)) {
20
+ out[k] = SENSITIVE_KEY_RE.test(k) ? '***' : redactSensitive(v, depth + 1);
21
+ }
22
+ return out;
23
+ }
24
+ return value;
25
+ }
26
+ /** 脱敏并截断整条日志,避免敏感内容/超大 payload 落盘(P1) */
27
+ function sanitizePayload(payload) {
28
+ const safe = { ...payload };
29
+ if (safe.data !== undefined && safe.data !== null) {
30
+ try {
31
+ safe.data = redactSensitive(safe.data, 0);
32
+ }
33
+ catch { /* 脱敏失败保留原样 */ }
34
+ }
35
+ const str = `[obs] ${JSON.stringify(safe)}`;
36
+ return str.length > LOG_LINE_MAX_LEN
37
+ ? `${str.slice(0, LOG_LINE_MAX_LEN)}…[truncated ${str.length - LOG_LINE_MAX_LEN} chars]`
38
+ : str;
39
+ }
40
+ /** 默认传输:console 输出(脱敏 + 截断) */
9
41
  const defaultTransport = (payload) => {
10
- const line = `[obs] ${JSON.stringify(payload)}`;
42
+ const line = sanitizePayload(payload);
11
43
  if (payload.level === 'error')
12
44
  console.error(line);
13
45
  else if (payload.level === 'warn')
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,+DAA+D;;AA4B/D,0CAEC;AAGD,4BAUC;AA1BD,sBAAsB;AACtB,MAAM,gBAAgB,GAAiB,CAAC,OAAO,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9C,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,IAAI,UAAU,GAAiB,gBAAgB,CAAC;AAEhD,iBAAiB;AACjB,SAAgB,eAAe,CAAC,SAAuB;IACrD,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC;AAED,eAAe;AACf,SAAgB,QAAQ,CAAC,KAAyB;IAChD,MAAM,OAAO,GAAG;QACd,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;KACvB,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"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"}
@@ -12,18 +12,26 @@ declare class RateLimitManager {
12
12
  private last429Ts;
13
13
  /** 冷却周期数(每次触发冷却递增,用于指数退避) */
14
14
  private cooldownCycles;
15
- /** 当前活跃的子 Agent 数量 */
16
- private activeSubSessionCount;
15
+ /** 冷却恢复定时器,避免重复冷却定时器交叉恢复状态 */
16
+ private cooldownTimer;
17
+ /**
18
+ * 每个主会话的子 Agent 并发状态。全局 429 冷却仍保留(见 cooldown 系列字段,
19
+ * 因为 429 是 LLM Provider 层面、所有 Engine 共享的限制),但「同时运行的子 Agent 数」
20
+ * 按主会话隔离,使一个会话触发冷却/排队不会拖垮其它租户会话。
21
+ */
22
+ private sessionConcurrency;
17
23
  /** 已注册但尚未释放的子会话集合(防止重复释放) */
18
24
  private activeSubSessionSet;
19
- /** 并发控制等待队列 */
20
- private waitQueue;
21
25
  /** 子会话 ID → 父会话 ID */
22
26
  private parentMap;
23
27
  /** 主会话 ID → AbortController(用于在多轮冷却失败时终止主会话) */
24
28
  private mainSessionControllers;
25
29
  /** 已终止的主会话 ID(防止重复 abort) */
26
30
  private abortedSessions;
31
+ /** 获取(懒创建)某主会话的 per-session 并发状态 */
32
+ private getConcurrency;
33
+ /** 所有主会话的子 Agent 并发总数(仅用于诊断,不做全局门控) */
34
+ private getTotalActive;
27
35
  /**
28
36
  * 注册主会话。由 AgentEngine.run() 在开始时调用。
29
37
  *
@@ -56,7 +64,7 @@ declare class RateLimitManager {
56
64
  * - 冷却期内自动等待冷却结束
57
65
  * - 并发槽位满时排队等待,超时则拒绝
58
66
  *
59
- * 注意:本方法会增加 activeSubSessionCount。调用方在子 Agent 结束后
67
+ * 注意:本方法会增加对应主会话的 per-session 并发计数。调用方在子 Agent 结束后
60
68
  * 必须调用 releaseSubSessionSlot() 或 unregisterSubSession() 释放槽位。
61
69
  *
62
70
  * @param sessionId 子会话 ID(用于在父会话 abort 时提前退出等待)
@@ -95,6 +103,8 @@ declare class RateLimitManager {
95
103
  maxConcurrent: number;
96
104
  queueLength: number;
97
105
  };
106
+ /** 所有主会话等待队列长度之和(诊断用) */
107
+ private getTotalQueueLength;
98
108
  /** 启动速率限制冷却期(指数退避) */
99
109
  private startCooldown;
100
110
  /** 获取当前冷却时长(指数退避:30s → 60s → 120s) */
@@ -103,9 +113,9 @@ declare class RateLimitManager {
103
113
  private abortMainSession;
104
114
  /** 等待冷却期结束 */
105
115
  private waitCooldown;
106
- /** 等待并发槽位(带超时) */
116
+ /** 等待并发槽位(带超时,per-session 队列) */
107
117
  private waitForSlot;
108
- /** 唤醒排队中的子 Agent,直到并发槽位用尽或队列空 */
118
+ /** 唤醒某主会话排队中的子 Agent,直到并发槽位用尽或队列空 */
109
119
  private drainQueue;
110
120
  /** 检查指定子会话的父主会话是否已被 abort */
111
121
  private isParentAborted;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AAuDA;;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,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,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;IAwD1C,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;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA6BnB,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;;;;;;;CAOpB,CAAC"}
1
+ {"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AA8DA;;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,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,8BAA8B;IAC9B,OAAO,CAAC,aAAa,CAA8C;IAGnE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAyC;IACnE,6BAA6B;IAC7B,OAAO,CAAC,mBAAmB,CAAqB;IAGhD,sBAAsB;IACtB,OAAO,CAAC,SAAS,CAA6B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,6BAA6B;IAC7B,OAAO,CAAC,eAAe,CAAqB;IAE5C,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAWtB,uCAAuC;IACvC,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAQzE;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA4C9C;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe3C;;;;;;;;;;;;OAYG;IACG,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CjE;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAwD1C,cAAc;IACd,SAAS,IAAI,OAAO;IAIpB,gCAAgC;IAChC,wBAAwB,IAAI,OAAO;IAKnC,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;IAYD,yBAAyB;IACzB,OAAO,CAAC,mBAAmB;IAQ3B,sBAAsB;IACtB,OAAO,CAAC,aAAa;IA0BrB,sCAAsC;IACtC,OAAO,CAAC,mBAAmB;IAI3B,cAAc;IACd,OAAO,CAAC,gBAAgB;IAqBxB,cAAc;IACd,OAAO,CAAC,YAAY;IAmBpB,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAkCnB,qCAAqC;IACrC,OAAO,CAAC,UAAU;IA4BlB,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAMvB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAoCnB,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;;;;;;;CAOpB,CAAC"}
@@ -54,13 +54,17 @@ class RateLimitManager {
54
54
  last429Ts = 0;
55
55
  /** 冷却周期数(每次触发冷却递增,用于指数退避) */
56
56
  cooldownCycles = 0;
57
- // ══════ 并发控制 ══════
58
- /** 当前活跃的子 Agent 数量 */
59
- activeSubSessionCount = 0;
57
+ /** 冷却恢复定时器,避免重复冷却定时器交叉恢复状态 */
58
+ cooldownTimer = null;
59
+ // ══════ 并发控制(per-session,避免跨会话互相阻塞) ══════
60
+ /**
61
+ * 每个主会话的子 Agent 并发状态。全局 429 冷却仍保留(见 cooldown 系列字段,
62
+ * 因为 429 是 LLM Provider 层面、所有 Engine 共享的限制),但「同时运行的子 Agent 数」
63
+ * 按主会话隔离,使一个会话触发冷却/排队不会拖垮其它租户会话。
64
+ */
65
+ sessionConcurrency = new Map();
60
66
  /** 已注册但尚未释放的子会话集合(防止重复释放) */
61
67
  activeSubSessionSet = new Set();
62
- /** 并发控制等待队列 */
63
- waitQueue = [];
64
68
  // ══════ 父子会话映射 ══════
65
69
  /** 子会话 ID → 父会话 ID */
66
70
  parentMap = new Map();
@@ -68,6 +72,25 @@ class RateLimitManager {
68
72
  mainSessionControllers = new Map();
69
73
  /** 已终止的主会话 ID(防止重复 abort) */
70
74
  abortedSessions = new Set();
75
+ /** 获取(懒创建)某主会话的 per-session 并发状态 */
76
+ getConcurrency(mainKey) {
77
+ let conc = this.sessionConcurrency.get(mainKey);
78
+ if (!conc) {
79
+ conc = { active: 0, waitQueue: [], updatedAt: Date.now() };
80
+ this.sessionConcurrency.set(mainKey, conc);
81
+ }
82
+ else {
83
+ conc.updatedAt = Date.now();
84
+ }
85
+ return conc;
86
+ }
87
+ /** 所有主会话的子 Agent 并发总数(仅用于诊断,不做全局门控) */
88
+ getTotalActive() {
89
+ let n = 0;
90
+ for (const c of this.sessionConcurrency.values())
91
+ n += c.active;
92
+ return n;
93
+ }
71
94
  // ───────── 主会话生命周期 ─────────
72
95
  /**
73
96
  * 注册主会话。由 AgentEngine.run() 在开始时调用。
@@ -78,6 +101,10 @@ class RateLimitManager {
78
101
  */
79
102
  registerMainSession(sessionId, controller) {
80
103
  this.mainSessionControllers.set(sessionId, controller);
104
+ // 初始化该主会话的 per-session 并发状态
105
+ if (!this.sessionConcurrency.has(sessionId)) {
106
+ this.sessionConcurrency.set(sessionId, { active: 0, waitQueue: [], updatedAt: Date.now() });
107
+ }
81
108
  }
82
109
  /**
83
110
  * 注销主会话。由 AgentEngine.run() 在 finally 中调用。
@@ -93,24 +120,37 @@ class RateLimitManager {
93
120
  // 子会话可能仍在活跃集合中(异常退出未正常释放)
94
121
  if (this.activeSubSessionSet.has(subId)) {
95
122
  this.activeSubSessionSet.delete(subId);
96
- if (this.activeSubSessionCount > 0)
97
- this.activeSubSessionCount--;
123
+ const conc = this.getConcurrency(sessionId);
124
+ if (conc.active > 0)
125
+ conc.active--;
98
126
  }
99
127
  }
100
128
  }
101
129
  // 兜底:清理 sessionId 作为 child 的条目(子 engine run() 结束时自动清理自身映射)
102
- // 注意:不递减 activeSubSessionCount,因为并发槽位由 tool-executor 的
130
+ // 注意:不递减 per-session active,因为并发槽位由 tool-executor 的
103
131
  // releaseSubSessionSlot 管理(使用临时 subslot ID,不是实际的 sessionId)
104
132
  this.parentMap.delete(sessionId);
105
133
  this.activeSubSessionSet.delete(sessionId);
134
+ // 清理该主会话的 per-session 并发状态与等待队列
135
+ const conc = this.sessionConcurrency.get(sessionId);
136
+ if (conc) {
137
+ const queue = conc.waitQueue;
138
+ conc.waitQueue = [];
139
+ for (const item of queue) {
140
+ if (item.timeoutId)
141
+ clearTimeout(item.timeoutId);
142
+ try {
143
+ item.resolve(false);
144
+ }
145
+ catch { /* ignore */ }
146
+ }
147
+ this.sessionConcurrency.delete(sessionId);
148
+ }
106
149
  // 如果已经没有任何活跃主会话,重置全局限流状态
107
150
  if (this.mainSessionControllers.size === 0) {
108
151
  this.resetGlobal();
109
152
  }
110
- else {
111
- // 仍有其他主会话在运行,尝试唤醒排队
112
- this.drainQueue();
113
- }
153
+ // 注意:不再 drainQueue() 全局队列——并发已按主会话隔离,其它会话的队列不受影响
114
154
  }
115
155
  // ───────── 子会话生命周期 ─────────
116
156
  /**
@@ -128,12 +168,14 @@ class RateLimitManager {
128
168
  */
129
169
  unregisterSubSession(childId) {
130
170
  const wasActive = this.activeSubSessionSet.has(childId);
171
+ const parentId = this.parentMap.get(childId) || childId;
131
172
  this.activeSubSessionSet.delete(childId);
132
173
  this.parentMap.delete(childId);
133
174
  if (wasActive) {
134
- if (this.activeSubSessionCount > 0)
135
- this.activeSubSessionCount--;
136
- this.drainQueue();
175
+ const conc = this.getConcurrency(parentId);
176
+ if (conc.active > 0)
177
+ conc.active--;
178
+ this.drainQueue(parentId);
137
179
  }
138
180
  }
139
181
  // ───────── 并发槽位 ─────────
@@ -144,14 +186,16 @@ class RateLimitManager {
144
186
  * - 冷却期内自动等待冷却结束
145
187
  * - 并发槽位满时排队等待,超时则拒绝
146
188
  *
147
- * 注意:本方法会增加 activeSubSessionCount。调用方在子 Agent 结束后
189
+ * 注意:本方法会增加对应主会话的 per-session 并发计数。调用方在子 Agent 结束后
148
190
  * 必须调用 releaseSubSessionSlot() 或 unregisterSubSession() 释放槽位。
149
191
  *
150
192
  * @param sessionId 子会话 ID(用于在父会话 abort 时提前退出等待)
151
193
  * @returns true 表示获得槽位可以执行,false 表示超时或被拒绝
152
194
  */
153
195
  async acquireSubSessionSlot(sessionId) {
154
- // 如果处于冷却期,等待冷却结束
196
+ const mainKey = sessionId ? (this.parentMap.get(sessionId) || sessionId) : 'global';
197
+ const conc = this.getConcurrency(mainKey);
198
+ // ① 如果处于冷却期(全局,Provider 保护),等待冷却结束
155
199
  if (this.cooldown) {
156
200
  const remaining = Math.max(0, this.cooldownUntil - Date.now());
157
201
  if (remaining > 0) {
@@ -171,20 +215,20 @@ class RateLimitManager {
171
215
  }
172
216
  }
173
217
  }
174
- // ② 检查并发槽位
175
- if (this.activeSubSessionCount >= MAX_CONCURRENT_SUB_SESSIONS) {
176
- const granted = await this.waitForSlot(sessionId);
218
+ // ② 检查「本会话」并发槽位(不再阻塞其它会话)
219
+ if (conc.active >= MAX_CONCURRENT_SUB_SESSIONS) {
220
+ const granted = await this.waitForSlot(mainKey);
177
221
  if (!granted)
178
222
  return false;
179
223
  // 等待期间父会话可能已 abort
180
224
  if (sessionId && this.isParentAborted(sessionId)) {
181
225
  // 释放刚刚获得的槽位
182
- this.releaseSubSessionSlot();
226
+ this.releaseSubSessionSlot(sessionId);
183
227
  return false;
184
228
  }
185
229
  }
186
230
  // ③ 获得槽位
187
- this.activeSubSessionCount++;
231
+ conc.active++;
188
232
  if (sessionId)
189
233
  this.activeSubSessionSet.add(sessionId);
190
234
  return true;
@@ -198,9 +242,12 @@ class RateLimitManager {
198
242
  releaseSubSessionSlot(sessionId) {
199
243
  if (sessionId)
200
244
  this.activeSubSessionSet.delete(sessionId);
201
- if (this.activeSubSessionCount > 0)
202
- this.activeSubSessionCount--;
203
- this.drainQueue();
245
+ const mainKey = sessionId ? (this.parentMap.get(sessionId) || sessionId) : 'global';
246
+ const conc = this.getConcurrency(mainKey);
247
+ if (conc.active > 0)
248
+ conc.active--;
249
+ // 唤醒本会话排队中的下一个
250
+ this.drainQueue(mainKey);
204
251
  }
205
252
  // ───────── 429 速率限制处理 ─────────
206
253
  /**
@@ -249,7 +296,7 @@ class RateLimitManager {
249
296
  cycle: this.cooldownCycles,
250
297
  durationMs: this.getCooldownDuration(),
251
298
  count429: this.count429,
252
- activeSubSessions: this.activeSubSessionCount,
299
+ activeSubSessions: this.getTotalActive(),
253
300
  },
254
301
  });
255
302
  }
@@ -271,7 +318,8 @@ class RateLimitManager {
271
318
  }
272
319
  /** 是否已达到并发上限或正在冷却(用于快速拒绝新请求) */
273
320
  isRateLimitedOrSaturated() {
274
- return this.cooldown || this.activeSubSessionCount >= MAX_CONCURRENT_SUB_SESSIONS;
321
+ // 并发上限已改为 per-session,无 sessionKey 时仅看全局冷却(避免在不知会话维度时误判)
322
+ return this.cooldown;
275
323
  }
276
324
  /** 获取当前状态快照(诊断用) */
277
325
  getStats() {
@@ -280,11 +328,18 @@ class RateLimitManager {
280
328
  cooldownRemainingMs: Math.max(0, this.cooldownUntil - Date.now()),
281
329
  count429: this.count429,
282
330
  cooldownCycles: this.cooldownCycles,
283
- activeSubSessions: this.activeSubSessionCount,
331
+ activeSubSessions: this.getTotalActive(),
284
332
  maxConcurrent: MAX_CONCURRENT_SUB_SESSIONS,
285
- queueLength: this.waitQueue.length,
333
+ queueLength: this.getTotalQueueLength(),
286
334
  };
287
335
  }
336
+ /** 所有主会话等待队列长度之和(诊断用) */
337
+ getTotalQueueLength() {
338
+ let n = 0;
339
+ for (const c of this.sessionConcurrency.values())
340
+ n += c.waitQueue.length;
341
+ return n;
342
+ }
288
343
  // ───────── 内部实现 ─────────
289
344
  /** 启动速率限制冷却期(指数退避) */
290
345
  startCooldown() {
@@ -292,16 +347,23 @@ class RateLimitManager {
292
347
  this.cooldownCycles++;
293
348
  const duration = this.getCooldownDuration();
294
349
  this.cooldownUntil = Date.now() + duration;
295
- setTimeout(() => {
350
+ // 清除旧的冷却定时器,避免多个 timer 交叉修改全局冷却状态
351
+ if (this.cooldownTimer) {
352
+ clearTimeout(this.cooldownTimer);
353
+ this.cooldownTimer = null;
354
+ }
355
+ this.cooldownTimer = setTimeout(() => {
296
356
  this.cooldown = false;
297
357
  this.count429 = 0;
358
+ this.cooldownTimer = null;
298
359
  logEvent({
299
360
  event: 'rate_limit.cooldown_ended',
300
361
  level: 'info',
301
362
  data: { cycle: this.cooldownCycles },
302
363
  });
303
- // 唤醒排队中的子 Agent
304
- this.drainQueue();
364
+ // 唤醒所有主会话排队中的子 Agent
365
+ for (const key of this.sessionConcurrency.keys())
366
+ this.drainQueue(key);
305
367
  }, duration);
306
368
  }
307
369
  /** 获取当前冷却时长(指数退避:30s → 60s → 120s) */
@@ -345,48 +407,47 @@ class RateLimitManager {
345
407
  }
346
408
  });
347
409
  }
348
- /** 等待并发槽位(带超时) */
349
- waitForSlot(sessionId) {
410
+ /** 等待并发槽位(带超时,per-session 队列) */
411
+ waitForSlot(mainKey) {
412
+ const conc = this.getConcurrency(mainKey);
350
413
  return new Promise(resolve => {
351
- const item = { resolve, sessionId };
414
+ const item = { resolve, sessionId: mainKey };
352
415
  // 排队超时
353
416
  item.timeoutId = setTimeout(() => {
354
- const idx = this.waitQueue.indexOf(item);
417
+ const idx = conc.waitQueue.indexOf(item);
355
418
  if (idx !== -1)
356
- this.waitQueue.splice(idx, 1);
419
+ conc.waitQueue.splice(idx, 1);
357
420
  logEvent({
358
421
  event: 'rate_limit.slot_wait_timeout',
359
422
  level: 'warn',
360
- sessionId,
423
+ sessionId: mainKey,
361
424
  data: { timeout: SUB_SESSION_WAIT_TIMEOUT },
362
425
  });
363
426
  resolve(false);
364
427
  }, SUB_SESSION_WAIT_TIMEOUT);
365
428
  // 主会话被 abort 时立即退出等待
366
- if (sessionId) {
367
- const parentId = this.parentMap.get(sessionId) || sessionId;
368
- const controller = this.mainSessionControllers.get(parentId);
369
- if (controller && !controller.signal.aborted) {
370
- item.abortListener = () => {
371
- if (item.timeoutId)
372
- clearTimeout(item.timeoutId);
373
- const idx = this.waitQueue.indexOf(item);
374
- if (idx !== -1)
375
- this.waitQueue.splice(idx, 1);
376
- resolve(false);
377
- };
378
- controller.signal.addEventListener('abort', item.abortListener, { once: true });
379
- }
429
+ const controller = this.mainSessionControllers.get(mainKey);
430
+ if (controller && !controller.signal.aborted) {
431
+ item.abortListener = () => {
432
+ if (item.timeoutId)
433
+ clearTimeout(item.timeoutId);
434
+ const idx = conc.waitQueue.indexOf(item);
435
+ if (idx !== -1)
436
+ conc.waitQueue.splice(idx, 1);
437
+ resolve(false);
438
+ };
439
+ controller.signal.addEventListener('abort', item.abortListener, { once: true });
380
440
  }
381
- this.waitQueue.push(item);
441
+ conc.waitQueue.push(item);
382
442
  });
383
443
  }
384
- /** 唤醒排队中的子 Agent,直到并发槽位用尽或队列空 */
385
- drainQueue() {
386
- while (this.activeSubSessionCount < MAX_CONCURRENT_SUB_SESSIONS &&
387
- this.waitQueue.length > 0 &&
444
+ /** 唤醒某主会话排队中的子 Agent,直到并发槽位用尽或队列空 */
445
+ drainQueue(mainKey) {
446
+ const conc = this.getConcurrency(mainKey);
447
+ while (conc.active < MAX_CONCURRENT_SUB_SESSIONS &&
448
+ conc.waitQueue.length > 0 &&
388
449
  !this.cooldown) {
389
- const item = this.waitQueue.shift();
450
+ const item = conc.waitQueue.shift();
390
451
  if (!item)
391
452
  continue;
392
453
  // 清理定时器和 abort 监听器
@@ -426,47 +487,55 @@ class RateLimitManager {
426
487
  (Date.now() - this.last429Ts) < COUNT_429_DECAY_MS;
427
488
  this.cooldown = false;
428
489
  this.cooldownUntil = 0;
490
+ // 清理冷却定时器
491
+ if (this.cooldownTimer) {
492
+ clearTimeout(this.cooldownTimer);
493
+ this.cooldownTimer = null;
494
+ }
429
495
  if (!preserve429State) {
430
496
  this.count429 = 0;
431
497
  this.cooldownCycles = 0;
432
498
  this.last429Ts = 0;
433
499
  }
434
- this.activeSubSessionCount = 0;
435
500
  this.activeSubSessionSet.clear();
436
501
  this.parentMap.clear();
437
502
  this.abortedSessions.clear();
438
- // 唤醒所有排队项(拒绝,因为已无主会话)
439
- const queue = this.waitQueue;
440
- this.waitQueue = [];
441
- for (const item of queue) {
442
- if (item.timeoutId)
443
- clearTimeout(item.timeoutId);
444
- try {
445
- item.resolve(false);
446
- }
447
- catch {
448
- // ignore
503
+ // 清空所有 per-session 并发状态与等待队列(拒绝,因为已无主会话)
504
+ for (const conc of this.sessionConcurrency.values()) {
505
+ const queue = conc.waitQueue;
506
+ conc.waitQueue = [];
507
+ for (const item of queue) {
508
+ if (item.timeoutId)
509
+ clearTimeout(item.timeoutId);
510
+ try {
511
+ item.resolve(false);
512
+ }
513
+ catch {
514
+ // ignore
515
+ }
449
516
  }
450
517
  }
518
+ this.sessionConcurrency.clear();
451
519
  }
452
520
  /** 重置指定主会话相关的限流状态 */
453
521
  resetForSession(sessionId) {
454
- this.cooldown = false;
455
- this.cooldownUntil = 0;
456
- this.count429 = 0;
457
- this.cooldownCycles = 0;
458
- // 唤醒所有排队项(主会话被终止,全部拒绝)
459
- const queue = this.waitQueue;
460
- this.waitQueue = [];
461
- for (const item of queue) {
462
- if (item.timeoutId)
463
- clearTimeout(item.timeoutId);
464
- try {
465
- item.resolve(false);
466
- }
467
- catch {
468
- // ignore
522
+ // 仅清理该主会话的并发状态与等待队列,不重置全局冷却(由定时器自然恢复)
523
+ // 唤醒该主会话排队项(主会话被终止,全部拒绝)
524
+ const conc = this.sessionConcurrency.get(sessionId);
525
+ if (conc) {
526
+ const queue = conc.waitQueue;
527
+ conc.waitQueue = [];
528
+ for (const item of queue) {
529
+ if (item.timeoutId)
530
+ clearTimeout(item.timeoutId);
531
+ try {
532
+ item.resolve(false);
533
+ }
534
+ catch {
535
+ // ignore
536
+ }
469
537
  }
538
+ this.sessionConcurrency.delete(sessionId);
470
539
  }
471
540
  }
472
541
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-manager.js","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit-manager.js","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,kBAAkB,KAAK,IAAI,CAAC;AAYtH,iBAAiB;AACjB,wBAAgB,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED,eAAe;AACf,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAUxD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,kBAAkB,KAAK,IAAI,CAAC;AA0CtH,iBAAiB;AACjB,wBAAgB,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED,eAAe;AACf,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAUxD"}
@@ -1,9 +1,41 @@
1
1
  // ============================================================
2
2
  // Observability — 结构化可观测性日志
3
3
  // ============================================================
4
- /** 默认传输:console 输出 */
4
+ /** 需脱敏的字段名(不区分大小写) */
5
+ const SENSITIVE_KEY_RE = /^(authorization|auth|api[_-]?key|apikey|token|secret|cookie|password|passwd|x-api-key|access[_-]?token|refresh[_-]?token)$/i;
6
+ /** 单条日志最大长度(字符),超出截断,降低高并发磁盘 I/O 与内存压力 */
7
+ const LOG_LINE_MAX_LEN = 2000;
8
+ function redactSensitive(value, depth) {
9
+ if (depth > 8)
10
+ return '[omitted]';
11
+ if (Array.isArray(value))
12
+ return value.map(v => redactSensitive(v, depth + 1));
13
+ if (value && typeof value === 'object') {
14
+ const out = {};
15
+ for (const [k, v] of Object.entries(value)) {
16
+ out[k] = SENSITIVE_KEY_RE.test(k) ? '***' : redactSensitive(v, depth + 1);
17
+ }
18
+ return out;
19
+ }
20
+ return value;
21
+ }
22
+ /** 脱敏并截断整条日志,避免敏感内容/超大 payload 落盘(P1) */
23
+ function sanitizePayload(payload) {
24
+ const safe = { ...payload };
25
+ if (safe.data !== undefined && safe.data !== null) {
26
+ try {
27
+ safe.data = redactSensitive(safe.data, 0);
28
+ }
29
+ catch { /* 脱敏失败保留原样 */ }
30
+ }
31
+ const str = `[obs] ${JSON.stringify(safe)}`;
32
+ return str.length > LOG_LINE_MAX_LEN
33
+ ? `${str.slice(0, LOG_LINE_MAX_LEN)}…[truncated ${str.length - LOG_LINE_MAX_LEN} chars]`
34
+ : str;
35
+ }
36
+ /** 默认传输:console 输出(脱敏 + 截断) */
5
37
  const defaultTransport = (payload) => {
6
- const line = `[obs] ${JSON.stringify(payload)}`;
38
+ const line = sanitizePayload(payload);
7
39
  if (payload.level === 'error')
8
40
  console.error(line);
9
41
  else if (payload.level === 'warn')
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,+DAA+D;AAiB/D,sBAAsB;AACtB,MAAM,gBAAgB,GAAiB,CAAC,OAAO,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9C,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,IAAI,UAAU,GAAiB,gBAAgB,CAAC;AAEhD,iBAAiB;AACjB,MAAM,UAAU,eAAe,CAAC,SAAuB;IACrD,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC;AAED,eAAe;AACf,MAAM,UAAU,QAAQ,CAAC,KAAyB;IAChD,MAAM,OAAO,GAAG;QACd,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;KACvB,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,+DAA+D;AAiB/D,sBAAsB;AACtB,MAAM,gBAAgB,GAAG,6HAA6H,CAAC;AACvJ,0CAA0C;AAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yCAAyC;AACzC,SAAS,eAAe,CAAC,OAAgF;IACvG,MAAM,IAAI,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5C,OAAO,GAAG,CAAC,MAAM,GAAG,gBAAgB;QAClC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,eAAe,GAAG,CAAC,MAAM,GAAG,gBAAgB,SAAS;QACxF,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED,+BAA+B;AAC/B,MAAM,gBAAgB,GAAiB,CAAC,OAAO,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9C,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,IAAI,UAAU,GAAiB,gBAAgB,CAAC;AAEhD,iBAAiB;AACjB,MAAM,UAAU,eAAe,CAAC,SAAuB;IACrD,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC;AAED,eAAe;AACf,MAAM,UAAU,QAAQ,CAAC,KAAyB;IAChD,MAAM,OAAO,GAAG;QACd,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;KACvB,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cicctencent/agent-core",
3
- "version": "0.1.67",
3
+ "version": "0.1.69",
4
4
  "description": "Core engine for AI agent — LLM orchestration, tool execution, MCP, skill routing, security, and memory pipeline.",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",