@migor/agentia 0.10.3 → 0.10.4

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 (46) hide show
  1. package/CHANGELOG.md +419 -30
  2. package/LICENSE +1 -1
  3. package/README.en.md +93 -38
  4. package/README.md +105 -218
  5. package/dist/AGENTS.md +143 -20
  6. package/dist/core/trace-sink.d.ts +8 -0
  7. package/dist/core/trace-sink.js +24 -0
  8. package/dist/core/trace-sink.js.map +1 -0
  9. package/dist/core/trace.d.ts +2 -1
  10. package/dist/core/trace.js.map +1 -1
  11. package/dist/engine/loop-result.d.ts +1 -1
  12. package/dist/engine/loop.js +8 -0
  13. package/dist/engine/loop.js.map +1 -1
  14. package/dist/engine/mcp-server.d.ts +2 -2
  15. package/dist/engine/mcp-server.js +3 -9
  16. package/dist/engine/mcp-server.js.map +1 -1
  17. package/dist/engine/types.d.ts +5 -2
  18. package/dist/engine/types.js +1 -0
  19. package/dist/engine/types.js.map +1 -1
  20. package/dist/eval/harvest.d.ts +4 -1
  21. package/dist/eval/harvest.js +32 -6
  22. package/dist/eval/harvest.js.map +1 -1
  23. package/dist/index.d.ts +3 -1
  24. package/dist/index.js +4 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/integrations/file-sink.d.ts +0 -16
  27. package/dist/integrations/file-sink.js +22 -4
  28. package/dist/integrations/file-sink.js.map +1 -1
  29. package/dist/integrations/mcp-stdio.js +63 -42
  30. package/dist/integrations/mcp-stdio.js.map +1 -1
  31. package/dist/integrations/metrics-render.js +16 -5
  32. package/dist/integrations/metrics-render.js.map +1 -1
  33. package/dist/runtime/run.d.ts +1 -1
  34. package/dist/runtime/run.js +19 -17
  35. package/dist/runtime/run.js.map +1 -1
  36. package/dist/store/store.js +9 -2
  37. package/dist/store/store.js.map +1 -1
  38. package/dist/toolkit/discover.js +27 -1
  39. package/dist/toolkit/discover.js.map +1 -1
  40. package/dist/toolkit/module.js +105 -49
  41. package/dist/toolkit/module.js.map +1 -1
  42. package/dist/toolkit/subagent.d.ts +1 -1
  43. package/dist/transport/serve.d.ts +92 -0
  44. package/dist/transport/serve.js +155 -0
  45. package/dist/transport/serve.js.map +1 -0
  46. package/package.json +23 -10
package/dist/AGENTS.md CHANGED
@@ -41,10 +41,41 @@
41
41
 
42
42
  ## 1. 最小可运行示例
43
43
 
44
+ ### 1.1 先跑一个裸工具(不需要装饰器 / DI)
45
+
44
46
  ```ts
45
- import { Tool, createApp, SystemPrompt } from '@migor/agentia';
47
+ import { createApp } from '@migor/agentia';
48
+
49
+ const app = createApp({
50
+ system: '你是友好的助手。',
51
+ tools: [
52
+ {
53
+ name: 'say_hello',
54
+ description: '向某人打招呼',
55
+ inputSchema: {
56
+ type: 'object',
57
+ properties: { name: { type: 'string' } },
58
+ required: ['name'],
59
+ },
60
+ run: (input) => `你好,${(input as { name: string }).name}`,
61
+ },
62
+ ],
63
+ });
64
+
65
+ const { result } = await app.run([{ role: 'user', content: '跟小明打个招呼' }]);
66
+ if (result.error) throw new Error(`${result.stopReason}: ${result.error.message}`);
67
+ console.log(result.finalText, result.trace.totalUsage);
68
+ ```
69
+
70
+ 这是最短路径:`tools + createApp + app.run`。`inputSchema` 约束模型入参,`run` 是实际函数;
71
+ `result.error` 必须检查,不能只打印 `finalText`。`trace` 从第一次 run 就在,不需要先配观测后端。
72
+
73
+ 也可以直接 `npx @migor/cli create my-app --minimal` 生成同形态的单文件工程(见下一节)。
74
+
75
+ ### 1.2 能力变多后再用装饰器组织
46
76
 
47
- const OBJ = { type: 'object', properties: {} } as const;
77
+ ```ts
78
+ import { Tool, createApp, SystemPrompt } from '@migor/agentia';
48
79
 
49
80
  class Greeter {
50
81
  @Tool({
@@ -80,21 +111,30 @@ console.log(result.finalText, result.stopReason, result.trace.totalUsage);
80
111
  ## 2. 项目结构(CLI 约定)
81
112
 
82
113
  ```bash
83
- npx @migor/cli create my-app # 首次创建:必须带 scope(短名 agentia 在 npm 上是别人的包)
114
+ # 只想先跑一个 agent:单文件 + 裸工具,无装饰器 / registry / HTTP 宿主
115
+ npx @migor/cli create my-app --minimal
84
116
  cd my-app && npm install # 框架与 CLI 都装进工程
85
117
  $EDITOR .env # 填 ANTHROPIC_API_KEY(脚手架已生成,且已被 .gitignore 挡住)
118
+ npm run dev -- "你的问题" # = tsx src/main.ts,跑一次并退出
119
+
120
+ # 需要 inspector、能力目录与生产服务时:不带 --minimal 的默认完整模板
121
+ npx @migor/cli create my-service
122
+ cd my-service && npm install
86
123
  npm run dev # = agentia dev:本地 inspector 面板(输入 prompt / 选能力 / 选工作目录)
87
- npx agentia g tool fetch-weather # 生成到 src/tools/fetch-weather/(skill/prompt/subagent 同理)
124
+ npx agentia g tool fetch-weather # 生成到 src/tools/fetch-weather/(skill/prompt/subagent 同理)
88
125
  npx agentia doctor # 静态体检(未登记/悬空/命名/重复)
89
126
  npx agentia --version # CLI 版本(= -v)
90
127
  ```
91
128
 
129
+ **两种模板只是起点不同**:minimal 用于先跑通模型与工具,完整模板用于继续组织能力和交付服务;
130
+ 默认仍是不带 `--minimal` 的完整服务模板,既有项目与脚本不变。
131
+
92
132
  > **命令从哪来**:脚手架把 `@migor/cli` 装进工程的 `devDependencies`,所以**工程内**用短名
93
133
  > `npx agentia …` 即可(走本地 bin:离线可用、版本与工程一同 pin)。**首次创建**必须用带 scope 的
94
134
  > `npx @migor/cli create` —— npm 上另有一个别人的 `agentia` 包,短名会装错东西。
95
135
  > 想全局装上(到处都能敲 `agentia`):`npm i -g @migor/cli`。
96
136
 
97
- 四分类目录,一能力一文件夹:`src/tools/` · `src/skills/` · `src/prompts/` · `src/subagents/` —— **目录名就是类型**,不用记别名。每个文件夹的 `index.ts` 是入口,`default export` 支持三种形态:**类**(token = 文件夹名)、**Provider 对象**、**Provider 数组**。显式注册表在 `src/registry.ts`(`agentia g` 自动维护,也可手改)。
137
+ 四分类目录,一能力一文件夹:`src/tools/` · `src/skills/` · `src/prompts/` · `src/subagents/` —— **目录名就是类型**,不用记别名。每个文件夹的 `index.ts` 是入口,`default export` 支持三种形态:**类**(token = 文件夹名)、**Provider 对象**、**Provider 数组**。类形态要注入依赖时,在类上写 `static readonly deps = ['WORKDIR']` —— `discover` 会把它带上(**不必**把该能力挪到显式 `providers` 再注册一遍,那样同一 token 会有两份、靠「后注册覆盖先注册」碰巧成立);`deps` 写成非字符串数组会**响亮报错**,不当成「没有依赖」。显式注册表在 `src/registry.ts`(`agentia g` 自动维护,也可手改)。
98
138
 
99
139
  ### 2.1 脚手架生成的文件(**装配与启动是分开的**)
100
140
 
@@ -206,15 +246,40 @@ token 的作用是挡住**本机其它进程**,别把它当网络边界:这
206
246
 
207
247
  ```bash
208
248
  agentia report .agentia/traces.jsonl # 哪个能力慢 / 贵 / 爱失败
249
+ agentia view .agentia/traces.jsonl --open # 把落盘的 trace 画成一棵树(单文件 HTML,见下)
209
250
  agentia diff .agentia/traces.jsonl ... # 改 prompt 前后逐 span 比对(有差异时退出码 1)
210
251
  agentia harvest .agentia/traces.jsonl --failed # 失败的 run → eval 用例骨架
211
252
  agentia export .agentia/traces.jsonl # → 训练数据集 JSONL
212
253
  ```
213
254
 
255
+ **`agentia view` —— 事后看一棵树**(面板只管「在飞」的,这个管「盘上」的):
256
+
257
+ ```bash
258
+ agentia view .agentia/traces.jsonl --open # 渲完直接用默认浏览器打开
259
+ agentia view .agentia/traces.jsonl -o r.html # 指定产物名(缺省 = 输入名去扩展名 .html)
260
+ agentia view .agentia/traces.jsonl --trace-id <id> # 只看一条
261
+ agentia view .agentia/traces.jsonl --limit 20 # 默认最近 50 条(超了会明说,不静默截断)
262
+ agentia view .agentia/traces.jsonl --limit 20 --head # 从头看(排查「第一次出现的问题」时用)
263
+ ```
264
+
265
+ ⚠️ **`--limit` 缺省取「最近」N 条,不是前 N 条**:`.agentia/traces.jsonl` 只增不减,最新的一次
266
+ run 在**文件末尾** —— 取最早那种写法在长跑 dev 环里等于「想复盘刚才那次,给你今早第一批」。
267
+ 同一节奏:产物缺省写在输入旁边,但输入在**点目录**里(`.agentia/`)时**上跳到最近的可见目录**,
268
+ 不把 HTML 藏进隐藏目录;产物路径等于输入文件本身会直接报错(否则把 trace 数据覆盖成 HTML);
269
+ 覆盖同名文件会在 stdout 明说(HTML 是派生物,重跑是常态,所以不像 `harvest` 那样要 `--force`)。
270
+
271
+ 产物是**单文件自包含 HTML**:CSS 与渲染器**全部内联**,零外链、离线可开、可以直接贴进 PR 或
272
+ 发给同事(业界同类工具在 2026 已收敛到这个形态)。⚠️ 三件事要知道:
273
+ ① **默认脱敏**(`--raw` 关闭,且此时 stderr 会警告)—— 产物的默认命运是「被转发」,而 trace
274
+ 含完整 prompt 与工具出入参;② 脱敏是 **best-effort**,覆盖 6 类值内凭证形态
275
+ (bearer / jwt / aws-access-key / llm-api-key / email / phone-cn),**`password=` 这类不在内**,
276
+ 业务自有字段用 `--redact-key <字段名>`(按字段名整字段抹平,与前者是两种机制);
277
+ ③ 多条 trace 时顶部下拉切换,`#N` 锚点可直达。
278
+
214
279
  落盘**不替代**右栏的实时树:那是两条缝(落盘管「事后能查」,`onTraceEvent` 管「此刻看到」)。
215
280
  三条如实标注:① 文件**只增不减**(要清是你自己 `rm`);② 落盘是**同步写**,单条 trace 以百 KB
216
281
  计、且 `traceLimits.maxEvents` 本来兜上限;③ 面板的 run 列表是**内存** ring(50 条),
217
- 重启就空了 —— 落盘让数据**没丢**,但面板不会替你回看历史。
282
+ 重启就空了 —— 落盘让数据**没丢**,但面板不会替你回看历史,**回看历史走 `agentia view`**。
218
283
 
219
284
  **并排 A/B(比两条 run差在哪)**:run 列表里 **⌘/Ctrl + 单击**选两条(再点一次取消、
220
285
  选第三条挤掉最早那条),右栏切**双栏**并排两棵调用树,顶部一条差异摘要
@@ -445,7 +510,7 @@ const { result } = await app.run(messages, {
445
510
  result.typed; // { answer: string } | undefined
446
511
  ```
447
512
 
448
- 模型没提交就是 `undefined`(不是失败)。`stopReason` 仍以 `end_turn` 正常收尾。
513
+ 模型没提交时 `typed` 为 `undefined`,且 run 以 `stopReason='result_missing'` **失败**(trace 同样记 `error`,`error.type='result_missing'`);不再把「声明了结构化结果却没收尾」当成功。子 agent 声明 `resultSchema` 后未提交也会以 `is_error` 回主 agent。
449
514
 
450
515
  ### 5.4 消息类型族(自有公共类型,与厂商 SDK 结构兼容)
451
516
 
@@ -660,6 +725,38 @@ npm run client # 另一个终端:把四个 RPC 跑一遍
660
725
  方法不符 → 405(带 `Allow` 头);路径不符 → 404;body 非法 JSON → 400;body 超 `maxBodyBytes` → 413;
661
726
  `POST /run` 超 `maxConcurrentRuns` → 503 + `Retry-After`;停机中 `POST /run`、`POST /tasks` → 503。
662
727
 
728
+ #### 本地怎么调(可直接复制的命令)
729
+
730
+ ⚠️ 先认下这条,否则会照着别的框架的经验找错东西:**没有「一个业务一个 URL」的接口层**。
731
+ HTTP 面就上面那几条**固定**端点 —— 加一个 `@Tool` 不会多出一条路,**调哪个能力由模型决定,
732
+ 不在 URL 里**(这是「换宿主不换语义」的另一半:换 HTTP / gRPC / MCP,能力代码一行不动)。
733
+ ⇒ 要「一个能力一个接口」的形态,走下面的 ④;要常规联调,走 ①②③。
734
+
735
+ | # | 想干什么 | 怎么做 |
736
+ |---|---|---|
737
+ | ① | **不起服务**,最快跑一次 | `npm run start:batch -- "你的问题"`(脚手架的 `batch.ts`:只跑一轮、打印 `finalText`、失败置非零退出码) |
738
+ | ② | 起了服务后用 curl 调 | 见下面的命令块 |
739
+ | ③ | 带调用树可视化地调 | `agentia dev` —— 终端打出 `Inspector: http://127.0.0.1:<随机端口>/?t=<token>`;面板里选能力 / 工作目录、输 prompt,右栏实时调用树,改代码自动重启 |
740
+ | ④ | **单挑某一个工具**(不让模型决定) | `createMcpServer(app, { transport: 'stdio' })` ⇒ 每个 `@Tool` 变成一个标准 MCP tool,用 MCP inspector 或 `tools/call` 直接调(见 §6.5「MCP 反向桥」) |
741
+
742
+ ```bash
743
+ curl -s localhost:3000/healthz # 先确认活着(不鉴权)
744
+ curl -s localhost:3000/run \
745
+ -H 'content-type: application/json' \
746
+ -d '{"prompt":"介绍一下你自己"}' # body 也收裸字符串 "..." 与 messages 数组
747
+ curl -sN localhost:3000/run \
748
+ -H 'content-type: application/json' \
749
+ -H 'Accept: text/event-stream' -d '"你的问题"' # -N 关掉 curl 缓冲 ⇒ 逐帧滚动
750
+ curl -s localhost:3000/tasks \
751
+ -H 'content-type: application/json' \
752
+ -d '{"input":"你的问题"}' # → 202 TaskRecord(拿 id 去 GET /tasks/:id 轮询)
753
+ ```
754
+
755
+ ⚠️ **两个别只看 curl 退出码的判据**:
756
+ ① `POST /run` **失败也回 200** —— 硬失败写在响应体的 `status: "failed"` + `error` 字段里
757
+ (`rethrow:false` 语义:不用 HTTP 错误码表达失败)⇒ 脚本里要判 `status`,不是判 `$?`;
758
+ ② SSE 那条要加 `-N`,否则 curl 自己缓冲着,看起来像「服务没吐东西」。
759
+
663
760
  **换 model client 的缝**:HTTP 宿主**不持有 client** —— 同步 `/run` 走的是 `app.run(messages, opts)`,
664
761
  而 `AppCallable` 就是 `{ name, run }`。所以要换 provider(OpenAI 兼容端点 / 自建 client),
665
762
  **包一层**把 `client` 补进 `opts` 即可:
@@ -671,7 +768,7 @@ const handler = createHttpHandler(callable, { runner });
671
768
 
672
769
  异步侧更直接:`AsyncRunner` 的构造选项就有 `client`。完整可跑写法见仓库 `examples/complete/`
673
770
  (**不随 npm 包发布** —— 包里只有 `dist/`、README、LICENSE 与本说明):
674
- <https://github.com/retrychx/agentia/tree/main/examples/complete>
771
+ <https://github.com/migoric/agentia/tree/main/examples/complete>
675
772
 
676
773
  #### `createHttpHandler(app, opts?: HttpHandlerOptions)`
677
774
 
@@ -695,21 +792,43 @@ const handler = createHttpHandler(callable, { runner });
695
792
  `abort` 收尾的,不是排空的;只关掉**旁观者长连**(`GET /tasks/:id/stream`)⇒ 不损失任何工作,
696
793
  不影响这个布尔。宿主的 SIGTERM 决策(退出 / 再等)就依赖它。
697
794
  **框架不订阅信号** —— `process.on('SIGTERM', () => handler.drain())` 是宿主的事(同「框架不读 env」)。
795
+ 不想自己写那 ~20 行停机样板就用 `serve()` + `gracefulShutdown()`(2026-10-22 ref-serve-graceful-shutdown):它们把
796
+ 「起监听 / 收连接 / 二次信号 / 停完回调」收进实现,但仍要**宿主显式调用、显式传 `signals`**
797
+ —— 不传就一个信号都不订阅。
698
798
  - **`handler.runner`** —— 内部 `AsyncRunner`,需要时手动控制(`resumePending` / `awaitTask` / `list`)。
699
799
 
700
800
  ```ts
801
+ import {
802
+ createHttpHandler,
803
+ gracefulShutdown,
804
+ serve,
805
+ HttpException,
806
+ } from '@migor/agentia';
807
+
701
808
  const handler = createHttpHandler(app, {
702
809
  // 只给缝:token/JWT/签名策略由你的宿主或反代实现
703
810
  authenticate: (req) => {
704
811
  if (req.headers['x-api-key'] !== expected) throw new HttpException(401, { error: '无效凭据' });
705
812
  },
706
813
  });
707
- http.createServer(handler).listen(3000);
708
814
 
709
- process.on('SIGTERM', async () => {
710
- const clean = await handler.drain({ timeoutMs: 15_000 });
711
- console.log(clean ? '已排空' : '超时收口,剩余任务下次启动续跑');
712
- process.exit(0);
815
+ // `serve` = createServer + listen + 等真的在听;`port` 是**实际**端口(传 0 时由 OS 分配)。
816
+ // 端口冲突 / 权限不足直接 reject —— boot 阶段静默起不来比崩更难查。
817
+ serve(handler, { port: 3000 }).then(({ server }) => {
818
+ gracefulShutdown({
819
+ server,
820
+ drain: () => handler.drain({ timeoutMs: 15_000 }),
821
+ // 不传 = 一个信号都不订阅(框架不做进程级决策);传了即宿主显式认领
822
+ signals: ['SIGTERM', 'SIGINT'],
823
+ timeoutMs: 15_000,
824
+ // 第二次信号:本原语**不吞** —— 给了这个钩子就交给你,没给就摘掉监听让 Node 默认行为接管
825
+ onSecondSignal: () => process.exit(1),
826
+ // 停机完成(`clean` = 排空且连接关干净)。本原语自己不 exit —— 退出码是宿主的编排
827
+ onShutdown: (clean) => {
828
+ console.log(clean ? '已排空' : '超时收口,剩余任务下次启动续跑');
829
+ process.exit(clean ? 0 : 1);
830
+ },
831
+ });
713
832
  });
714
833
  ```
715
834
 
@@ -825,12 +944,12 @@ trace 出去之后能干什么:指标、调用树面板、调优报告、生
825
944
 
826
945
  | API | 说明 |
827
946
  |---|---|
828
- | `TraceSink` | `{ export(trace) }`,run 收尾(成功/失败)都投递,抛错被吞(吞之前落一条 `console.warn`,文案含「trace sink」) |
947
+ | `TraceSink` | `{ export(trace) }`,run 收尾(成功/失败)都投递。抛错只告警、不影响 run;单个 sink 默认最多等待 10 秒,超时同样告警并放弃等待(**不取消底层导出**),后续 sink 仍照常接收。run 宿主与 MCP 反向桥共用这套口径 |
829
948
  | `registerDefaultTraceSink` | 注册全局默认 sink(构造期快照合并) |
830
949
  | `TraceRecorder` | 内存 recorder(一次 run 一个);`addLink(spanId, { traceId, spanId? })` 记一条跨 trace 链路(见 §6「跨进程关联」) |
831
950
  | `parseTraceparent` | 解析 W3C `traceparent` 头 → `{ traceId, spanId? }`;**非法 / 缺头一律返回 `undefined`**(不抛、不打 400)—— 结果直接交给 `traceContext` 选项,见 §6「跨进程关联」 |
832
951
  | `createOtlpExporter` | OTLP/JSON 导出,零依赖;选项见下面「`OtlpExporterOptions`」表 |
833
- | `jsonlTraceSink` | JSONL 文件 sink:`jsonlTraceSink({ path })` → `TraceSink`,一行一条裸 Trace 追加落盘(父目录自动创建、追加不覆盖)—— **`agentia report` / `diff` / `harvest` / `export` 的输入格式**,见 §6「调优报告」 |
952
+ | `jsonlTraceSink` | JSONL 文件 sink:`jsonlTraceSink({ path })` → `TraceSink`,一行一条裸 Trace 追加落盘(父目录自动创建、追加不覆盖)—— **`agentia report` / `diff` / `harvest` / `export` / `view` 的输入格式**,见 §6「调优报告」。⚠️ **同一路径进程内幂等**(两次调用返回同一个 sink):两条 sink 对口一个文件会让一次 run 落两行同 traceId,而下面的命令按「一行 = 一次 run」计数 ⇒ 一次 run 被数两次(不报错,比不落盘更难发现)。所以「应用级 `sinks` 与 `registerDefaultTraceSink` 都往 `.agentia/traces.jsonl` 写」是安全的 |
834
953
  | `TraceRecordEvent` | **增量记账事件**(`onTraceEvent` 的回调参数):`span.begin` / `span.end` / `span.event` / `span.attribute` / `span.link`,每条带单调 `seq`。载荷是**增量 + 此刻的拷贝**(`span.begin` 只给初始形状,属性/事件/链路各走自己的类型);按 `seq` 升序折回必须**逐字等于**收尾时的 trace |
835
954
  | `metricsSink` | 指标累加器(Prometheus 文本 / OTLP metrics),满足 `TraceSink` 即接入 —— 见 §6「指标」 |
836
955
  | `buildRunReport` | 从一条 trace 生成**调优报告**(能力/模型的耗时、token、成本、错误率排行)—— 见 §6「调优报告」 |
@@ -1108,14 +1227,15 @@ calls / err / 耗时照记(那是它自己这次调用的真账)。
1108
1227
  > CLI 报告的聚合口径与 `agentia dev` 面板的能力排行同源(同一份 `@migor/trace-view` 实现)。
1109
1228
 
1110
1229
  那个 jsonl 从哪来 —— 框架内置了文件 sink,一行接入(零依赖)。它产出的格式就是
1111
- **CLI 四件套的输入**:`agentia report` / `agentia diff` / `agentia harvest` / `agentia export`
1112
- 都吃这个文件(一行一个 JSON,裸 Trace):
1230
+ **CLI 五件套的输入**:`agentia report` / `agentia diff` / `agentia harvest` / `agentia export` /
1231
+ `agentia view` 都吃这个文件(一行一个 JSON,裸 Trace):
1113
1232
 
1114
1233
  ```ts
1115
1234
  import { createApp, jsonlTraceSink } from '@migor/agentia';
1116
1235
 
1117
1236
  const app = await createApp({ /* … */ sinks: [jsonlTraceSink({ path: 'trace.jsonl' })] });
1118
- // 之后:agentia report trace.jsonl / agentia diff a.jsonl b.jsonl / agentia harvest trace.jsonl / agentia export trace.jsonl
1237
+ // 之后:agentia report trace.jsonl / agentia diff a.jsonl b.jsonl / agentia harvest trace.jsonl /
1238
+ // agentia export trace.jsonl / agentia view trace.jsonl --open
1119
1239
  ```
1120
1240
 
1121
1241
  父目录不存在会自动递归创建;**追加不覆盖**(多跑几次就累积多行);写失败抛给 `flushSinks`
@@ -1415,7 +1535,10 @@ agentia harvest trace.jsonl --out evals/harvested.ts --force # 覆盖已存在
1415
1535
  - 产物是**可粘贴进 eval 文件的用例字面量**:`client: scriptedClient([...])` 按 trace 的主循环 llm.turn 逐回合重建,`expect` 预填「主循环工具序列」的轨迹断言(文件顶部附跑法注释)。
1416
1536
  - `--out` 指向已存在的文件时**默认拒绝覆盖**(产物是要人工核对的脚手架,重跑一次就抹掉你改过的断言与 input);要覆盖显式加 `--force`。
1417
1537
  - ⚠️ **脚手架不是成品,人工核对后再进 CI**:
1418
- - **trace 不记 assistant 文本**(llm.turn 只记 usage/事件),脚本里的 text 块是占位 `'[harvest] assistant 文本未入 trace'`;
1538
+ - **assistant 文本要看 run 开没开 `traceContent: 'full'`**(§4 的 opt-in 开关):开了就取
1539
+ llm.turn 的 `output.text` 真值;没开则脚本**只含工具调用**,终端回合的 text 是占位
1540
+ `'[harvest] assistant 文本未入 trace'`(纯 tool_use 回合**不补占位** —— 那会变成「模型
1541
+ 说过这句话」的假事实)。骨架头注会写明这一次是哪一种,不会让你自己去猜;
1419
1542
  - 只重建**直属 run 根**的主循环回合 —— 子 agent 的嵌套回合不走主循环脚本(要覆盖子 agent 请单独写 eval);
1420
1543
  - 预填的 `expect` 是从原 trace **抄录的实际轨迹** —— 发生过 ≠ 应该发生;
1421
1544
  - `EvalCase` 没有 `expect` 字段,粘贴时把断言搬进 `defineEval({ expect })`(脚手架注释会教)。
@@ -1796,7 +1919,7 @@ const callable = {
1796
1919
  | 观测失败被吞 | sink 抛错不影响 run(观测是辅助动作);但吞之前落一条 `console.warn`(含「trace sink」字样)—— sink 天天挂不再零信号。同理记忆水合/回写失败也不击穿 run |
1797
1920
  | 框架不自动读 .env | 除 `AGENTIA_MODEL`(缺省模型覆盖)与 `OPENAI_API_KEY`(OpenAI 适配器)外,框架自己不去翻环境变量,也不读 `.env`;要读就在启动代码里调 `loadEnvFile()`(脚手架已内置那行),**真实环境变量优先**于文件 |
1798
1921
  | 鉴权只是缝 | 框架**不实现** token / JWT / 签名策略,也不碰凭据 env —— `authenticate` 只承诺「拦在入口、读 body 之前」;策略是宿主或反代的事 |
1799
- | 运行时是 Node | 按 Node ≥ 18 设计与测试(`engines` 写明;CI 覆盖 18 / 20 / 24 —— `import-floor` 矩阵跑下限、其余 job 跟当前 LTS);**未对 Deno / edge 做验证**。`SqliteTaskStore` 需 Node ≥ 22.5(`node:sqlite`),未提供时构造期抛可读报错 |
1922
+ | 运行时:Node 承诺,Bun / Deno 实测 | 按 Node ≥ 18 设计与测试(`engines` 写明;CI 覆盖 18 / 20 / 24 —— `import-floor` 矩阵跑下限、其余 job 跟当前 LTS);Bun 1.4 / Deno 2.9 已实测可跑(四步判定 + 各宿主最小代码见 `docs/frameworks.md`),但**不在 `engines` 承诺内**;**edge 未验证**。`SqliteTaskStore` 需 Node ≥ 22.5(`node:sqlite`),未提供时构造期抛可读报错 |
1800
1923
  | 停机不由框架触发 | 框架给 `drain()` 但**不订阅** `SIGTERM`/`SIGINT`(不做进程级决策);信号处理是宿主的 |
1801
1924
  | 停机可能切断 SSE | `drain()` 收口时会强制关闭仍开着的 SSE 流,`/run` 的流被收口时其 run 以 `stopReason='aborted'` 收尾(客户端应把断流当作可重试)。**没有 `timeoutMs` 时也收口**(否则等待没有终点,见上);只关旁观者长连(`/tasks/:id/stream`)**不损失工作**,那种收口不影响 `drain()` 的返回值 |
1802
1925
  | 多进程共库:续跑认领靠**租约**,不靠时间(2026-09-28) | `resumePending({ staleAfterMs })` 的 `staleAfterMs` **不是**租约而是**兜底启发式**。`> 0` 时按两档判他进程的记录:① `ownerId` 里的主机名是本机 ⇒ **问那个 pid 还在不在**(`process.kill(pid, 0)`)——**在的绝不抢**(不管记录多老)、**不在的立刻可抢**(崩溃孤儿不等保鲜期);② **判不了**(异主机 / 升级前写下的旧格式 `ownerId` / 自定义串)⇒ 才用 `staleAfterMs`(「记录看起来还新」)。缺省 `0` = 不问他进程,与升级前逐字一致 |
@@ -0,0 +1,8 @@
1
+ import type { Trace, TraceSink } from './trace.js';
2
+ /** 单个 sink 的默认等待上限;超时只放弃等待,不取消底层导出。 */
3
+ export declare const TRACE_SINK_TIMEOUT_MS = 10000;
4
+ /**
5
+ * 顺序投递 trace。抛错与超时都只告警,不击穿业务;后续 sink 仍照常接收。
6
+ * module 级 export 供 runtime / MCP 反向桥共用,刻意不进公共导出面。
7
+ */
8
+ export declare function flushTraceSinks(sinks: readonly TraceSink[] | undefined, trace: Trace, timeoutMs?: number): Promise<void>;
@@ -0,0 +1,24 @@
1
+ import { TIMED_OUT, withTimeout } from './timeout.js';
2
+ /** 单个 sink 的默认等待上限;超时只放弃等待,不取消底层导出。 */
3
+ export const TRACE_SINK_TIMEOUT_MS = 10_000;
4
+ /**
5
+ * 顺序投递 trace。抛错与超时都只告警,不击穿业务;后续 sink 仍照常接收。
6
+ * module 级 export 供 runtime / MCP 反向桥共用,刻意不进公共导出面。
7
+ */
8
+ export async function flushTraceSinks(sinks, trace, timeoutMs = TRACE_SINK_TIMEOUT_MS) {
9
+ if (!sinks || sinks.length === 0)
10
+ return;
11
+ for (const sink of sinks) {
12
+ try {
13
+ const delivery = Promise.resolve().then(() => sink.export(trace));
14
+ const outcome = await withTimeout(delivery, timeoutMs);
15
+ if (outcome === TIMED_OUT) {
16
+ console.warn(`[agentia] trace sink 投递超时(${timeoutMs}ms),已放弃等待(不取消底层导出)`);
17
+ }
18
+ }
19
+ catch (e) {
20
+ console.warn('[agentia] trace sink 投递失败:', e instanceof Error ? e.message : e);
21
+ }
22
+ }
23
+ }
24
+ //# sourceMappingURL=trace-sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-sink.js","sourceRoot":"","sources":["../../src/core/trace-sink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAuC,EACvC,KAAY,EACZ,SAAS,GAAG,qBAAqB;IAEjC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CACV,6BAA6B,SAAS,oBAAoB,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -210,7 +210,8 @@ export declare function attachScore(trace: Trace, score: Score): void;
210
210
  export declare function capabilityKindOf(span: Span): string;
211
211
  /**
212
212
  * trace 出口:run 收尾(成功或失败)后,框架把【完整 Trace】交给每个 sink。
213
- * sink 抛错由框架吞掉(吞之前落一条 console.warn 告警),绝不影响 run 结果(与 memory 回写同款防护)。
213
+ * sink 抛错或永久挂起都不影响 run 结果:抛错告警,超过默认 10 秒则告警并放弃等待;
214
+ * 放弃不等于取消底层导出,后续 sink 仍照常接收。
214
215
  * 形状与 OtlpExporter 一致 —— createOtlpExporter() 的返回值天然满足本接口。
215
216
  */
216
217
  export interface TraceSink {
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/core/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/core/trace.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export interface AgentLoopResult<T = unknown> {
26
26
  error: SpanError | undefined;
27
27
  /** 本轮循环自己发起的模型往返次数 */
28
28
  iterations: number;
29
- /** submit_result 校验通过的结构化结果;未提交则为 undefined(类型由 resultSchema 推导) */
29
+ /** submit_result 校验通过的结构化结果;声明 schema 却未提交会以 result_missing 失败,未声明则为 undefined */
30
30
  typed: T | undefined;
31
31
  /**
32
32
  * HITL 挂起(stopReason === 'suspended')时的完整消息历史
@@ -203,6 +203,14 @@ async function agentLoop(args) {
203
203
  finalText = resolution.finalText;
204
204
  if (resolution.error)
205
205
  error = resolution.error;
206
+ if (args.resultSchema !== undefined && !ctx.submitted && isSuccessStopReason(stopReason)) {
207
+ stopReason = 'result_missing';
208
+ error = {
209
+ type: 'result_missing',
210
+ message: '已声明 resultSchema,但模型自然收尾时仍未提交合法结构化结果',
211
+ retryable: false,
212
+ };
213
+ }
206
214
  finished = true;
207
215
  break;
208
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ import type { TraceLimits } from './tracer.js';
35
35
  * name `mcp.tools/call`)下挂一个 capability span(kind `capability`、name = 工具名 ——
36
36
  * metrics 的 `capabilityKindOf` 把它归为 `capability:<name>` 标签,自动进能力指标),
37
37
  * 并按 `tool-events.ts` 的口径记同名 `tool.input` / `tool.output` 事件(账目形状与引擎
38
- * 一致);收尾 snapshot 投递 `opts.sinks`(sink 抛错吞掉 + `console.warn`,观测不击穿业务)。
38
+ * 一致);收尾 snapshot 投递 `opts.sinks`(抛错或超时只告警,观测不击穿业务)。
39
39
  * 入站链路(SEP-414):`params._meta.traceparent` 合法时记成 run 根的一条 `links`
40
40
  * (与 HTTP 宿主的 `traceparent` 头同款缝合;缺失 / 畸形静默当作孤立根)。
41
41
  * `tools/list` / `initialize` 不建 trace。
@@ -68,7 +68,7 @@ export interface McpServerOptions {
68
68
  * 才构造,不在 `createMcpServer` 时构造(纯工具菜单的 server 不该要求 API key 在场)。
69
69
  */
70
70
  client?: ModelClient;
71
- /** trace 出口:每次 `tools/call` 收尾投递(抛错被吞,观测不击穿业务) */
71
+ /** trace 出口:每次 `tools/call` 收尾投递(抛错或超时只告警,观测不击穿业务) */
72
72
  sinks?: TraceSink[];
73
73
  /**
74
74
  * 每次 `tools/call` 那棵 trace 的事件数闸(语义与引擎 `traceLimits` **同款**:
@@ -2,6 +2,7 @@ import { randomUUID } from 'node:crypto';
2
2
  import { stringifySafe } from '../core/json.js';
3
3
  import { validateJsonSchema } from '../core/schema.js';
4
4
  import { TIMED_OUT, isTimeoutError, withTimeout } from '../core/timeout.js';
5
+ import { flushTraceSinks } from '../core/trace-sink.js';
5
6
  import { TOOL_INPUT_EVENT, TOOL_OUTPUT_EVENT, parseTraceparent } from '../core/trace.js';
6
7
  import { DEFAULT_PROTOCOL_VERSION } from '../integrations/mcp.js';
7
8
  import { createAnthropicClient } from '../integrations/anthropic.js';
@@ -123,15 +124,8 @@ link) {
123
124
  ...(spanError !== undefined ? { error: spanError } : {}),
124
125
  });
125
126
  const trace = recorder.snapshot(ok ? 'ok' : 'error');
126
- // 观测不击穿业务:sink 抛错吞掉 + console.warn(与 runtime 的 flushSinks 同款文案)
127
- for (const sink of sinks) {
128
- try {
129
- await sink.export(trace);
130
- }
131
- catch (e) {
132
- console.warn('[agentia] trace sink 投递失败:', e instanceof Error ? e.message : e);
133
- }
134
- }
127
+ // 抛错或永久挂起都不击穿业务;与 runtime 共用同一份投递与超时口径
128
+ await flushTraceSinks(sinks, trace);
135
129
  // 结果映射:抛错 → 协议层成功 + isError(MCP 惯例;正向桥那头正好把 isError 转回抛错,
136
130
  // 方向对称);string 原样进 text;其他 JSON 化进 text
137
131
  if (!ok)
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/engine/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/engine/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ export interface ModelFallbackLink {
29
29
  export type AgentStopReason =
30
30
  /** 模型自然结束(含 stop_sequence:命中 stop 序列同样是正常收尾) */
31
31
  'end_turn' | 'stop_sequence' | 'max_tokens' | 'refusal' | 'pause_turn' | 'max_iterations'
32
+ /** 声明了 resultSchema,但模型自然收尾时仍未提交合法结构化结果 */
33
+ | 'result_missing'
32
34
  /** 调用方主动取消(AbortSignal):run 未跑完,按失败收尾 */
33
35
  | 'aborted'
34
36
  /**
@@ -166,7 +168,7 @@ export interface RunAgentOptions<S extends JsonSchema = JsonSchema> {
166
168
  /**
167
169
  * 结构化结果 schema(R2):给出后 engine 追加隐藏工具 submit_result,
168
170
  * 模型调用它提交符合 schema 的最终结果,校验通过即结束循环并写入 AgentRunResult.typed;
169
- * 模型始终未提交则 typed 为 undefined(行为与不设时一致)。
171
+ * 模型自然收尾却始终未提交则以 stopReason='result_missing' 失败,typed 为 undefined。
170
172
  *
171
173
  * 泛型 S:传 `fromZod<T>(...)`(TypedSchema<T>)时,返回值 `typed` 自动是 `T | undefined`;
172
174
  * 传裸 JsonSchema 时回落 `unknown`。
@@ -291,7 +293,8 @@ export interface AgentRunResult<T = unknown> {
291
293
  /** 非正常收尾时的结构化原因;正常收尾为 undefined(**字段在场**,见 RunMeta 的说明) */
292
294
  error: SpanError | undefined;
293
295
  /**
294
- * resultSchema 校验通过的结构化结果;模型没提交(或未设 resultSchema)则为 undefined。
296
+ * resultSchema 校验通过的结构化结果;未设 resultSchema 时为 undefined。
297
+ * 已设 schema 却没提交会以 result_missing 失败,此时同样为 undefined。
295
298
  * 类型由 resultSchema 推导(见 RunAgentOptions.resultSchema 的泛型说明)。
296
299
  */
297
300
  typed: T | undefined;
@@ -26,6 +26,7 @@ const SUCCESS_STOP_REASON = {
26
26
  refusal: false,
27
27
  pause_turn: false,
28
28
  max_iterations: false,
29
+ result_missing: false,
29
30
  aborted: false,
30
31
  budget_exceeded: false, // 护栏拦下的,不是正常收尾
31
32
  tool_use_no_blocks: false,
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,mBAAmB,GAAqC;IAC5D,aAAa;IACb,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI,EAAE,oBAAoB;IACzC,kDAAkD;IAClD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,KAAK,EAAE,eAAe;IACvC,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;IAC1B,KAAK,EAAE,KAAK;IACZ,mBAAmB;IACnB,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"AAoEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,mBAAmB,GAAqC;IAC5D,aAAa;IACb,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI,EAAE,oBAAoB;IACzC,kDAAkD;IAClD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,KAAK,EAAE,eAAe;IACvC,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;IAC1B,KAAK,EAAE,KAAK;IACZ,mBAAmB;IACnB,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -11,7 +11,10 @@ import type { Trace } from '../core/trace.js';
11
11
  * ⚠️ module 级 export,刻意不进 src/index.ts 公共面(见 AGENTS.md「内部工具不进公共面」)。
12
12
  *
13
13
  * 已知边界(生成物顶部注释也会如实写明,不靠用的人自己发现):
14
- * - trace 不记 assistant 文本(llm.turn 只记 usage/事件),脚本里的 text 块是占位;
14
+ * - assistant 文本**要看 run 开没开 `traceContent: 'full'`**(R8-P3a,opt-in):开了就取
15
+ * llm.turn 的 `output.text` 真值,没开则只含工具调用、终端回合的 text 是占位
16
+ * (早先这里写死「trace 不记文本」—— 开关开了照样给占位,等于让付了体积与脱敏代价的
17
+ * 用户拿到跑不起来的用例;2026-10-21 修);
15
18
  * - 只重建**直属 run 根**的主循环回合 —— 子 agent 的嵌套回合不走主循环脚本
16
19
  * (scriptedClient 驱动的是主 agent 的模型往返);
17
20
  * - `expect` 是从该 trace **抄录的实际轨迹**:发生过 ≠ 应该发生,人工核对后再进 CI;