agentfootprint 1.4.2 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -32
- package/CLAUDE.md +20 -30
- package/README.md +1 -1
- package/dist/adapters/anthropic/AnthropicAdapter.js +9 -10
- package/dist/adapters/anthropic/AnthropicAdapter.js.map +1 -1
- package/dist/adapters/browser/BrowserAnthropicAdapter.js +26 -8
- package/dist/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
- package/dist/concepts/LLMCall.js +6 -0
- package/dist/concepts/LLMCall.js.map +1 -1
- package/dist/concepts/RAG.js +7 -1
- package/dist/concepts/RAG.js.map +1 -1
- package/dist/concepts/Swarm.js +1 -0
- package/dist/concepts/Swarm.js.map +1 -1
- package/dist/esm/adapters/anthropic/AnthropicAdapter.js +9 -10
- package/dist/esm/adapters/anthropic/AnthropicAdapter.js.map +1 -1
- package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js +26 -8
- package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
- package/dist/esm/concepts/LLMCall.js +6 -0
- package/dist/esm/concepts/LLMCall.js.map +1 -1
- package/dist/esm/concepts/RAG.js +7 -1
- package/dist/esm/concepts/RAG.js.map +1 -1
- package/dist/esm/concepts/Swarm.js +1 -0
- package/dist/esm/concepts/Swarm.js.map +1 -1
- package/dist/esm/executor/agentLoop.js +4 -0
- package/dist/esm/executor/agentLoop.js.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/call/callLLMStage.js +41 -0
- package/dist/esm/lib/call/callLLMStage.js.map +1 -1
- package/dist/esm/lib/call/helpers.js +361 -3
- package/dist/esm/lib/call/helpers.js.map +1 -1
- package/dist/esm/lib/call/parseResponseStage.js +12 -3
- package/dist/esm/lib/call/parseResponseStage.js.map +1 -1
- package/dist/esm/lib/call/streamingCallLLMStage.js +42 -0
- package/dist/esm/lib/call/streamingCallLLMStage.js.map +1 -1
- package/dist/esm/lib/call/toolExecutionSubflow.js +5 -2
- package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -1
- package/dist/esm/lib/concepts/AgentBuilder.js +83 -0
- package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -1
- package/dist/esm/lib/concepts/AgentRunner.js +77 -63
- package/dist/esm/lib/concepts/AgentRunner.js.map +1 -1
- package/dist/esm/lib/instructions/InstructionRecorder.js +6 -2
- package/dist/esm/lib/instructions/InstructionRecorder.js.map +1 -1
- package/dist/esm/lib/loop/buildAgentLoop.js +132 -4
- package/dist/esm/lib/loop/buildAgentLoop.js.map +1 -1
- package/dist/esm/lib/narrative/agentRenderer.js +79 -14
- package/dist/esm/lib/narrative/agentRenderer.js.map +1 -1
- package/dist/esm/observe.barrel.js +2 -0
- package/dist/esm/observe.barrel.js.map +1 -1
- package/dist/esm/providers.barrel.js +1 -1
- package/dist/esm/providers.barrel.js.map +1 -1
- package/dist/esm/recorders/CostRecorder.js +20 -16
- package/dist/esm/recorders/CostRecorder.js.map +1 -1
- package/dist/esm/recorders/ExplainRecorder.js +4 -0
- package/dist/esm/recorders/ExplainRecorder.js.map +1 -1
- package/dist/esm/recorders/RecorderBridge.js +11 -5
- package/dist/esm/recorders/RecorderBridge.js.map +1 -1
- package/dist/esm/recorders/TokenRecorder.js +26 -24
- package/dist/esm/recorders/TokenRecorder.js.map +1 -1
- package/dist/esm/recorders/ToolUsageRecorder.js +21 -17
- package/dist/esm/recorders/ToolUsageRecorder.js.map +1 -1
- package/dist/esm/streaming/StreamEmitter.js.map +1 -1
- package/dist/executor/agentLoop.js +4 -0
- package/dist/executor/agentLoop.js.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/call/callLLMStage.js +41 -0
- package/dist/lib/call/callLLMStage.js.map +1 -1
- package/dist/lib/call/helpers.js +364 -4
- package/dist/lib/call/helpers.js.map +1 -1
- package/dist/lib/call/parseResponseStage.js +12 -3
- package/dist/lib/call/parseResponseStage.js.map +1 -1
- package/dist/lib/call/streamingCallLLMStage.js +42 -0
- package/dist/lib/call/streamingCallLLMStage.js.map +1 -1
- package/dist/lib/call/toolExecutionSubflow.js +5 -2
- package/dist/lib/call/toolExecutionSubflow.js.map +1 -1
- package/dist/lib/concepts/AgentBuilder.js +83 -0
- package/dist/lib/concepts/AgentBuilder.js.map +1 -1
- package/dist/lib/concepts/AgentRunner.js +77 -63
- package/dist/lib/concepts/AgentRunner.js.map +1 -1
- package/dist/lib/instructions/InstructionRecorder.js +6 -2
- package/dist/lib/instructions/InstructionRecorder.js.map +1 -1
- package/dist/lib/loop/buildAgentLoop.js +132 -4
- package/dist/lib/loop/buildAgentLoop.js.map +1 -1
- package/dist/lib/narrative/agentRenderer.js +79 -14
- package/dist/lib/narrative/agentRenderer.js.map +1 -1
- package/dist/observe.barrel.js +4 -1
- package/dist/observe.barrel.js.map +1 -1
- package/dist/providers.barrel.js +3 -1
- package/dist/providers.barrel.js.map +1 -1
- package/dist/recorders/CostRecorder.js +20 -16
- package/dist/recorders/CostRecorder.js.map +1 -1
- package/dist/recorders/ExplainRecorder.js +4 -0
- package/dist/recorders/ExplainRecorder.js.map +1 -1
- package/dist/recorders/RecorderBridge.js +11 -5
- package/dist/recorders/RecorderBridge.js.map +1 -1
- package/dist/recorders/TokenRecorder.js +26 -24
- package/dist/recorders/TokenRecorder.js.map +1 -1
- package/dist/recorders/ToolUsageRecorder.js +21 -17
- package/dist/recorders/ToolUsageRecorder.js.map +1 -1
- package/dist/streaming/StreamEmitter.js.map +1 -1
- package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts.map +1 -1
- package/dist/types/concepts/LLMCall.d.ts.map +1 -1
- package/dist/types/concepts/RAG.d.ts.map +1 -1
- package/dist/types/concepts/Swarm.d.ts.map +1 -1
- package/dist/types/concepts/index.d.ts +1 -1
- package/dist/types/concepts/index.d.ts.map +1 -1
- package/dist/types/core/recorders.d.ts +4 -0
- package/dist/types/core/recorders.d.ts.map +1 -1
- package/dist/types/executor/agentLoop.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/call/callLLMStage.d.ts.map +1 -1
- package/dist/types/lib/call/helpers.d.ts +45 -1
- package/dist/types/lib/call/helpers.d.ts.map +1 -1
- package/dist/types/lib/call/parseResponseStage.d.ts.map +1 -1
- package/dist/types/lib/call/streamingCallLLMStage.d.ts.map +1 -1
- package/dist/types/lib/call/toolExecutionSubflow.d.ts +12 -0
- package/dist/types/lib/call/toolExecutionSubflow.d.ts.map +1 -1
- package/dist/types/lib/concepts/Agent.d.ts +1 -1
- package/dist/types/lib/concepts/Agent.d.ts.map +1 -1
- package/dist/types/lib/concepts/AgentBuilder.d.ts +90 -0
- package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -1
- package/dist/types/lib/concepts/AgentRunner.d.ts +19 -0
- package/dist/types/lib/concepts/AgentRunner.d.ts.map +1 -1
- package/dist/types/lib/concepts/index.d.ts +1 -1
- package/dist/types/lib/concepts/index.d.ts.map +1 -1
- package/dist/types/lib/instructions/InstructionRecorder.d.ts +3 -2
- package/dist/types/lib/instructions/InstructionRecorder.d.ts.map +1 -1
- package/dist/types/lib/loop/buildAgentLoop.d.ts.map +1 -1
- package/dist/types/lib/loop/types.d.ts +38 -0
- package/dist/types/lib/loop/types.d.ts.map +1 -1
- package/dist/types/lib/narrative/agentRenderer.d.ts +7 -2
- package/dist/types/lib/narrative/agentRenderer.d.ts.map +1 -1
- package/dist/types/observe.barrel.d.ts +1 -0
- package/dist/types/observe.barrel.d.ts.map +1 -1
- package/dist/types/providers.barrel.d.ts +1 -1
- package/dist/types/providers.barrel.d.ts.map +1 -1
- package/dist/types/recorders/CostRecorder.d.ts +17 -13
- package/dist/types/recorders/CostRecorder.d.ts.map +1 -1
- package/dist/types/recorders/ExplainRecorder.d.ts +3 -0
- package/dist/types/recorders/ExplainRecorder.d.ts.map +1 -1
- package/dist/types/recorders/RecorderBridge.d.ts +7 -3
- package/dist/types/recorders/RecorderBridge.d.ts.map +1 -1
- package/dist/types/recorders/TokenRecorder.d.ts +17 -18
- package/dist/types/recorders/TokenRecorder.d.ts.map +1 -1
- package/dist/types/recorders/ToolUsageRecorder.d.ts +15 -11
- package/dist/types/recorders/ToolUsageRecorder.d.ts.map +1 -1
- package/dist/types/scope/types.d.ts +7 -0
- package/dist/types/scope/types.d.ts.map +1 -1
- package/dist/types/streaming/StreamEmitter.d.ts +9 -0
- package/dist/types/streaming/StreamEmitter.d.ts.map +1 -1
- package/dist/types/types/agent.d.ts +7 -0
- package/dist/types/types/agent.d.ts.map +1 -1
- package/dist/types/types/multiAgent.d.ts +7 -0
- package/dist/types/types/multiAgent.d.ts.map +1 -1
- package/dist/types/types/tools.d.ts +19 -3
- package/dist/types/types/tools.d.ts.map +1 -1
- package/package.json +4 -5
|
@@ -29,6 +29,9 @@ export class Agent {
|
|
|
29
29
|
enableStreaming = false;
|
|
30
30
|
enableVerboseNarrative = false;
|
|
31
31
|
outputResponseFormat;
|
|
32
|
+
parallelToolsEnabled = false;
|
|
33
|
+
customRoute;
|
|
34
|
+
maxIdenticalFailuresValue;
|
|
32
35
|
constructor(options) {
|
|
33
36
|
this.provider = resolveProvider(options.provider);
|
|
34
37
|
this.agentName = options.name ?? 'agent';
|
|
@@ -90,6 +93,81 @@ export class Agent {
|
|
|
90
93
|
this.enableStreaming = enabled;
|
|
91
94
|
return this;
|
|
92
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Run multiple tool calls within a single turn concurrently via Promise.all.
|
|
98
|
+
*
|
|
99
|
+
* Only beneficial when the LLM requests 2+ independent tool calls in one turn
|
|
100
|
+
* (e.g., "look up customer, orders, and product in parallel"). Results are
|
|
101
|
+
* appended to the conversation in the order the LLM requested them.
|
|
102
|
+
*
|
|
103
|
+
* **Caveat:** decide() functions on tool-level instructions mutate a shared
|
|
104
|
+
* Decision Scope — in parallel mode those mutations are not serialized.
|
|
105
|
+
* If your instructions rely on strict ordering, keep sequential (default).
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* Agent.create({ provider })
|
|
110
|
+
* .tools([getCustomer, getOrders, getProduct])
|
|
111
|
+
* .parallelTools(true)
|
|
112
|
+
* .build();
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
parallelTools(enabled = true) {
|
|
116
|
+
this.parallelToolsEnabled = enabled;
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Register user-defined routing branches evaluated BEFORE the default
|
|
121
|
+
* `tool-calls | final` routing. First matching `when` predicate wins.
|
|
122
|
+
*
|
|
123
|
+
* Useful for injecting escalation paths, safety gates, or bespoke handlers
|
|
124
|
+
* without touching the Agent loop internals. The default tool-calls and
|
|
125
|
+
* final branches still apply when no user branch matches.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* Agent.create({ provider })
|
|
130
|
+
* .tool(searchTool)
|
|
131
|
+
* .route({
|
|
132
|
+
* branches: [
|
|
133
|
+
* { id: 'escalate', when: (s) => s.parsedResponse.content.includes('[ESCALATE]'), runner: humanReviewAgent },
|
|
134
|
+
* ],
|
|
135
|
+
* })
|
|
136
|
+
* .build();
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
route(config) {
|
|
140
|
+
this.customRoute = config;
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Set the repeated-identical-failure escalation threshold. When a tool call
|
|
145
|
+
* with the exact same (name, args) has failed this many times in a row, a
|
|
146
|
+
* one-shot `escalation` field is injected into that tool result content
|
|
147
|
+
* urging the LLM to change arguments, switch tools, or finalize. Fires
|
|
148
|
+
* exactly once per (name, args) key per conversation — further identical
|
|
149
|
+
* failures are left bare to avoid token bloat.
|
|
150
|
+
*
|
|
151
|
+
* Defaults to `3`. Pass `0` to disable escalation entirely.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* Agent.create({ provider })
|
|
156
|
+
* .tools([...])
|
|
157
|
+
* .maxIdenticalFailures(2) // fire escalation after 2 identical failures
|
|
158
|
+
* .build();
|
|
159
|
+
*
|
|
160
|
+
* // Disable entirely:
|
|
161
|
+
* Agent.create({ provider }).tools([...]).maxIdenticalFailures(0).build();
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
maxIdenticalFailures(n) {
|
|
165
|
+
if (!Number.isFinite(n) || n < 0) {
|
|
166
|
+
throw new Error(`AgentBuilder.maxIdenticalFailures: expected a non-negative finite number, got ${n}`);
|
|
167
|
+
}
|
|
168
|
+
this.maxIdenticalFailuresValue = n;
|
|
169
|
+
return this;
|
|
170
|
+
}
|
|
93
171
|
/**
|
|
94
172
|
* Enable verbose narrative — full values, no truncation.
|
|
95
173
|
* Shows complete system prompts, tool results, and LLM outputs in the narrative.
|
|
@@ -218,6 +296,11 @@ export class Agent {
|
|
|
218
296
|
streaming: this.enableStreaming,
|
|
219
297
|
verboseNarrative: this.enableVerboseNarrative,
|
|
220
298
|
responseFormat: this.outputResponseFormat,
|
|
299
|
+
parallelTools: this.parallelToolsEnabled,
|
|
300
|
+
customRoute: this.customRoute,
|
|
301
|
+
...(this.maxIdenticalFailuresValue !== undefined && {
|
|
302
|
+
maxIdenticalFailures: this.maxIdenticalFailuresValue,
|
|
303
|
+
}),
|
|
221
304
|
});
|
|
222
305
|
}
|
|
223
306
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../../../src/lib/concepts/AgentBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../../../src/lib/concepts/AgentBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,9 @@ export class AgentRunner {
|
|
|
33
33
|
initialDecision;
|
|
34
34
|
streamingEnabled;
|
|
35
35
|
responseFormat;
|
|
36
|
+
parallelToolsEnabled;
|
|
37
|
+
customRoute;
|
|
38
|
+
maxIdenticalFailures;
|
|
36
39
|
cachedDecideFunctions;
|
|
37
40
|
conversationHistory = [];
|
|
38
41
|
lastExecutor;
|
|
@@ -56,6 +59,9 @@ export class AgentRunner {
|
|
|
56
59
|
this.initialDecision = options.initialDecision;
|
|
57
60
|
this.streamingEnabled = options.streaming ?? false;
|
|
58
61
|
this.responseFormat = options.responseFormat;
|
|
62
|
+
this.parallelToolsEnabled = options.parallelTools ?? false;
|
|
63
|
+
this.customRoute = options.customRoute;
|
|
64
|
+
this.maxIdenticalFailures = options.maxIdenticalFailures;
|
|
59
65
|
this.verboseNarrative = options.verboseNarrative ?? false;
|
|
60
66
|
if (this.verboseNarrative) {
|
|
61
67
|
this.narrativeRenderer = createAgentRenderer({ verbose: true });
|
|
@@ -171,37 +177,10 @@ export class AgentRunner {
|
|
|
171
177
|
const executor = new FlowChartExecutor(chart, executorOpts);
|
|
172
178
|
executor.enableNarrative({ renderer: this.narrativeRenderer });
|
|
173
179
|
executor.attachRecorder(new MetricRecorder('metrics'));
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
let lastToolDescriptions;
|
|
177
|
-
let lastMessages;
|
|
180
|
+
// Capture LLM responses + per-call context during traversal
|
|
181
|
+
const { recorder: llmCaptureRecorder, captures: llmCaptures } = this.createLLMCaptureRecorder(bridge);
|
|
178
182
|
if (bridge) {
|
|
179
|
-
|
|
180
|
-
id: '__llm-capture',
|
|
181
|
-
onWrite(event) {
|
|
182
|
-
if (event.key === 'systemPrompt' && typeof event.value === 'string') {
|
|
183
|
-
lastSystemPrompt = event.value;
|
|
184
|
-
}
|
|
185
|
-
if (event.key === 'toolDescriptions' && Array.isArray(event.value)) {
|
|
186
|
-
lastToolDescriptions = event.value;
|
|
187
|
-
}
|
|
188
|
-
if (event.key === 'messages' && Array.isArray(event.value)) {
|
|
189
|
-
lastMessages = event.value;
|
|
190
|
-
}
|
|
191
|
-
// adapterRawResponse fires AFTER context writes — snapshot context per call
|
|
192
|
-
if (event.key === 'adapterRawResponse' && event.value) {
|
|
193
|
-
llmCaptures.push({
|
|
194
|
-
response: event.value,
|
|
195
|
-
context: {
|
|
196
|
-
systemPrompt: lastSystemPrompt,
|
|
197
|
-
toolDescriptions: lastToolDescriptions ? [...lastToolDescriptions] : undefined,
|
|
198
|
-
messages: lastMessages ? [...lastMessages] : undefined,
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
};
|
|
204
|
-
executor.attachRecorder(llmCapture);
|
|
183
|
+
executor.attachRecorder(llmCaptureRecorder);
|
|
205
184
|
}
|
|
206
185
|
const startMs = Date.now();
|
|
207
186
|
try {
|
|
@@ -224,6 +203,7 @@ export class AgentRunner {
|
|
|
224
203
|
content: '',
|
|
225
204
|
iterations: pauseResult.iterations,
|
|
226
205
|
paused: true,
|
|
206
|
+
reason: 'paused',
|
|
227
207
|
});
|
|
228
208
|
return pauseResult;
|
|
229
209
|
}
|
|
@@ -232,12 +212,16 @@ export class AgentRunner {
|
|
|
232
212
|
type: 'turn_end',
|
|
233
213
|
content: agentResult.content,
|
|
234
214
|
iterations: agentResult.iterations,
|
|
215
|
+
...(agentResult.maxIterationsReached && { reason: 'maxIterations' }),
|
|
235
216
|
});
|
|
236
217
|
if (bridge) {
|
|
237
218
|
// Dispatch per-iteration LLM calls — each with its own context snapshot
|
|
238
219
|
const perCallMs = llmCaptures.length > 0 ? Math.round((Date.now() - startMs) / llmCaptures.length) : 0;
|
|
239
220
|
for (const capture of llmCaptures) {
|
|
240
|
-
bridge.dispatchLLMCall(capture.response, perCallMs,
|
|
221
|
+
bridge.dispatchLLMCall(capture.response, perCallMs, {
|
|
222
|
+
...capture.context,
|
|
223
|
+
runtimeStageId: capture.runtimeStageId,
|
|
224
|
+
});
|
|
241
225
|
}
|
|
242
226
|
bridge.dispatchTurnComplete(agentResult.content, agentResult.messages.length, agentResult.iterations);
|
|
243
227
|
}
|
|
@@ -278,49 +262,68 @@ export class AgentRunner {
|
|
|
278
262
|
if (!checkpoint) {
|
|
279
263
|
throw new Error('Cannot resume: no checkpoint available.');
|
|
280
264
|
}
|
|
281
|
-
// Capture LLM calls + context during resume (same
|
|
265
|
+
// Capture LLM calls + context during resume (same factory as run())
|
|
282
266
|
const bridge = this.recorders.length > 0 ? new RecorderBridge(this.recorders) : null;
|
|
283
|
-
const llmCaptures =
|
|
284
|
-
let lastSystemPrompt;
|
|
285
|
-
let lastToolDescriptions;
|
|
286
|
-
let lastMessages;
|
|
267
|
+
const { recorder: llmCaptureRecorder, captures: llmCaptures } = this.createLLMCaptureRecorder(bridge);
|
|
287
268
|
if (bridge) {
|
|
288
|
-
|
|
289
|
-
id: '__llm-capture-resume',
|
|
290
|
-
onWrite(event) {
|
|
291
|
-
if (event.key === 'systemPrompt' && typeof event.value === 'string') {
|
|
292
|
-
lastSystemPrompt = event.value;
|
|
293
|
-
}
|
|
294
|
-
if (event.key === 'toolDescriptions' && Array.isArray(event.value)) {
|
|
295
|
-
lastToolDescriptions = event.value;
|
|
296
|
-
}
|
|
297
|
-
if (event.key === 'messages' && Array.isArray(event.value)) {
|
|
298
|
-
lastMessages = event.value;
|
|
299
|
-
}
|
|
300
|
-
if (event.key === 'adapterRawResponse' && event.value) {
|
|
301
|
-
llmCaptures.push({
|
|
302
|
-
response: event.value,
|
|
303
|
-
context: {
|
|
304
|
-
systemPrompt: lastSystemPrompt,
|
|
305
|
-
toolDescriptions: lastToolDescriptions ? [...lastToolDescriptions] : undefined,
|
|
306
|
-
messages: lastMessages ? [...lastMessages] : undefined,
|
|
307
|
-
},
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
},
|
|
311
|
-
};
|
|
312
|
-
executor.attachRecorder(llmCapture);
|
|
269
|
+
executor.attachRecorder(llmCaptureRecorder);
|
|
313
270
|
}
|
|
314
271
|
const startMs = Date.now();
|
|
315
272
|
await executor.resume(checkpoint, humanResponse);
|
|
316
273
|
if (bridge) {
|
|
317
274
|
const perCallMs = llmCaptures.length > 0 ? Math.round((Date.now() - startMs) / llmCaptures.length) : 0;
|
|
318
275
|
for (const capture of llmCaptures) {
|
|
319
|
-
bridge.dispatchLLMCall(capture.response, perCallMs,
|
|
276
|
+
bridge.dispatchLLMCall(capture.response, perCallMs, {
|
|
277
|
+
...capture.context,
|
|
278
|
+
runtimeStageId: capture.runtimeStageId,
|
|
279
|
+
});
|
|
320
280
|
}
|
|
321
281
|
}
|
|
322
282
|
return this.buildResult(executor);
|
|
323
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Create a scope recorder that captures LLM responses + context during traversal.
|
|
286
|
+
* Shared by run() and resume() — eliminates duplication and ensures both paths
|
|
287
|
+
* track runtimeStageId for stream bridge tool events.
|
|
288
|
+
*/
|
|
289
|
+
createLLMCaptureRecorder(bridge) {
|
|
290
|
+
const captures = [];
|
|
291
|
+
let lastSystemPrompt;
|
|
292
|
+
let lastToolDescriptions;
|
|
293
|
+
let lastMessages;
|
|
294
|
+
const recorder = {
|
|
295
|
+
id: '__llm-capture',
|
|
296
|
+
onStageStart(event) {
|
|
297
|
+
// Track current stage runtimeStageId — bridge reads it for stream tool events
|
|
298
|
+
if (bridge)
|
|
299
|
+
bridge.setToolRuntimeStageId(event.runtimeStageId);
|
|
300
|
+
},
|
|
301
|
+
onWrite(event) {
|
|
302
|
+
if (event.key === 'systemPrompt' && typeof event.value === 'string') {
|
|
303
|
+
lastSystemPrompt = event.value;
|
|
304
|
+
}
|
|
305
|
+
if (event.key === 'toolDescriptions' && Array.isArray(event.value)) {
|
|
306
|
+
lastToolDescriptions = event.value;
|
|
307
|
+
}
|
|
308
|
+
if (event.key === 'messages' && Array.isArray(event.value)) {
|
|
309
|
+
lastMessages = event.value;
|
|
310
|
+
}
|
|
311
|
+
// adapterRawResponse fires AFTER context writes — snapshot context per call
|
|
312
|
+
if (event.key === 'adapterRawResponse' && event.value) {
|
|
313
|
+
captures.push({
|
|
314
|
+
response: event.value,
|
|
315
|
+
runtimeStageId: event.runtimeStageId,
|
|
316
|
+
context: {
|
|
317
|
+
systemPrompt: lastSystemPrompt,
|
|
318
|
+
toolDescriptions: lastToolDescriptions ? [...lastToolDescriptions] : undefined,
|
|
319
|
+
messages: lastMessages ? [...lastMessages] : undefined,
|
|
320
|
+
},
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
};
|
|
325
|
+
return { recorder, captures };
|
|
326
|
+
}
|
|
324
327
|
/** Extract AgentResult from executor state — shared by run() and resume(). */
|
|
325
328
|
buildResult(executor) {
|
|
326
329
|
if (executor.isPaused()) {
|
|
@@ -341,8 +344,14 @@ export class AgentRunner {
|
|
|
341
344
|
const lastAsst = lastAssistantMessage(messages);
|
|
342
345
|
const result = state.result ?? (lastAsst ? getTextContent(lastAsst.content) : '');
|
|
343
346
|
const iterations = state.loopCount ?? 0;
|
|
347
|
+
const maxIterationsReached = state.maxIterationsReached === true;
|
|
344
348
|
this.conversationHistory = messages;
|
|
345
|
-
return {
|
|
349
|
+
return {
|
|
350
|
+
content: result,
|
|
351
|
+
messages,
|
|
352
|
+
iterations,
|
|
353
|
+
...(maxIterationsReached && { maxIterationsReached: true }),
|
|
354
|
+
};
|
|
346
355
|
}
|
|
347
356
|
getNarrative() {
|
|
348
357
|
return this.lastExecutor?.getNarrative() ?? [];
|
|
@@ -395,6 +404,11 @@ export class AgentRunner {
|
|
|
395
404
|
decideFunctions: this.cachedDecideFunctions,
|
|
396
405
|
streaming: this.streamingEnabled,
|
|
397
406
|
responseFormat: this.responseFormat,
|
|
407
|
+
parallelTools: this.parallelToolsEnabled,
|
|
408
|
+
...(this.maxIdenticalFailures !== undefined && {
|
|
409
|
+
maxIdenticalFailures: this.maxIdenticalFailures,
|
|
410
|
+
}),
|
|
411
|
+
routeExtensions: this.customRoute?.branches,
|
|
398
412
|
onStreamEvent,
|
|
399
413
|
onInstructionsFired: (toolId, fired) => {
|
|
400
414
|
for (const rec of this.recorders) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentRunner.js","sourceRoot":"","sources":["../../../../src/lib/concepts/AgentRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentRunner.js","sourceRoot":"","sources":["../../../../src/lib/concepts/AgentRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,9 +109,13 @@ export class InstructionRecorder {
|
|
|
109
109
|
const toolFirings = this.firings.get(toolId);
|
|
110
110
|
return toolFirings ? [...toolFirings.keys()] : [];
|
|
111
111
|
}
|
|
112
|
-
/** Serialize for inclusion in executor.getSnapshot().recorders. */
|
|
113
112
|
toSnapshot() {
|
|
114
|
-
return {
|
|
113
|
+
return {
|
|
114
|
+
name: 'Instructions',
|
|
115
|
+
description: 'Translator (FlowRecorder) — per-tool instruction injection log',
|
|
116
|
+
preferredOperation: 'translate',
|
|
117
|
+
data: this.getSummary(),
|
|
118
|
+
};
|
|
115
119
|
}
|
|
116
120
|
clear() {
|
|
117
121
|
this.firings.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstructionRecorder.js","sourceRoot":"","sources":["../../../../src/lib/instructions/InstructionRecorder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"InstructionRecorder.js","sourceRoot":"","sources":["../../../../src/lib/instructions/InstructionRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ import { getTextContent } from '../../types/content';
|
|
|
41
41
|
import { lastAssistantMessage } from '../../memory';
|
|
42
42
|
import { AgentPattern } from './types';
|
|
43
43
|
import { applyInstructionOverrides, buildInstructionsToLLMSubflow } from '../instructions';
|
|
44
|
+
import { assistantMessage } from '../../types/messages';
|
|
44
45
|
// ── Default Agent Routing ─────────────────────────────────────────────────────
|
|
45
46
|
/**
|
|
46
47
|
* Default routing for the Agent loop: tool-calls | final.
|
|
@@ -168,6 +169,10 @@ export function buildAgentLoop(config, seed, options) {
|
|
|
168
169
|
const toolExecutionSubflow = buildToolExecutionSubflow({
|
|
169
170
|
registry: config.registry,
|
|
170
171
|
toolProvider: config.toolProvider,
|
|
172
|
+
parallel: config.parallelTools === true,
|
|
173
|
+
...(config.maxIdenticalFailures !== undefined && {
|
|
174
|
+
maxIdenticalFailures: config.maxIdenticalFailures,
|
|
175
|
+
}),
|
|
171
176
|
// Always pass instruction config — even without build-time instructions,
|
|
172
177
|
// tool handlers can return runtime instructions/followUps.
|
|
173
178
|
instructionConfig: {
|
|
@@ -282,7 +287,12 @@ export function buildAgentLoop(config, seed, options) {
|
|
|
282
287
|
}
|
|
283
288
|
builder = builder.addFunction('ParseResponse', parseResponseStage, 'parse-response', 'Parse LLM response into structured result');
|
|
284
289
|
// ── Routing — one code path for both Agent and Swarm ──
|
|
285
|
-
|
|
290
|
+
// Priority: explicit config.routing (Swarm) > routeExtensions (user .route()) > default
|
|
291
|
+
const routing = config.routing
|
|
292
|
+
? config.routing
|
|
293
|
+
: config.routeExtensions && config.routeExtensions.length > 0
|
|
294
|
+
? extendDefaultRouting(defaultAgentRouting(toolExecutionSubflow, useCommitFlag), config.routeExtensions)
|
|
295
|
+
: defaultAgentRouting(toolExecutionSubflow, useCommitFlag);
|
|
286
296
|
// Validate branches
|
|
287
297
|
if (routing.branches.length === 0) {
|
|
288
298
|
throw new Error('RoutingConfig must have at least one branch.');
|
|
@@ -297,13 +307,38 @@ export function buildAgentLoop(config, seed, options) {
|
|
|
297
307
|
].join(', ')}]`);
|
|
298
308
|
}
|
|
299
309
|
// Wrap decider with structural maxIterations guard — no custom routing can bypass this.
|
|
300
|
-
// If loopCount >= maxIterations, force-route to defaultBranch
|
|
310
|
+
// If loopCount >= maxIterations, force-route to defaultBranch and set the
|
|
311
|
+
// `maxIterationsReached` flag on scope so ANY default-branch stage (Finalize,
|
|
312
|
+
// Swarm's RouteSpecialist fallback, user-supplied terminal stage, …) can
|
|
313
|
+
// surface the fact that this was a forced termination rather than a chosen
|
|
314
|
+
// one. Setting the flag here — rather than inside a specific Finalize stage —
|
|
315
|
+
// makes the signal available for every routing topology built on top of
|
|
316
|
+
// buildAgentLoop.
|
|
317
|
+
//
|
|
301
318
|
// The defaultBranch MUST call $break() or breakFn() — validated below.
|
|
302
319
|
const safeDecider = (scope, breakFn, streamCb) => {
|
|
303
320
|
const loopCount = scope.loopCount ?? 0;
|
|
304
321
|
const maxIter = scope.maxIterations ?? 10;
|
|
305
|
-
if (loopCount >= maxIter)
|
|
322
|
+
if (loopCount >= maxIter) {
|
|
323
|
+
// Deciders can write to scope — the write is committed with the decider
|
|
324
|
+
// stage's transaction. For TypedScope, property assignment goes through
|
|
325
|
+
// the Proxy set trap; for raw ScopeFacade, fall back to setValue if the
|
|
326
|
+
// property assignment is rejected.
|
|
327
|
+
try {
|
|
328
|
+
scope.maxIterationsReached = true;
|
|
329
|
+
}
|
|
330
|
+
catch {
|
|
331
|
+
if (typeof scope.setValue === 'function') {
|
|
332
|
+
try {
|
|
333
|
+
scope.setValue('maxIterationsReached', true);
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
/* unable to record — consumers must read loopCount vs maxIterations */
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
306
340
|
return routing.defaultBranch;
|
|
341
|
+
}
|
|
307
342
|
return routing.decider(scope, breakFn, streamCb);
|
|
308
343
|
};
|
|
309
344
|
let decider = builder.addDeciderFunction(routing.deciderName, safeDecider, routing.deciderId, routing.deciderDescription);
|
|
@@ -344,6 +379,83 @@ export function buildAgentLoop(config, seed, options) {
|
|
|
344
379
|
}
|
|
345
380
|
return { chart: builder.build(), getStrictFollowUp };
|
|
346
381
|
}
|
|
382
|
+
/**
|
|
383
|
+
* Wrap a base RoutingConfig with user-defined extensions.
|
|
384
|
+
*
|
|
385
|
+
* User extensions run BEFORE the base decider. First matching `when` predicate wins.
|
|
386
|
+
* If no extension matches, base routing applies. Runners are mounted as subflows
|
|
387
|
+
* when they expose `.toFlowChart()`; otherwise they are wrapped with runnerAsStage.
|
|
388
|
+
*/
|
|
389
|
+
function extendDefaultRouting(base, extensions) {
|
|
390
|
+
// Each user branch is a TERMINAL fn stage: run the runner, write the content as the
|
|
391
|
+
// agent's final result, and break the loop. We don't mount as a subflow because we
|
|
392
|
+
// need terminate semantics in the parent loop — a subflow would return control to
|
|
393
|
+
// the decider and keep looping. Drill-down via runner.toFlowChart() is a future
|
|
394
|
+
// enhancement; for Phase 1 we optimize for correctness and simplicity.
|
|
395
|
+
const userBranches = extensions.map((ext, idx) => {
|
|
396
|
+
const id = ext.id ?? `route-${idx}`;
|
|
397
|
+
return {
|
|
398
|
+
id,
|
|
399
|
+
kind: 'fn',
|
|
400
|
+
fn: createRouteExtensionStage(ext.runner),
|
|
401
|
+
name: id,
|
|
402
|
+
description: `User routing branch '${id}'`,
|
|
403
|
+
};
|
|
404
|
+
});
|
|
405
|
+
const extendedBranches = [...userBranches, ...base.branches];
|
|
406
|
+
return {
|
|
407
|
+
deciderName: base.deciderName,
|
|
408
|
+
deciderId: base.deciderId,
|
|
409
|
+
deciderDescription: base.deciderDescription,
|
|
410
|
+
decider: (scope, breakFn, streamCb) => {
|
|
411
|
+
// User predicates evaluated first — first match wins.
|
|
412
|
+
for (let i = 0; i < extensions.length; i++) {
|
|
413
|
+
try {
|
|
414
|
+
if (extensions[i].when(scope)) {
|
|
415
|
+
return userBranches[i].id;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
// Predicate errors fall through to base routing (fail-open).
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
return base.decider(scope, breakFn, streamCb);
|
|
423
|
+
},
|
|
424
|
+
branches: extendedBranches,
|
|
425
|
+
defaultBranch: base.defaultBranch,
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Build a terminal stage fn that invokes a user-provided runner, writes its content
|
|
430
|
+
* as the agent's final answer, and breaks the loop.
|
|
431
|
+
*
|
|
432
|
+
* Called when a user `.route()` branch predicate fires. The runner receives the last
|
|
433
|
+
* user message as input; its output content becomes the agent's assistant response.
|
|
434
|
+
*/
|
|
435
|
+
function createRouteExtensionStage(runner) {
|
|
436
|
+
return async (scope) => {
|
|
437
|
+
const messages = scope.messages ?? [];
|
|
438
|
+
const lastUser = [...messages].reverse().find((m) => m.role === 'user');
|
|
439
|
+
const input = typeof lastUser?.content === 'string'
|
|
440
|
+
? lastUser.content
|
|
441
|
+
: Array.isArray(lastUser?.content)
|
|
442
|
+
? lastUser.content
|
|
443
|
+
.map((b) => (typeof b?.text === 'string' ? b.text : ''))
|
|
444
|
+
.filter(Boolean)
|
|
445
|
+
.join('\n')
|
|
446
|
+
: '';
|
|
447
|
+
const env = scope.$getEnv();
|
|
448
|
+
const signal = env?.signal;
|
|
449
|
+
const timeoutMs = env?.timeoutMs;
|
|
450
|
+
const output = await runner.run(input, { signal, timeoutMs });
|
|
451
|
+
const content = typeof output?.content === 'string' ? output.content : '';
|
|
452
|
+
// Append the runner's answer as an assistant message so downstream
|
|
453
|
+
// observers (narrative, recorders) see a coherent conversation.
|
|
454
|
+
scope.messages = [...messages, assistantMessage(content)];
|
|
455
|
+
scope.result = content;
|
|
456
|
+
scope.$break();
|
|
457
|
+
};
|
|
458
|
+
}
|
|
347
459
|
/**
|
|
348
460
|
* Create the Finalize stage function (decider 'final' branch).
|
|
349
461
|
*
|
|
@@ -356,7 +468,23 @@ function createFinalizeStage(options) {
|
|
|
356
468
|
return (scope) => {
|
|
357
469
|
const messages = scope.messages ?? [];
|
|
358
470
|
const lastAsst = lastAssistantMessage(messages);
|
|
359
|
-
|
|
471
|
+
const lastAsstText = lastAsst ? getTextContent(lastAsst.content) : '';
|
|
472
|
+
// safeDecider sets `maxIterationsReached` when it force-routes at the cap.
|
|
473
|
+
// Read it here — don't re-derive from loopCount — so this stage agrees
|
|
474
|
+
// with whatever safeDecider decided (single source of truth).
|
|
475
|
+
const exhausted = scope.maxIterationsReached === true;
|
|
476
|
+
if (exhausted) {
|
|
477
|
+
const maxIter = scope.maxIterations ?? 10;
|
|
478
|
+
// Prefer the LLM's last reasoning text if present — otherwise synthesize
|
|
479
|
+
// a clear "agent gave up" message so callers never see an unexplained
|
|
480
|
+
// empty response after a long tool-error loop.
|
|
481
|
+
scope.result =
|
|
482
|
+
lastAsstText ||
|
|
483
|
+
`Agent stopped after ${maxIter} iterations without a final answer. The LLM may be stuck in a tool-error retry loop — check the execution trace.`;
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
scope.result = lastAsstText;
|
|
487
|
+
}
|
|
360
488
|
if (useCommitFlag) {
|
|
361
489
|
scope.memory_shouldCommit = true;
|
|
362
490
|
}
|