@migor/agentia 0.0.1 → 0.1.0

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 (66) hide show
  1. package/README.md +61 -6
  2. package/dist/container/container.d.ts +1 -1
  3. package/dist/core/json.d.ts +2 -0
  4. package/dist/core/json.js +12 -0
  5. package/dist/core/json.js.map +1 -0
  6. package/dist/core/schema.d.ts +2 -1
  7. package/dist/core/schema.js +11 -9
  8. package/dist/core/schema.js.map +1 -1
  9. package/dist/core/tool.d.ts +21 -3
  10. package/dist/engine/context.d.ts +1 -1
  11. package/dist/engine/context.js +1 -1
  12. package/dist/engine/loop.d.ts +4 -2
  13. package/dist/engine/loop.js +64 -15
  14. package/dist/engine/loop.js.map +1 -1
  15. package/dist/engine/types.d.ts +19 -5
  16. package/dist/index.d.ts +13 -2
  17. package/dist/index.js +16 -7
  18. package/dist/index.js.map +1 -1
  19. package/dist/run/async.d.ts +2 -1
  20. package/dist/run/async.js.map +1 -1
  21. package/dist/run/context.js +1 -2
  22. package/dist/run/context.js.map +1 -1
  23. package/dist/run/http.d.ts +47 -0
  24. package/dist/run/http.js +119 -0
  25. package/dist/run/http.js.map +1 -0
  26. package/dist/run/memory.d.ts +18 -0
  27. package/dist/run/memory.js +18 -0
  28. package/dist/run/memory.js.map +1 -0
  29. package/dist/run/openai.d.ts +24 -0
  30. package/dist/run/openai.js +181 -0
  31. package/dist/run/openai.js.map +1 -0
  32. package/dist/run/otlp.d.ts +26 -0
  33. package/dist/run/otlp.js +105 -0
  34. package/dist/run/otlp.js.map +1 -0
  35. package/dist/run/run.d.ts +10 -0
  36. package/dist/run/run.js +31 -0
  37. package/dist/run/run.js.map +1 -1
  38. package/dist/run/spec.d.ts +2 -1
  39. package/dist/run/spec.js.map +1 -1
  40. package/dist/run/sqliteStore.d.ts +24 -0
  41. package/dist/run/sqliteStore.js +60 -0
  42. package/dist/run/sqliteStore.js.map +1 -0
  43. package/dist/toolkit/collect.d.ts +23 -0
  44. package/dist/toolkit/collect.js +43 -0
  45. package/dist/toolkit/collect.js.map +1 -0
  46. package/dist/toolkit/discover.js +7 -1
  47. package/dist/toolkit/discover.js.map +1 -1
  48. package/dist/toolkit/middleware.d.ts +27 -0
  49. package/dist/toolkit/middleware.js +15 -0
  50. package/dist/toolkit/middleware.js.map +1 -0
  51. package/dist/toolkit/module.d.ts +18 -0
  52. package/dist/toolkit/module.js +34 -1
  53. package/dist/toolkit/module.js.map +1 -1
  54. package/dist/toolkit/prompt.js +6 -20
  55. package/dist/toolkit/prompt.js.map +1 -1
  56. package/dist/toolkit/skill.js +8 -29
  57. package/dist/toolkit/skill.js.map +1 -1
  58. package/dist/toolkit/subagent.js +7 -27
  59. package/dist/toolkit/subagent.js.map +1 -1
  60. package/dist/toolkit/tool.d.ts +1 -1
  61. package/dist/toolkit/tool.js +3 -25
  62. package/dist/toolkit/tool.js.map +1 -1
  63. package/dist/toolkit/zod.d.ts +26 -0
  64. package/dist/toolkit/zod.js +45 -0
  65. package/dist/toolkit/zod.js.map +1 -0
  66. package/package.json +28 -18
package/README.md CHANGED
@@ -141,21 +141,77 @@ const app = createApp({
141
141
  });
142
142
  ```
143
143
 
144
+ ## 中间件
145
+
146
+ 挂在每一次单元调用前后的洋葱链——鉴权、限流、缓存、审计都走这里:
147
+
148
+ ```ts
149
+ const app = createApp({
150
+ // ...
151
+ middleware: [
152
+ async (call, next) => {
153
+ if (call.unit.name === 'danger_op' && !RunContext.current()?.get('isAdmin')) {
154
+ return 'forbidden'; // 短路,不调 next 即拦截
155
+ }
156
+ return next(); // next(newInput) 还可改写入参
157
+ },
158
+ ],
159
+ });
160
+ ```
161
+
162
+ ## 结构化结果
163
+
164
+ ```ts
165
+ const { result } = await app.run(messages, {
166
+ resultSchema: {
167
+ type: 'object',
168
+ properties: { pass: { type: 'boolean' }, reason: { type: 'string' } },
169
+ required: ['pass', 'reason'],
170
+ additionalProperties: false,
171
+ },
172
+ });
173
+ console.log(result.typed); // 校验过的结构化结果,不再从文本里猜 JSON
174
+ // schema 也可来自 zod(peer 可选):fromZod(z.toJSONSchema(S), S)
175
+ ```
176
+
177
+ ## 宿主、多模型与记忆
178
+
179
+ ```ts
180
+ // HTTP 宿主:POST /run(同步) POST /tasks(异步) GET /tasks/:id(轮询)
181
+ createServer(createHttpHandler(app, { runner })).listen(8080);
182
+
183
+ // OpenAI 兼容端点(DeepSeek 等)+ 跨 run 记忆
184
+ const { result } = await app.run(messages, {
185
+ client: createOpenAIClient({ baseURL: 'https://api.deepseek.com' }),
186
+ model: 'deepseek-chat',
187
+ memory: { store: new InMemoryMemoryStore(), keys: ['profile'] },
188
+ });
189
+
190
+ // trace 导出到 OTLP 收集器
191
+ await createOtlpExporter({ endpoint: 'http://localhost:4318' }).export(result.trace);
192
+ ```
193
+
144
194
  ## 常用 API
145
195
 
146
196
  | 导出 | 用途 |
147
197
  |---|---|
148
198
  | `createApp` / `discoverProviders` | 装配应用 / 扫描单元目录 |
199
+ | `defineModule` | 能力包(providers + middleware 打包分发) |
149
200
  | `Tool` / `Skill` / `SubAgent` / `Prompt` | 四类单元装饰器 |
201
+ | `UnitMiddleware`(`middleware` 选项) | 单元调用拦截器链 |
150
202
  | `asset` | 读单元文件夹内的文本资产 |
151
203
  | `SystemPrompt` | 拼装系统提示(自动打缓存 breakpoint) |
152
204
  | `RunContext.current()` | 取本次 run 的 blackboard / runId |
153
- | `AsyncRunner` / `Scheduler` / `runSync` | 异步任务 / 定时 / 同步触发 |
154
- | `FileTaskStore` / `InMemoryTaskStore` | 任务记录存储(重启续跑用 File) |
205
+ | `AsyncRunner` / `Scheduler` / `runSync` / `createHttpHandler` | 异步 / 定时 / 同步 / HTTP 触发 |
206
+ | `FileTaskStore` / `SqliteTaskStore` / `InMemoryTaskStore` | 任务记录存储 |
155
207
  | `createBudgetPolicy` | 长上下文预算护栏 |
208
+ | `createOpenAIClient` | OpenAI 兼容端点适配(多模型) |
209
+ | `InMemoryMemoryStore`(`memory` 选项) | 跨 run 记忆水合/回写 |
210
+ | `createOtlpExporter` | trace 导出 OTLP |
211
+ | `fromZod` | zod schema 接入(peer 可选) |
156
212
  | `runAgent` / `executeRun` | 裸引擎入口(不走装配) |
157
213
 
158
- 完整导出见 [`src/index.ts`](src/index.ts),设计规格见 [`docs/spec.md`](docs/spec.md)。
214
+ 完整导出见 [`src/index.ts`](src/index.ts),设计规格见 [`docs/spec.md`](docs/spec.md),roadmap 见 [`docs/roadmap.md`](docs/roadmap.md),官网见 [agentia-web.pages.dev](https://agentia-web.pages.dev)(含[在线 Playground](https://agentia-web.pages.dev/playground.html) 与[文档](https://agentia-web.pages.dev/docs.html))。
159
215
 
160
216
  ## 本仓库脚本
161
217
 
@@ -163,9 +219,8 @@ const app = createApp({
163
219
  npm install
164
220
  npm run build # 编译框架(dist/)
165
221
  npm run typecheck # 类型检查
166
- npm run smoke:turn7 # 端到端:CLI 脚手架 → 目录发现/注册表装配 → mock run
167
- npm run live # 真机:runAgent + 工具往返(需 API key)
168
- npm run live:skill # 真机:@Skill ctx.llm()(需 API key)
222
+ npm test # 单元测试(node:test)
223
+ npm run e2e # 端到端:CLI 脚手架 → 目录发现/注册表装配 → mock run
169
224
  ```
170
225
 
171
226
  > 注:`npm run dev`(tsx)前需先 `npm approve-scripts` 批准 esbuild/tsx 的 postinstall。
@@ -2,7 +2,7 @@
2
2
  * Agentia —— 最小显式 DI 容器(spec §4/§10:标准装饰器 + 显式 DI,不用
3
3
  * experimentalDecorators/emitDecoratorMetadata/reflect-metadata)。
4
4
  *
5
- * NestJS 风格 provider 三态:useValue / useClass / useFactory(+deps)。
5
+ * Provider 三态:useValue / useClass / useFactory(+deps)。
6
6
  * 依赖以字符串 token 显式声明,靠工厂解析期惰性求值;无构造器参数反射。
7
7
  * 容器按 app 粒度单例缓存;run 作用域的黑板/上下文不经过 DI,而由
8
8
  * RunContext(AsyncLocalStorage) 在 executeRun 内注入(见 run/context.ts)。
@@ -0,0 +1,2 @@
1
+ /** 任意值 → 字符串:string 原样,其余 JSON.stringify,循环引用等异常回落 String()。 */
2
+ export declare function stringifySafe(x: unknown): string;
@@ -0,0 +1,12 @@
1
+ /** 任意值 → 字符串:string 原样,其余 JSON.stringify,循环引用等异常回落 String()。 */
2
+ export function stringifySafe(x) {
3
+ if (typeof x === 'string')
4
+ return x;
5
+ try {
6
+ return JSON.stringify(x) ?? String(x);
7
+ }
8
+ catch {
9
+ return String(x);
10
+ }
11
+ }
12
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/core/json.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAAC,CAAU;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { JsonSchema } from './tool.js';
2
2
  /**
3
- * Agentia —— 最小 JSON Schema 校验子集(spec:v1 裸 JSON Schema,不接 zod)。
3
+ * Agentia —— 最小 JSON Schema 校验子集(v1 裸 JSON Schema;zod 为可选外挂,
4
+ * 见 toolkit/zod.ts —— schema 上挂 __zodValidate 时先走它,core 本身不依赖 zod)。
4
5
  *
5
6
  * 用途:engine 在执行 tool.run 前校验模型给出的结构化 input;校验失败直接回
6
7
  * is_error 的 tool_result(错误信息含路径,模型可自我修正),不进方法体。
@@ -1,5 +1,7 @@
1
+ import { stringifySafe } from './json.js';
1
2
  /**
2
- * Agentia —— 最小 JSON Schema 校验子集(spec:v1 裸 JSON Schema,不接 zod)。
3
+ * Agentia —— 最小 JSON Schema 校验子集(v1 裸 JSON Schema;zod 为可选外挂,
4
+ * 见 toolkit/zod.ts —— schema 上挂 __zodValidate 时先走它,core 本身不依赖 zod)。
3
5
  *
4
6
  * 用途:engine 在执行 tool.run 前校验模型给出的结构化 input;校验失败直接回
5
7
  * is_error 的 tool_result(错误信息含路径,模型可自我修正),不进方法体。
@@ -11,6 +13,14 @@
11
13
  * @returns 人类可读的错误描述(含路径);合法返回 null。
12
14
  */
13
15
  export function validateJsonSchema(schema, input) {
16
+ // zod 可选接入(toolkit/zod.ts 的 fromZod 挂的隐藏字段):存在则先走 zod 校验,
17
+ // 失败即回「$.: <首条错误>」(含 zod 路径);通过后再叠加 JSON Schema 子集校验。
18
+ const zv = schema.__zodValidate;
19
+ if (typeof zv === 'function') {
20
+ const err = zv(input);
21
+ if (err)
22
+ return `$.: ${err}`;
23
+ }
14
24
  return check(schema, input, '$');
15
25
  }
16
26
  function check(schema, value, path) {
@@ -90,14 +100,6 @@ function preview(value) {
90
100
  const s = stringifySafe(value);
91
101
  return s.length > 80 ? `${s.slice(0, 80)}…` : s;
92
102
  }
93
- function stringifySafe(x) {
94
- try {
95
- return JSON.stringify(x) ?? String(x);
96
- }
97
- catch {
98
- return String(x);
99
- }
100
- }
101
103
  function deepEqual(a, b) {
102
104
  if (a === b)
103
105
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import type Anthropic from '@anthropic-ai/sdk';
2
2
  import type { SpanError, SpanId, SpanKind, SpanStatus, Trace, Usage } from './trace.js';
3
3
  /**
4
4
  * Agentia —— 工具定义。
5
- * Turn 0:v1 用裸 JSON Schema,不引 zod;装饰器 → schema 在 Turn 2 接入。
6
- * Turn 3:run 执行体可接收第二参 ctx(ToolRunContext),供子 agent/嵌套单元把
5
+ * v1 用裸 JSON Schema,不引 zod。
6
+ * run 执行体可接收第二参 ctx(ToolRunContext),供子 agent/嵌套单元把
7
7
  * 自己的 llm.turn 递归挂进当前 trace(unit span 的父由 engine 给定)。
8
8
  */
9
9
  /** JSON Schema 对象子集,供工具的 input_schema */
@@ -32,6 +32,24 @@ export interface RecorderBackend {
32
32
  setAttribute(id: SpanId, key: string, value: string | number | boolean): void;
33
33
  snapshot(status: SpanStatus): Trace;
34
34
  }
35
+ /**
36
+ * engine 对模型端的最小结构面(R4 多模型):Anthropic SDK 天然满足,
37
+ * 其他 provider(OpenAI 兼容端点等)只需适配出同一形态。
38
+ */
39
+ export interface ModelClient {
40
+ messages: {
41
+ stream(params: {
42
+ model: string;
43
+ max_tokens: number;
44
+ system?: string | Anthropic.TextBlockParam[];
45
+ tools?: Anthropic.Tool[];
46
+ messages: Anthropic.MessageParam[];
47
+ }): {
48
+ on(event: 'text', cb: (delta: string) => void): void;
49
+ finalMessage(): Promise<Anthropic.Message>;
50
+ };
51
+ };
52
+ }
35
53
  /**
36
54
  * engine 在调用每个工具时注入的执行上下文(spec §9.2:当前 span 句柄随调用传播,
37
55
  * 不用全局单例,保证并行工具调用父子关系准确)。
@@ -40,7 +58,7 @@ export interface RecorderBackend {
40
58
  * - client:与主循环同一注入(子 agent 独立循环复用它)。
41
59
  */
42
60
  export interface ToolRunContext {
43
- client: Anthropic;
61
+ client: ModelClient;
44
62
  recorder: RecorderBackend;
45
63
  parentSpanId: SpanId;
46
64
  }
@@ -6,7 +6,7 @@ import type Anthropic from '@anthropic-ai/sdk';
6
6
  * - **context editing**(`trimToolPairs`):清旧 tool_use→tool_result 对,不掉内容、不额外调模型;
7
7
  * - **compaction**(`compactMessages`):把旧消息前缀做**服务端摘要**(摘要器由上层注入,可走模型),
8
8
  * 只保留最近 N 条 + 一段摘要 —— 新的消息数组仍保证角色交替合法;
9
- * - **客户端剪裁** = Turn 3 子 agent(另件)。
9
+ * - **客户端剪裁** = 子 agent 的独立上下文(见 toolkit/subagent.ts)。
10
10
  *
11
11
  * 不在此自研 token 计数黑名单:`estimateMessages` 只是预算策略的默认启发式
12
12
  * (CJK 感知估算,明确标注为估算),上层可注入真实 count_tokens 结果。
@@ -5,7 +5,7 @@
5
5
  * - **context editing**(`trimToolPairs`):清旧 tool_use→tool_result 对,不掉内容、不额外调模型;
6
6
  * - **compaction**(`compactMessages`):把旧消息前缀做**服务端摘要**(摘要器由上层注入,可走模型),
7
7
  * 只保留最近 N 条 + 一段摘要 —— 新的消息数组仍保证角色交替合法;
8
- * - **客户端剪裁** = Turn 3 子 agent(另件)。
8
+ * - **客户端剪裁** = 子 agent 的独立上下文(见 toolkit/subagent.ts)。
9
9
  *
10
10
  * 不在此自研 token 计数黑名单:`estimateMessages` 只是预算策略的默认启发式
11
11
  * (CJK 感知估算,明确标注为估算),上层可注入真实 count_tokens 结果。
@@ -1,5 +1,5 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
- import type { AgentTool, RecorderBackend } from '../core/tool.js';
2
+ import type { AgentTool, ModelClient, RecorderBackend } from '../core/tool.js';
3
3
  import type { SpanError, SpanId } from '../core/trace.js';
4
4
  import type { AgentRunResult, AgentStopReason, ContextPolicy, RunAgentOptions, SystemParam } from './types.js';
5
5
  /**
@@ -14,12 +14,14 @@ export interface AgentLoopResult {
14
14
  error?: SpanError;
15
15
  /** 本轮循环自己发起的模型往返次数 */
16
16
  iterations: number;
17
+ /** submit_result 校验通过的结构化结果;未提交则为 undefined */
18
+ typed?: unknown;
17
19
  }
18
20
  /** 主入口:开 run 根 span,循环跑在其下。返回完整 trace(traceId 即 runId)。 */
19
21
  export declare function runAgent(options: RunAgentOptions): Promise<AgentRunResult>;
20
22
  /** 嵌套单元(子 agent)入口:不自开 run 根,llm.turn 挂在给定 parentSpanId 下的同一条 trace。 */
21
23
  export declare function runAgentScoped(opts: {
22
- client?: Anthropic;
24
+ client?: ModelClient;
23
25
  system?: SystemParam;
24
26
  messages: Anthropic.MessageParam[];
25
27
  tools?: AgentTool[];
@@ -1,5 +1,6 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
2
  import { validateJsonSchema } from '../core/schema.js';
3
+ import { stringifySafe } from '../core/json.js';
3
4
  import { classifyError } from './errors.js';
4
5
  import { TraceRecorder } from './tracer.js';
5
6
  import { costEstimate, usageFromAnthropic } from './usage.js';
@@ -13,16 +14,51 @@ export function resolveDefaultModel(over) {
13
14
  return over;
14
15
  return process.env.AGENTIA_MODEL?.trim() || 'claude-opus-5';
15
16
  }
17
+ /** 隐藏提交工具名:resultSchema 模式下由 engine 内部追加,不属开发者工具菜单 */
18
+ const SUBMIT_RESULT = 'submit_result';
19
+ /** resultSchema 模式下追加到 system 末尾的指令 */
20
+ const RESULT_INSTRUCTION = '本任务要求结构化结果:完成必要的信息收集与工具调用后,必须调用 submit_result 工具提交最终结果' +
21
+ '(input 严格符合该工具的 input_schema);不要仅以普通文本结束作答。';
22
+ /**
23
+ * 把结果提交指令追加到 system 末尾:string 时以空行拼接;SystemTextBlock[] 时
24
+ * 在数组末尾 push 一个无 cache_control 的 text block —— 不污染稳定前缀的缓存 breakpoint。
25
+ */
26
+ function appendResultInstruction(system) {
27
+ if (!system)
28
+ return RESULT_INSTRUCTION;
29
+ if (typeof system === 'string')
30
+ return `${system}\n\n${RESULT_INSTRUCTION}`;
31
+ return [...system, { type: 'text', text: RESULT_INSTRUCTION }];
32
+ }
16
33
  /** 循环体核心:带父 span 跑一轮 manual loop。请求失败按 error 收掉 turn 后抛出,由外层收尾。 */
17
34
  async function agentLoop(args) {
18
35
  const { client, model, recorder, parentSpanId } = args;
19
36
  const messages = [...args.messages];
20
- const apiTools = args.tools.map(toApiTool);
37
+ // resultSchema 模式:追加隐藏 submit_result 工具 + system 末尾指令。
38
+ // 该工具由 engine 内部注入,不属开发者菜单;菜单已有同名工具视为装配冲突。
39
+ let apiTools = args.tools.map(toApiTool);
40
+ let system = args.system;
41
+ if (args.resultSchema) {
42
+ if (args.tools.some((t) => t.name === SUBMIT_RESULT)) {
43
+ throw new Error(`装配冲突:工具菜单已含 "${SUBMIT_RESULT}",与 resultSchema 的隐藏提交工具同名`);
44
+ }
45
+ apiTools = [
46
+ ...apiTools,
47
+ {
48
+ name: SUBMIT_RESULT,
49
+ description: '任务完成时调用它提交最终结构化结果(input 必须符合本工具的 input_schema)',
50
+ input_schema: args.resultSchema,
51
+ },
52
+ ];
53
+ system = appendResultInstruction(args.system);
54
+ }
21
55
  let stopReason = 'end_turn';
22
56
  let error;
23
57
  let finalText = '';
24
58
  let finished = false;
25
59
  let iterations = 0;
60
+ let typed;
61
+ let submitted = false;
26
62
  for (let iteration = 0; iteration < args.maxIterations; iteration++) {
27
63
  // 发送前给上下文策略一个机会(编辑/压缩预算超限的历史)
28
64
  if (args.contextPolicy) {
@@ -44,7 +80,7 @@ async function agentLoop(args) {
44
80
  const stream = client.messages.stream({
45
81
  model,
46
82
  max_tokens: args.maxTokens,
47
- ...(args.system ? { system: args.system } : {}),
83
+ ...(system ? { system } : {}),
48
84
  ...(apiTools.length ? { tools: apiTools } : {}),
49
85
  messages,
50
86
  });
@@ -85,7 +121,7 @@ async function agentLoop(args) {
85
121
  break;
86
122
  }
87
123
  if (message.stop_reason === 'pause_turn') {
88
- // Turn 0 无 server tools,正常不会到;避免无限循环直接停
124
+ // 无 server tools 时正常不会到;避免无限循环直接停
89
125
  stopReason = 'pause_turn';
90
126
  finished = true;
91
127
  break;
@@ -104,7 +140,21 @@ async function agentLoop(args) {
104
140
  const ctx = { client, recorder, parentSpanId: turnId };
105
141
  let ok = true;
106
142
  let content = '';
107
- if (!tool) {
143
+ if (args.resultSchema && use.name === SUBMIT_RESULT) {
144
+ // 隐藏提交工具:校验通过即携结果收尾(循环在下方 break);
145
+ // 校验失败回 is_error(含路径,模型可自我修正),同回合其他工具照常执行。
146
+ const invalid = validateJsonSchema(args.resultSchema, use.input);
147
+ if (invalid) {
148
+ ok = false;
149
+ content = `invalid input: ${invalid}`;
150
+ }
151
+ else {
152
+ content = 'submitted';
153
+ typed = use.input;
154
+ submitted = true;
155
+ }
156
+ }
157
+ else if (!tool) {
108
158
  ok = false;
109
159
  content = `unknown tool: ${use.name}`;
110
160
  }
@@ -136,12 +186,19 @@ async function agentLoop(args) {
136
186
  };
137
187
  }));
138
188
  messages.push({ role: 'user', content: toolResults });
189
+ if (submitted) {
190
+ // submit_result 校验通过:结构化结果落定,循环正常收尾(finalText 取该回合文本,可空)
191
+ stopReason = 'end_turn';
192
+ finalText = textOf(message);
193
+ finished = true;
194
+ break;
195
+ }
139
196
  }
140
197
  if (!finished && stopReason === 'end_turn') {
141
198
  // 循环因 maxIterations 上限退出而非正常终止
142
199
  stopReason = 'max_iterations';
143
200
  }
144
- return { stopReason, finalText, error, iterations };
201
+ return { stopReason, finalText, error, iterations, typed };
145
202
  }
146
203
  /** 主入口:开 run 根 span,循环跑在其下。返回完整 trace(traceId 即 runId)。 */
147
204
  export async function runAgent(options) {
@@ -162,6 +219,7 @@ export async function runAgent(options) {
162
219
  parentSpanId: rootId,
163
220
  onText: options.onText,
164
221
  contextPolicy: options.contextPolicy,
222
+ resultSchema: options.resultSchema,
165
223
  });
166
224
  }
167
225
  catch (e) {
@@ -177,6 +235,7 @@ export async function runAgent(options) {
177
235
  finalText: result.finalText,
178
236
  iterations: result.iterations,
179
237
  error: result.error,
238
+ typed: result.typed,
180
239
  };
181
240
  }
182
241
  /** 嵌套单元(子 agent)入口:不自开 run 根,llm.turn 挂在给定 parentSpanId 下的同一条 trace。 */
@@ -209,16 +268,6 @@ function textOf(message) {
209
268
  .map((b) => b.text)
210
269
  .join('\n');
211
270
  }
212
- function stringifySafe(x) {
213
- if (typeof x === 'string')
214
- return x;
215
- try {
216
- return JSON.stringify(x) ?? String(x);
217
- }
218
- catch {
219
- return String(x);
220
- }
221
- }
222
271
  /** 截断到上限字符,超长加省略标记 */
223
272
  function limit(x, n) {
224
273
  const s = stringifySafe(x);
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;AAC9D,CAAC;AAuCD,mEAAmE;AACnE,KAAK,UAAU,SAAS,CAAC,IAAmB;IAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACvD,MAAM,QAAQ,GAA6B,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE3C,IAAI,UAAU,GAAoB,UAAU,CAAC;IAC7C,IAAI,KAA4B,CAAC;IACjC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QACpE,8BAA8B;QAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACjF,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,YAAY,EAAE,CAAC;oBACjB,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE;wBAC7C,IAAI,EAAE,QAAQ,CAAC,MAAM;wBACrB,EAAE,EAAE,IAAI,CAAC,MAAM;wBACf,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;gBACD,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAE/D,IAAI,OAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,KAAK;gBACL,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,QAAQ;aACT,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,CAAC,CAAC,yCAAyC;QACpD,CAAC;QACD,UAAU,EAAE,CAAC;QAEb,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,KAAK;YAAE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;QACvE,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;QACzE,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC;QAEhF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,yCAAyC;QACzC,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACvC,UAAU,GAAG,UAAU,CAAC;YACxB,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,UAAU,GAAG,SAAS,CAAC;YACvB,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACpF,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;YACzC,UAAU,GAAG,YAAY,CAAC;YAC1B,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;YACzC,wCAAwC;YACxC,UAAU,GAAG,YAAY,CAAC;YAC1B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACnG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,sCAAsC;YACtC,UAAU,GAAG,oBAAoB,CAAC;YAClC,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;QAED,mDAAmD;QACnD,MAAM,WAAW,GAAqC,MAAM,OAAO,CAAC,GAAG,CACrE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;YACzD,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAExF,MAAM,GAAG,GAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YACvE,IAAI,EAAE,GAAG,IAAI,CAAC;YACd,IAAI,OAAO,GAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,EAAE,GAAG,KAAK,CAAC;gBACX,OAAO,GAAG,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,0CAA0C;gBAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,OAAO,EAAE,CAAC;oBACZ,EAAE,GAAG,KAAK,CAAC;oBACX,OAAO,GAAG,kBAAkB,OAAO,EAAE,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC3C,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,EAAE,GAAG,KAAK,CAAC;wBACX,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAC7B,OAAO,GAAG,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAEzH,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;gBAC/B,QAAQ,EAAE,CAAC,EAAE;aACd,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC3C,+BAA+B;QAC/B,UAAU,GAAG,gBAAgB,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACtD,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,aAAa,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3E,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3E,IAAI,MAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,SAAS,CAAC;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,SAAS,EAAE;YACzC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;YAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,QAAQ;YACR,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACpE,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAChE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO;QACL,KAAK;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAYpC;IACC,OAAO,SAAS,CAAC;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,SAAS,EAAE;QACtC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,MAAM;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,CAAY;IAC7B,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,WAAoD;QACpE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,OAA0B;IACxC,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,sBAAsB;AACtB,SAAS,KAAK,CAAC,CAAU,EAAE,CAAS;IAClC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type Anthropic from '@anthropic-ai/sdk';
2
- import type { AgentTool } from '../core/tool.js';
2
+ import type { AgentTool, JsonSchema, ModelClient } from '../core/tool.js';
3
3
  import type { SpanError, Trace } from '../core/trace.js';
4
+ export type { ModelClient } from '../core/tool.js';
4
5
  export type AgentStopReason = 'end_turn' | 'max_tokens' | 'refusal' | 'pause_turn' | 'max_iterations' | 'tool_use_no_blocks' | 'error';
5
6
  /** 可携带 cache_control 的 system 文本块(见 run/systemPrompt.ts) */
6
7
  export interface SystemTextBlock {
@@ -25,10 +26,15 @@ export interface ContextPolicy {
25
26
  model: string;
26
27
  }): Promise<Anthropic.MessageParam[]>;
27
28
  }
29
+ /**
30
+ * engine 对模型端的最小结构面(R4 多模型):Anthropic SDK 天然满足,
31
+ * 其他 provider(OpenAI 兼容端点等)只需适配出同一形态。
32
+ * 定义在 core/tool.js 并从此处转导出。
33
+ */
28
34
  export interface RunAgentOptions {
29
35
  /** 顶层 system(SystemPrompt 产物)。稳定内容应放在 tools 之后、第一个 breakpoint 前 */
30
36
  system?: SystemParam;
31
- /** 初始消息;Turn 0 由调用方给 user 起始消息 */
37
+ /** 初始消息;由调用方给 user 起始消息 */
32
38
  messages: Anthropic.MessageParam[];
33
39
  /** 主 agent 可调工具(v1 裸 JSON schema) */
34
40
  tools?: AgentTool[];
@@ -37,8 +43,8 @@ export interface RunAgentOptions {
37
43
  maxTokens?: number;
38
44
  /** 循环安全上限,防止无限 tool 往返 */
39
45
  maxIterations?: number;
40
- /** 注入 client(默认 new Anthropic(),读 env/ant auth) */
41
- client?: Anthropic;
46
+ /** 注入 client(默认 new Anthropic(),读 env/ant auth);多模型见 ModelClient */
47
+ client?: ModelClient;
42
48
  /** 注入 recorder(run 层复用;不注入则内部新建,traceId 即 runId) */
43
49
  recorder?: import('./tracer.js').TraceRecorder;
44
50
  /** 文本增量回调(终端/SSE 用) */
@@ -46,13 +52,21 @@ export interface RunAgentOptions {
46
52
  runName?: string;
47
53
  /** 上下文预算策略:每回合发送前可编辑/压缩消息(compaction / context editing) */
48
54
  contextPolicy?: ContextPolicy;
55
+ /**
56
+ * 结构化结果 schema(R2):给出后 engine 追加隐藏工具 submit_result,
57
+ * 模型调用它提交符合 schema 的最终结果,校验通过即结束循环并写入 AgentRunResult.typed;
58
+ * 模型始终未提交则 typed 为 undefined(行为与不设时一致)。
59
+ */
60
+ resultSchema?: JsonSchema;
49
61
  }
50
62
  export interface AgentRunResult {
51
63
  /** 本次 run 的完整调用树 + usage(traceId == runId) */
52
64
  trace: Trace;
53
65
  stopReason: AgentStopReason;
54
- /** 最终文本(结构化输出在后续 Turn 接入) */
66
+ /** 最终文本(提交结构化结果的回合若带文本则取之,可空) */
55
67
  finalText: string;
56
68
  iterations: number;
57
69
  error?: SpanError;
70
+ /** resultSchema 校验通过的结构化结果;模型没提交(或未设 resultSchema)则为 undefined */
71
+ typed?: unknown;
58
72
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export declare const AGENTIA_VERSION = "0.0.1";
1
+ export declare const AGENTIA_VERSION = "0.1.0";
2
2
  export type { Trace, Span, SpanEvent, SpanError, SpanId, SpanKind, SpanStatus, TraceId, UnitType, Usage, } from './core/trace.js';
3
- export type { AgentTool, JsonSchema, RecorderBackend, ToolRunContext } from './core/tool.js';
3
+ export type { AgentTool, JsonSchema, ModelClient, RecorderBackend, ToolRunContext } from './core/tool.js';
4
4
  export { validateJsonSchema } from './core/schema.js';
5
5
  export { runAgent, resolveDefaultModel } from './engine/loop.js';
6
6
  export { TraceRecorder } from './engine/tracer.js';
@@ -20,6 +20,8 @@ export { Container } from './container/container.js';
20
20
  export type { Provider, ClassProvider, ValueProvider, FactoryProvider, Token, } from './container/container.js';
21
21
  export { asset } from './toolkit/asset.js';
22
22
  export { discoverProviders } from './toolkit/discover.js';
23
+ export { applyMiddleware } from './toolkit/middleware.js';
24
+ export type { UnitCall, UnitMiddleware, UnitNext } from './toolkit/middleware.js';
23
25
  export { Tool, collectTools } from './toolkit/tool.js';
24
26
  export type { ToolSpec } from './toolkit/tool.js';
25
27
  export { SubAgent, collectSubAgents, subagentToTool } from './toolkit/subagent.js';
@@ -30,6 +32,9 @@ export { Prompt, collectPrompts } from './toolkit/prompt.js';
30
32
  export type { PromptSpec } from './toolkit/prompt.js';
31
33
  export { createApp, AgentApp } from './toolkit/module.js';
32
34
  export type { AppOptions, RunAppOptions, AgentRunOutput } from './toolkit/module.js';
35
+ export { defineModule } from './toolkit/module.js';
36
+ export type { AgentModule } from './toolkit/module.js';
37
+ export { fromZod } from './toolkit/zod.js';
33
38
  export { normalizeMessages } from './run/spec.js';
34
39
  export type { RunInput, RunSpec, RunInvocationOptions } from './run/spec.js';
35
40
  export { InMemoryTaskStore } from './run/store.js';
@@ -40,3 +45,9 @@ export type { AsyncRunnerOptions, AppCallable } from './run/async.js';
40
45
  export { Scheduler } from './run/scheduler.js';
41
46
  export type { ScheduleEveryOptions, ScheduleHandle } from './run/scheduler.js';
42
47
  export { runSync, createSyncHandler } from './run/transport.js';
48
+ export { createHttpHandler } from './run/http.js';
49
+ export { SqliteTaskStore } from './run/sqliteStore.js';
50
+ export { createOtlpExporter } from './run/otlp.js';
51
+ export { createOpenAIClient } from './run/openai.js';
52
+ export { InMemoryMemoryStore } from './run/memory.js';
53
+ export type { MemoryStore } from './run/memory.js';
package/dist/index.js CHANGED
@@ -1,31 +1,40 @@
1
- export const AGENTIA_VERSION = '0.0.1';
1
+ export const AGENTIA_VERSION = '0.1.0';
2
2
  export { validateJsonSchema } from './core/schema.js';
3
- // engine:Turn 0 内核
3
+ // engine:运行时内核
4
4
  export { runAgent, resolveDefaultModel } from './engine/loop.js';
5
5
  export { TraceRecorder } from './engine/tracer.js';
6
6
  export { classifyError } from './engine/errors.js';
7
- // engine:Turn 4 长上下文策略
7
+ // engine:长上下文策略
8
8
  export { defaultEstimateTokens, estimateMessages, renderMessages, trimToolPairs, compactMessages, } from './engine/context.js';
9
9
  export { createBudgetPolicy } from './engine/policy.js';
10
- // run:Turn 1 生命周期
10
+ // run:run 生命周期
11
11
  export { Run, executeRun } from './run/run.js';
12
12
  export { RunContext, withRunContext } from './run/context.js';
13
13
  export { SystemPrompt } from './run/systemPrompt.js';
14
- // container:Turn 2 显式 DI
14
+ // container:显式 DI
15
15
  export { Container } from './container/container.js';
16
- // toolkit:Turn 2 声明式单元 + 应用装配
16
+ // toolkit:声明式单元 + 应用装配
17
17
  export { asset } from './toolkit/asset.js';
18
18
  export { discoverProviders } from './toolkit/discover.js';
19
+ export { applyMiddleware } from './toolkit/middleware.js';
19
20
  export { Tool, collectTools } from './toolkit/tool.js';
20
21
  export { SubAgent, collectSubAgents, subagentToTool } from './toolkit/subagent.js';
21
22
  export { Skill, collectSkills, skillToTool } from './toolkit/skill.js';
22
23
  export { Prompt, collectPrompts } from './toolkit/prompt.js';
23
24
  export { createApp, AgentApp } from './toolkit/module.js';
24
- // run:Turn 5 触发传输 + run 存储
25
+ export { defineModule } from './toolkit/module.js';
26
+ export { fromZod } from './toolkit/zod.js';
27
+ // run:触发传输 + run 存储
25
28
  export { normalizeMessages } from './run/spec.js';
26
29
  export { InMemoryTaskStore } from './run/store.js';
27
30
  export { FileTaskStore } from './run/fsStore.js';
28
31
  export { AsyncRunner } from './run/async.js';
29
32
  export { Scheduler } from './run/scheduler.js';
30
33
  export { runSync, createSyncHandler } from './run/transport.js';
34
+ // run:宿主与导出(R3/R4)
35
+ export { createHttpHandler } from './run/http.js';
36
+ export { SqliteTaskStore } from './run/sqliteStore.js';
37
+ export { createOtlpExporter } from './run/otlp.js';
38
+ export { createOpenAIClient } from './run/openai.js';
39
+ export { InMemoryMemoryStore } from './run/memory.js';
31
40
  //# sourceMappingURL=index.js.map