@migor/agentia 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +343 -0
  2. package/README.md +1 -2
  3. package/dist/AGENTS.md +256 -191
  4. package/dist/core/abort.js +4 -1
  5. package/dist/core/abort.js.map +1 -1
  6. package/dist/core/sse.d.ts +14 -0
  7. package/dist/core/sse.js +45 -0
  8. package/dist/core/sse.js.map +1 -0
  9. package/dist/core/stats.d.ts +18 -0
  10. package/dist/core/stats.js +24 -0
  11. package/dist/core/stats.js.map +1 -0
  12. package/dist/core/text.d.ts +19 -0
  13. package/dist/core/text.js +8 -0
  14. package/dist/core/text.js.map +1 -0
  15. package/dist/core/timeout.d.ts +92 -0
  16. package/dist/core/timeout.js +157 -0
  17. package/dist/core/timeout.js.map +1 -0
  18. package/dist/core/tool.d.ts +11 -0
  19. package/dist/core/trace.d.ts +54 -0
  20. package/dist/core/trace.js +43 -0
  21. package/dist/core/trace.js.map +1 -1
  22. package/dist/engine/concurrency.d.ts +6 -30
  23. package/dist/engine/concurrency.js +14 -65
  24. package/dist/engine/concurrency.js.map +1 -1
  25. package/dist/engine/errors.js +14 -4
  26. package/dist/engine/errors.js.map +1 -1
  27. package/dist/engine/loop.js +16 -1
  28. package/dist/engine/loop.js.map +1 -1
  29. package/dist/engine/replay.js +4 -1
  30. package/dist/engine/replay.js.map +1 -1
  31. package/dist/engine/retry.d.ts +17 -2
  32. package/dist/engine/retry.js +41 -22
  33. package/dist/engine/retry.js.map +1 -1
  34. package/dist/engine/spec.d.ts +22 -0
  35. package/dist/engine/spec.js +19 -4
  36. package/dist/engine/spec.js.map +1 -1
  37. package/dist/engine/tracer.d.ts +6 -1
  38. package/dist/engine/tracer.js +17 -2
  39. package/dist/engine/tracer.js.map +1 -1
  40. package/dist/engine/trimming.d.ts +3 -1
  41. package/dist/engine/trimming.js +35 -3
  42. package/dist/engine/trimming.js.map +1 -1
  43. package/dist/engine/turn.d.ts +8 -0
  44. package/dist/engine/turn.js +39 -18
  45. package/dist/engine/turn.js.map +1 -1
  46. package/dist/engine/types.d.ts +7 -1
  47. package/dist/engine/usage.js +4 -1
  48. package/dist/engine/usage.js.map +1 -1
  49. package/dist/eval/defineEval.d.ts +3 -0
  50. package/dist/eval/defineEval.js +42 -12
  51. package/dist/eval/defineEval.js.map +1 -1
  52. package/dist/eval/harvest.d.ts +0 -7
  53. package/dist/eval/harvest.js +20 -9
  54. package/dist/eval/harvest.js.map +1 -1
  55. package/dist/index.d.ts +3 -3
  56. package/dist/index.js +2 -2
  57. package/dist/index.js.map +1 -1
  58. package/dist/integrations/anthropic.js +35 -66
  59. package/dist/integrations/anthropic.js.map +1 -1
  60. package/dist/integrations/mcp.d.ts +13 -4
  61. package/dist/integrations/mcp.js +31 -24
  62. package/dist/integrations/mcp.js.map +1 -1
  63. package/dist/integrations/metrics.d.ts +35 -5
  64. package/dist/integrations/metrics.js +101 -39
  65. package/dist/integrations/metrics.js.map +1 -1
  66. package/dist/integrations/openai.d.ts +13 -0
  67. package/dist/integrations/openai.js +62 -49
  68. package/dist/integrations/openai.js.map +1 -1
  69. package/dist/integrations/otlp.js +41 -11
  70. package/dist/integrations/otlp.js.map +1 -1
  71. package/dist/integrations/report.js +2 -14
  72. package/dist/integrations/report.js.map +1 -1
  73. package/dist/runtime/run.d.ts +21 -1
  74. package/dist/runtime/run.js +17 -0
  75. package/dist/runtime/run.js.map +1 -1
  76. package/dist/runtime/session.js +5 -1
  77. package/dist/runtime/session.js.map +1 -1
  78. package/dist/toolkit/env.js +43 -7
  79. package/dist/toolkit/env.js.map +1 -1
  80. package/dist/toolkit/module.d.ts +24 -1
  81. package/dist/toolkit/module.js +12 -0
  82. package/dist/toolkit/module.js.map +1 -1
  83. package/dist/toolkit/prompt.js +18 -4
  84. package/dist/toolkit/prompt.js.map +1 -1
  85. package/dist/toolkit/skill.js +3 -0
  86. package/dist/toolkit/skill.js.map +1 -1
  87. package/dist/toolkit/subagent.js +7 -0
  88. package/dist/toolkit/subagent.js.map +1 -1
  89. package/dist/transport/async.d.ts +3 -0
  90. package/dist/transport/async.js +28 -2
  91. package/dist/transport/async.js.map +1 -1
  92. package/dist/transport/http.js +58 -7
  93. package/dist/transport/http.js.map +1 -1
  94. package/package.json +3 -2
@@ -1,3 +1,6 @@
1
+ import { textOf } from '../core/text.js';
2
+ import { sseLines } from '../core/sse.js';
3
+ import { interruptibleSleep } from '../core/timeout.js';
1
4
  /**
2
5
  * Anthropic API 错误:非 2xx 响应(读响应体截断进 message)或 200 流内嵌 error 事件。
3
6
  * 带数值 `status` —— `engine/errors.ts` 的鸭子类型分类靠它(429 → rate_limit、
@@ -41,7 +44,8 @@ export function createAnthropicClient(options = {}) {
41
44
  const ctype = res.headers.get('content-type') ?? '';
42
45
  if (!ctype.includes('event-stream')) {
43
46
  const message = (await res.json());
44
- const full = textOf(message);
47
+ // 分隔符 `''`:回落的原文本来就是一整段,拼回去要与流式累积的文本逐字一致
48
+ const full = textOf(message, '');
45
49
  if (full)
46
50
  for (const cb of textCallbacks)
47
51
  cb(full);
@@ -91,7 +95,7 @@ async function postWithRetries(url, headers, body, signal, maxRetries) {
91
95
  for (let attempt = 0;; attempt++) {
92
96
  if (attempt > 0) {
93
97
  // 退避期间被中止:以 AbortError 收场(与引擎的 sleep 同语义)
94
- await interruptibleSleep(backoffMs(attempt, retryAfter), signal);
98
+ await interruptibleSleep(backoffMs(attempt, retryAfter), signal, '请求已被取消');
95
99
  retryAfter = null;
96
100
  }
97
101
  let res;
@@ -126,6 +130,12 @@ async function postWithRetries(url, headers, body, signal, maxRetries) {
126
130
  /**
127
131
  * 退避毫秒:`retry-after`(秒数或 HTTP-date)优先;否则指数退避
128
132
  * `min(500 × 2^(attempt-1), 8000)` ±25% 抖动(attempt 从 1 起 = 第一次重试)。
133
+ *
134
+ * ⚠️ **不要**与 `engine/retry.ts` 的 `backoffDelay` 合并(2026-09-17 去重时明确留下的
135
+ * 例外)。旁边的 `interruptibleSleep` 已经下沉到 core 共享,但退避计算器不能跟着走 ——
136
+ * 两者形似而策略不同,合一就是改行为:本函数 ±25% 固定抖动、且**优先尊重 `retry-after`**
137
+ * (限流窗口是上游说了算,框架不该拿自己的指数曲线去猜);那个是 ±jitter(缺省 ±20%)
138
+ * 的均匀抖动、底数与上限来自 `RetryOptions`,且它在引擎层(client 放弃之后的兜底重试)。
129
139
  */
130
140
  function backoffMs(attempt, retryAfter) {
131
141
  if (retryAfter) {
@@ -140,30 +150,6 @@ function backoffMs(attempt, retryAfter) {
140
150
  const base = Math.min(500 * 2 ** Math.max(0, attempt - 1), 8000);
141
151
  return Math.round(base * (0.75 + Math.random() * 0.5));
142
152
  }
143
- /**
144
- * 可被 signal 中断的 sleep。
145
- * 与 `engine/retry.ts` 的 sleep 同语义但不复用它 —— 分层约束:integrations 只能依赖 core。
146
- */
147
- function interruptibleSleep(ms, signal) {
148
- if (ms <= 0)
149
- return Promise.resolve();
150
- return new Promise((resolve, reject) => {
151
- const abortError = () => Object.assign(new Error('请求已被取消'), { name: 'AbortError' });
152
- if (signal?.aborted) {
153
- reject(abortError());
154
- return;
155
- }
156
- function onAbort() {
157
- clearTimeout(timer);
158
- reject(abortError());
159
- }
160
- const timer = setTimeout(() => {
161
- signal?.removeEventListener('abort', onAbort);
162
- resolve();
163
- }, ms);
164
- signal?.addEventListener('abort', onAbort, { once: true });
165
- });
166
- }
167
153
  /**
168
154
  * 合成 params.signal 与 timeout(任一触发即中止)。
169
155
  * 不用 `AbortSignal.any`:它 Node 20+ 才有,本包 `engines` 承诺 >=18。
@@ -194,6 +180,26 @@ function composeSignal(paramsSignal, timeoutMs) {
194
180
  },
195
181
  };
196
182
  }
183
+ /**
184
+ * 并入 message_delta 的累计 usage:**跳过 null/undefined**。
185
+ *
186
+ * `{ ...base, ...delta }` 在这里是错的:RawUsage 的字段允许显式 `null`,
187
+ * 浅合并会让 delta 里的 null **覆盖** base 已经拿到的真实数字。真实场景(网关/代理型
188
+ * 端点):message_start 报 `input_tokens: 7 / cache_read: 3`,随后的 message_delta 只带
189
+ * `{ output_tokens: 9, input_tokens: null, cache_*: null }` —— 浅合并把四项全清成 null,
190
+ * 末尾的 `?? 0` 再归零,于是该回合 input/cache token 与 costEstimate 一起塌成 0,
191
+ * trace 汇总、buildRunReport、maxCostUsd 护栏跟着一起少算。
192
+ *
193
+ * 缺值的正确语义是「保持已有值」,不是「清空已有值」。
194
+ */
195
+ function mergeUsage(base, delta) {
196
+ const out = { ...base };
197
+ for (const [k, v] of Object.entries(delta)) {
198
+ if (v !== null && v !== undefined)
199
+ out[k] = v;
200
+ }
201
+ return out;
202
+ }
197
203
  /**
198
204
  * 消费 `text/event-stream` 并组装成 Message。事件处理:
199
205
  *
@@ -290,9 +296,10 @@ async function readAnthropicStream(body, fallbackModel, textCallbacks) {
290
296
  stopReason = d.stop_reason;
291
297
  if (d?.stop_sequence !== undefined)
292
298
  stopSequence = d.stop_sequence;
293
- // message_delta 的 usage 是累计口径(output_tokens 为累计值,cache 计量在此回报)
299
+ // message_delta 的 usage 是累计口径(output_tokens 为累计值,cache 计量在此回报)。
300
+ // 走 mergeUsage 而非浅合并:显式 null 不得清掉 message_start 已拿到的真实值。
294
301
  if (event.usage)
295
- usage = { ...usage, ...event.usage };
302
+ usage = mergeUsage(usage, event.usage);
296
303
  break;
297
304
  }
298
305
  case 'error': {
@@ -374,42 +381,4 @@ function parseToolInput(raw) {
374
381
  return raw;
375
382
  }
376
383
  }
377
- /** 逐行读 SSE(每条事件都是一行 `data:`,不需要处理多行 payload;与 openai.ts 同款) */
378
- async function* sseLines(body) {
379
- const reader = body.getReader();
380
- const decoder = new TextDecoder();
381
- let buf = '';
382
- try {
383
- for (;;) {
384
- const { done, value } = await reader.read();
385
- if (done)
386
- break;
387
- buf += decoder.decode(value, { stream: true });
388
- let idx = buf.indexOf('\n');
389
- while (idx >= 0) {
390
- yield buf.slice(0, idx).replace(/\r$/, '');
391
- buf = buf.slice(idx + 1);
392
- idx = buf.indexOf('\n');
393
- }
394
- }
395
- if (buf)
396
- yield buf.replace(/\r$/, '');
397
- }
398
- finally {
399
- // 提前 break(abort 等)时释放读锁,否则流不会被回收
400
- try {
401
- await reader.cancel();
402
- }
403
- catch {
404
- /* 已结束/已取消 */
405
- }
406
- }
407
- }
408
- /** 取消息里的全部文本块(非流式回落路径一次性回调用) */
409
- function textOf(message) {
410
- return message.content
411
- .filter((b) => b.type === 'text')
412
- .map((b) => b.text)
413
- .join('');
414
- }
415
384
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/integrations/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/integrations/anthropic.ts"],"names":[],"mappings":"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"}
@@ -48,18 +48,27 @@ export interface McpToolsOptions {
48
48
  /** server 标识,只用于拼缺省前缀(不会发给 server) */
49
49
  server?: string;
50
50
  /**
51
- * 单次 `callTool` 超时(毫秒),缺省 60000;非正数 = 不限。
52
- * 超时**不杀 run**:该条 tool_result 记 `is_error` 回模型(与 engine 的
53
- * `toolTimeoutMs` 同语义,只是这里由桥自己兜 —— 双保险,谁短谁生效)。
51
+ * **兜底**单次 `callTool` 超时(毫秒),缺省 60000;非正数 = 不限。
52
+ *
53
+ * ⚠️ 语义(见 spec §10 2026-09-17 ①):**引擎设了 `toolTimeoutMs` 时本项不参与判定** ——
54
+ * 一次调用只有一个裁判,否则同一件事会有两个计时器、两种账。它只在两种情况生效:
55
+ * ① 桥脱离引擎单用(直接 `tool.run(...)`,没有 ctx);② 引擎没设 `toolTimeoutMs`。
56
+ *
57
+ * 超时**不杀 run**:该条 tool_result 记 `is_error`、`errorKind='timeout'` 回模型。
58
+ * 与 engine 的 `toolTimeoutMs` **同判定、同账目**(共用 `core/timeout.ts` 的实测耗时兜底)。
54
59
  */
55
60
  timeoutMs?: number;
56
61
  }
57
62
  /** 缺省超时:MCP server 可能去连外部系统,60s 是「明显卡死」与「慢但正常」的分界 */
58
63
  export declare const MCP_DEFAULT_TIMEOUT_MS = 60000;
59
64
  /**
60
- * 给一次 MCP 调用套超时。⚠️ 与 engine 的 `withTimeout` 同样是**放弃等待**而非取消 ——
65
+ * 给一次 MCP 调用套超时。⚠️ 与引擎的工具超时同样是**放弃等待**而非取消 ——
61
66
  * MCP 的 `notifications/cancelled` 属于连接器职责,桥这一层拿不到取消句柄。
62
67
  *
68
+ * 实现是 `core/timeout.ts` 共享原语的**薄封装**(2026-09-17 单源化,见 spec §10 2026-09-17 ①):
69
+ * 「一次调用只有一个预算判定」在引擎与桥之间只允许有一份实现。此前桥自带一份**纯竞速**
70
+ * 版本,于是 2026-09-14 的「超时是硬的」收紧只落进引擎,桥继续把**超预算**的调用记成成功。
71
+ *
63
72
  * 转导导出(module 级,**不进公共面**)只为可测:`tests/timeoutLiveness.test.ts` 拿它验
64
73
  * 「截止计时器不得 unref」—— 那是「被 await 的超时到底会不会触发」的唯一分界点。
65
74
  */
@@ -1,3 +1,4 @@
1
+ import { TIMED_OUT, TimeoutError, withTimeout } from '../core/timeout.js';
1
2
  /** 缺省超时:MCP server 可能去连外部系统,60s 是「明显卡死」与「慢但正常」的分界 */
2
3
  export const MCP_DEFAULT_TIMEOUT_MS = 60_000;
3
4
  /**
@@ -13,37 +14,24 @@ function normalizeToolName(raw) {
13
14
  .replace(/^_+|_+$/g, '');
14
15
  return cleaned;
15
16
  }
16
- /** 超时哨兵:区分「超时」与「工具恰好返回了 undefined」(同 engine 的 TIMED_OUT) */
17
- const TIMED_OUT = Symbol('agentia.mcp.timed-out');
18
17
  /**
19
- * 给一次 MCP 调用套超时。⚠️ 与 engine 的 `withTimeout` 同样是**放弃等待**而非取消 ——
18
+ * 给一次 MCP 调用套超时。⚠️ 与引擎的工具超时同样是**放弃等待**而非取消 ——
20
19
  * MCP 的 `notifications/cancelled` 属于连接器职责,桥这一层拿不到取消句柄。
21
20
  *
21
+ * 实现是 `core/timeout.ts` 共享原语的**薄封装**(2026-09-17 单源化,见 spec §10 2026-09-17 ①):
22
+ * 「一次调用只有一个预算判定」在引擎与桥之间只允许有一份实现。此前桥自带一份**纯竞速**
23
+ * 版本,于是 2026-09-14 的「超时是硬的」收紧只落进引擎,桥继续把**超预算**的调用记成成功。
24
+ *
22
25
  * 转导导出(module 级,**不进公共面**)只为可测:`tests/timeoutLiveness.test.ts` 拿它验
23
26
  * 「截止计时器不得 unref」—— 那是「被 await 的超时到底会不会触发」的唯一分界点。
24
27
  */
25
28
  export async function withDeadline(p, timeoutMs, label) {
26
- if (!(timeoutMs > 0))
27
- return p;
28
- let timer;
29
- try {
30
- const raced = await Promise.race([
31
- p,
32
- new Promise((resolve) => {
33
- timer = setTimeout(() => resolve(TIMED_OUT), timeoutMs);
34
- // ⚠️ 不 unref:同 engine 的 `withTimeout` —— 它的触发是「这个 await 得以结束」的条件。
35
- // unref 过它 ⇒ 空事件循环下进程先退出,挂起的 MCP 调用让整段代码静默消失。
36
- }),
37
- ]);
38
- if (raced === TIMED_OUT) {
39
- throw new Error(`MCP 工具 "${label}" 调用超时(超过 ${timeoutMs}ms)`);
40
- }
41
- return raced;
42
- }
43
- finally {
44
- if (timer)
45
- clearTimeout(timer);
29
+ const out = await withTimeout(p, timeoutMs);
30
+ if (out === TIMED_OUT) {
31
+ // 类型化超时(code='timeout')⇒ 引擎记 errorKind='timeout',与它自己判的超时同一类账。
32
+ throw new TimeoutError(`MCP 工具 "${label}" 调用超时(超过 ${timeoutMs}ms)`);
46
33
  }
34
+ return out;
47
35
  }
48
36
  /**
49
37
  * 把一个 MCP server 的工具映射成框架的 `AgentTool[]`(可直接进 `tools` / providers)。
@@ -90,15 +78,22 @@ export async function mcpTools(client, opts = {}) {
90
78
  const schema = info.inputSchema && typeof info.inputSchema === 'object' && !Array.isArray(info.inputSchema)
91
79
  ? info.inputSchema
92
80
  : { type: 'object' };
81
+ // 外部 server 的 tools/list 是**外部输入**:description 不是 string(数字/对象)时
82
+ // 直接 `.trim()` 会让整个装配期崩 —— 与上面 name / inputSchema 的类型防御保持一致。
83
+ const description = typeof info.description === 'string' ? info.description.trim() : '';
93
84
  tools.push({
94
85
  name,
95
- description: info.description?.trim() || `MCP 工具 ${original}`,
86
+ description: description || `MCP 工具 ${original}`,
96
87
  inputSchema: schema,
97
88
  run: async (input, ctx) => {
98
89
  // 原名先落账再调用:连接器抛错/超时时,trace 里仍留得下「本想调谁」
99
90
  if (ctx) {
100
91
  try {
92
+ // 两条键:`mcp.tool` 是「本次 turn 最近一次」的兼容键(既有看板/查询照旧);
93
+ // `mcp.tool.<菜单名>` 每次调用各写一条 —— 同回合并行调多个 MCP 工具时单值键会被
94
+ // 后者覆盖,审计/回放就拿不回被覆盖那个(按菜单名分键即无此问题)。
101
95
  ctx.recorder.setAttribute(ctx.parentSpanId, 'mcp.tool', original);
96
+ ctx.recorder.setAttribute(ctx.parentSpanId, `mcp.tool.${name}`, original);
102
97
  }
103
98
  catch {
104
99
  /* 观测是辅助动作:记账失败不得把一次正常调用变成失败 */
@@ -107,6 +102,18 @@ export async function mcpTools(client, opts = {}) {
107
102
  const args = input && typeof input === 'object' && !Array.isArray(input)
108
103
  ? input
109
104
  : {};
105
+ // 裁判权(2026-09-17,见 spec §10 2026-09-17 ①):引擎**表过态**时,桥不启动自己的计时器 ——
106
+ // 两个计时器判同一件事,只会得到两种账(桥那份曾被记成 error(unknown)/errorKind=threw),
107
+ // 而且桥的纯竞速还会把超了预算的调用记成成功。`timeoutMs` 退化为兜底(只在脱离引擎单用、
108
+ // 或引擎压根没设 toolTimeoutMs 时生效)。
109
+ //
110
+ // 判据是 `!= null` 而**不是** `> 0`:`toolTimeoutMs: 0` 的文档语义是「引擎不设超时」,
111
+ // 那同样是引擎的表态。用 `> 0` 的话,用户显式写下 0(不限),桥却自作主张判 60s ——
112
+ // 与「一次调用只有一个裁判」相反:说了不限就该不限。
113
+ const engineBudget = ctx?.toolTimeoutMs;
114
+ if (engineBudget != null) {
115
+ return client.callTool(original, args);
116
+ }
110
117
  return withDeadline(client.callTool(original, args), timeoutMs, original);
111
118
  },
112
119
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/integrations/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/integrations/mcp.ts"],"names":[],"mappings":"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"}
@@ -73,14 +73,24 @@ export interface MetricsSnapshot {
73
73
  tokens: number;
74
74
  /** 累计成本估算(美元);模型不在价格表内时该 run 不计入(见 usage.ts) */
75
75
  costUsd: number;
76
- /** 能力维度(`labelMode:'none'` 时为空对象) */
76
+ /**
77
+ * 能力维度(`labelMode:'none'` 时为空对象)。超 `maxCapabilities` 的键折叠在
78
+ * `'__other__'` —— 该桶照常累加,所以这里的**总量**不受上限影响。
79
+ */
77
80
  capabilities: Record<string, CapabilityMetrics>;
78
- /** 模型维度 */
81
+ /** 模型维度;超 `maxModels` 的键折叠在 `'__other__'`(同上:总量不丢) */
79
82
  models: Record<string, ModelMetrics>;
80
- /** 评分维度(key 为 `name@source`,source 缺省时裸 name;无评分时为空对象) */
83
+ /**
84
+ * 评分维度(key 为 `name@source`,source 缺省时裸 name;无评分时为空对象);
85
+ * 超 `maxScores` 的键折叠在 `'__other__'`。
86
+ */
81
87
  scores: Record<string, ScoreMetrics>;
82
- /** 因 `maxCapabilities` 上限被归入 `__other__` 的不同能力数(未开启上限时为 0) */
88
+ /** 因 `maxCapabilities` 上限被归入 `__other__` 的不同能力数 */
83
89
  droppedCapabilities: number;
90
+ /** 因 `maxModels` 上限被归入 `__other__` 的不同模型数 */
91
+ droppedModels: number;
92
+ /** 因 `maxScores` 上限被归入 `__other__` 的不同评分维度数 */
93
+ droppedScores: number;
84
94
  }
85
95
  export interface MetricsSinkOptions {
86
96
  /**
@@ -114,7 +124,10 @@ export interface MetricsSinkOptions {
114
124
  * 时长分位保留的样本数(环形窗口,缺省 1024,**run / 能力 / 模型各自独立**)。
115
125
  * 分位是**窗口内精确值**而非全历史近似 —— 长跑宿主不会被无界数组拖住内存,
116
126
  * 代价是分位只反映最近这么多条样本(这也是监控想要的)。
117
- * 注意:每个能力/模型各持一个窗口 → 内存上限 ≈ (1 + 能力数 + 模型数) × windowSize。
127
+ *
128
+ * 注意:每个能力/模型各持一个窗口,所以 windowSize 只是**系数**;真正封住内存的是
129
+ * 三个基数上限(`maxCapabilities` / `maxModels` / `maxScores`)—— 上限 **×** 窗口
130
+ * 才是常驻内存的上界,缺一个都是无界(见 `maxModels` 的注释)。
118
131
  */
119
132
  windowSize?: number;
120
133
  /** 指标名前缀,缺省 `agentia_` */
@@ -131,6 +144,23 @@ export interface MetricsSinkOptions {
131
144
  * 超出后新能力归入 `capability="__other__"` —— 用户可定义任意多工具,裸打标签会打爆 Prometheus。
132
145
  */
133
146
  maxCapabilities?: number;
147
+ /**
148
+ * 模型维度基数上限(缺省 50)。超出后新模型归入 `"__other__"`
149
+ * —— `model` 是 per-run 可覆盖的(`app.run(m, { model })`),
150
+ * 上游把版本号/日期拼进模型 id(`claude-x-20260101`)时键会无界增长;
151
+ * 而每个模型键都持一个 `windowSize` 环形窗口 + 一个直方图 → **无上限 = 无界内存**。
152
+ *
153
+ * 折叠**只丢标签粒度,不丢量**:`__other__` 桶照常累加 turn / token / 成本,
154
+ * `snapshot().models` 的总量仍然对得上。被折叠的不同模型数见 `snapshot().droppedModels`。
155
+ */
156
+ maxModels?: number;
157
+ /**
158
+ * 评分维度基数上限(缺省 200)。评分键是 `name@source`(`attachScore` 的 name × source),
159
+ * eval 名若由调用方拼出来(带时间戳/用例名)同样是无界键 → 同上折叠进 `"__other__"`。
160
+ * 折叠后 gauge 语义(最近一次值)保留,只是不再区分是哪个评分维度;
161
+ * 条数 / 总和照常累加,被折叠的不同评分维度数见 `snapshot().droppedScores`。
162
+ */
163
+ maxScores?: number;
134
164
  /** 时长直方图的桶边界(毫秒,升序);缺省见 DEFAULT_BUCKETS */
135
165
  buckets?: readonly number[];
136
166
  }