convex-durable-agents 0.2.3 → 0.2.5
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/README.md +81 -7
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +23 -4
- package/dist/client/api.js.map +1 -1
- package/dist/client/handler.d.ts +22 -0
- package/dist/client/handler.d.ts.map +1 -1
- package/dist/client/handler.js +261 -118
- package/dist/client/handler.js.map +1 -1
- package/dist/client/streamer.js +1 -1
- package/dist/client/streamer.js.map +1 -1
- package/dist/client/tools.d.ts +17 -0
- package/dist/client/tools.d.ts.map +1 -1
- package/dist/client/tools.js +16 -0
- package/dist/client/tools.js.map +1 -1
- package/dist/client/types.d.ts +75 -1
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js +11 -0
- package/dist/client/types.js.map +1 -1
- package/dist/component/_generated/component.d.ts +89 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/agent.d.ts.map +1 -1
- package/dist/component/agent.js +21 -2
- package/dist/component/agent.js.map +1 -1
- package/dist/component/schema.d.ts +70 -2
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +21 -0
- package/dist/component/schema.js.map +1 -1
- package/dist/component/streams.js +2 -2
- package/dist/component/streams.js.map +1 -1
- package/dist/component/threads.d.ts +92 -2
- package/dist/component/threads.d.ts.map +1 -1
- package/dist/component/threads.js +83 -2
- package/dist/component/threads.js.map +1 -1
- package/dist/component/tool_calls.d.ts +55 -3
- package/dist/component/tool_calls.d.ts.map +1 -1
- package/dist/component/tool_calls.js +352 -35
- package/dist/component/tool_calls.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/msg.d.ts +3 -0
- package/dist/utils/msg.d.ts.map +1 -0
- package/dist/utils/msg.js +7 -0
- package/dist/utils/msg.js.map +1 -0
- package/dist/utils/retry.d.ts +69 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +404 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/streaming.d.ts +4 -0
- package/dist/utils/streaming.d.ts.map +1 -0
- package/dist/utils/streaming.js +4 -0
- package/dist/utils/streaming.js.map +1 -0
- package/package.json +1 -1
- package/src/client/api.ts +24 -4
- package/src/client/handler.ts +337 -134
- package/src/client/streamer.ts +1 -1
- package/src/client/tools.ts +43 -1
- package/src/client/types.ts +60 -0
- package/src/component/_generated/component.ts +103 -0
- package/src/component/agent.ts +24 -2
- package/src/component/schema.ts +22 -0
- package/src/component/streams.ts +2 -2
- package/src/component/threads.ts +92 -3
- package/src/component/tool_calls.ts +430 -44
- package/src/utils/msg.ts +8 -0
- package/src/utils/retry.ts +528 -0
- package/src/{streaming.ts → utils/streaming.ts} +2 -3
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/streaming.d.ts +0 -3
- package/dist/streaming.d.ts.map +0 -1
- package/dist/streaming.js +0 -4
- package/dist/streaming.js.map +0 -1
- /package/dist/{logger.d.ts → utils/logger.d.ts} +0 -0
- /package/dist/{logger.js → utils/logger.js} +0 -0
- /package/src/{logger.ts → utils/logger.ts} +0 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ A Convex component for building durable AI agents with an async tool loop. The g
|
|
|
6
6
|
way to build AI agents that can run indefinitely and survive failures and restarts. It provides some of the
|
|
7
7
|
functionality of the [Convex Agents Component](https://www.convex.dev/components/agent) (such as persistent streaming),
|
|
8
8
|
while deliberately leaving out some of the more advanced features (context management, RAG, rate limiting, etc.). The
|
|
9
|
-
component is built on top of the [AI SDK v6](https://ai-sdk.dev/)
|
|
9
|
+
component is built on top of the [AI SDK v6](https://ai-sdk.dev/) and aims to expose its full `streamText` API with
|
|
10
10
|
persistence and durable execution.
|
|
11
11
|
|
|
12
12
|
**Note:** This component is still in early development and is not yet ready for production use. The API will very likely
|
|
@@ -16,13 +16,9 @@ change before a first stable release.
|
|
|
16
16
|
|
|
17
17
|
- **Async Execution**: Agent tool loop is executed asynchronously to avoid time limits of convex actions
|
|
18
18
|
- **Tool Execution**: via convex actions - support for both sync and async tools
|
|
19
|
-
- **Automatic Retries**: Failed tool calls are automatically retried
|
|
20
|
-
- **Workpool Support**: Optionally route agent and tool execution through `@convex-dev/workpool` for parallelism control
|
|
21
|
-
and retry mechanisms
|
|
22
|
-
|
|
23
|
-
## Roadmap
|
|
24
|
-
|
|
19
|
+
- **Automatic Retries**: Failed tool calls are automatically retried (opt-in)
|
|
25
20
|
- **Durable Execution**: Agent tool loops survive crashes and dev server restarts
|
|
21
|
+
- **Workpool Support**: Optionally route agent and tool execution through `@convex-dev/workpool` for parallelism control
|
|
26
22
|
|
|
27
23
|
## Installation
|
|
28
24
|
|
|
@@ -66,6 +62,10 @@ export const chatAgentHandler = streamHandlerAction(components.durableAgents, {
|
|
|
66
62
|
description: "Get weather for a location",
|
|
67
63
|
args: z.object({ location: z.string() }),
|
|
68
64
|
handler: internal.tools.weather.getWeather,
|
|
65
|
+
retry: {
|
|
66
|
+
enabled: true,
|
|
67
|
+
maxAttempts: 5,
|
|
68
|
+
},
|
|
69
69
|
}),
|
|
70
70
|
},
|
|
71
71
|
saveStreamDeltas: true, // Enable real-time streaming
|
|
@@ -291,9 +291,29 @@ createActionTool({
|
|
|
291
291
|
description: string,
|
|
292
292
|
args: ZodSchema,
|
|
293
293
|
handler: FunctionReference<"action">,
|
|
294
|
+
retry?: true | {
|
|
295
|
+
enabled: true,
|
|
296
|
+
maxAttempts?: number, // default 3
|
|
297
|
+
backoff?: {
|
|
298
|
+
strategy?: "fixed",
|
|
299
|
+
delayMs: number,
|
|
300
|
+
jitter?: boolean,
|
|
301
|
+
} | {
|
|
302
|
+
strategy: "exponential",
|
|
303
|
+
initialDelayMs: number,
|
|
304
|
+
multiplier?: number, // default 2
|
|
305
|
+
maxDelayMs?: number,
|
|
306
|
+
jitter?: boolean,
|
|
307
|
+
},
|
|
308
|
+
shouldRetryError?: FunctionReference<"action">,
|
|
309
|
+
},
|
|
294
310
|
});
|
|
295
311
|
```
|
|
296
312
|
|
|
313
|
+
Pass `retry: true` for defaults (3 attempts, exponential backoff) or provide a full config object.
|
|
314
|
+
The optional `shouldRetryError` action receives `{ threadId, toolCallId, toolName, args, error, attempt, maxAttempts }`
|
|
315
|
+
and should return a truthy value to retry or falsy to fail immediately.
|
|
316
|
+
|
|
297
317
|
#### `createAsyncTool(options)`
|
|
298
318
|
|
|
299
319
|
Creates an async tool where results are provided later:
|
|
@@ -462,6 +482,60 @@ defineAgentApi(components.durableAgents, internal.chat.chatAgentHandler, {
|
|
|
462
482
|
});
|
|
463
483
|
```
|
|
464
484
|
|
|
485
|
+
## Recovering Interrupted Threads
|
|
486
|
+
|
|
487
|
+
If a Convex dev server restarts or an action crashes mid-execution, threads and tool calls can get stuck in an
|
|
488
|
+
intermediate state. To automatically recover them, add a `crons.ts` file that periodically resumes any interrupted work:
|
|
489
|
+
|
|
490
|
+
```ts
|
|
491
|
+
// convex/crons.ts
|
|
492
|
+
import { cronJobs } from "convex/server";
|
|
493
|
+
import { components, internal } from "./_generated/api";
|
|
494
|
+
import { internalAction } from "./_generated/server";
|
|
495
|
+
|
|
496
|
+
const crons = cronJobs();
|
|
497
|
+
|
|
498
|
+
export const recoverAgents = internalAction({
|
|
499
|
+
args: {},
|
|
500
|
+
handler: async (ctx) => {
|
|
501
|
+
// Resume threads that were interrupted mid-stream
|
|
502
|
+
await ctx.runAction(components.durableAgents.agent.tryContinueAllThreads, {});
|
|
503
|
+
// Retry pending sync tool calls that lost their executor
|
|
504
|
+
await ctx.runMutation(components.durableAgents.tool_calls.resumePendingSyncToolExecutions, {});
|
|
505
|
+
return null;
|
|
506
|
+
},
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
crons.interval("recoverAgents", { minutes: 1 }, internal.crons.recoverAgents);
|
|
510
|
+
|
|
511
|
+
export default crons;
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
`tryContinueAllThreads` scans for threads in `streaming` or `awaiting_tool_results` whose active stream or tool
|
|
515
|
+
executor is no longer alive, and re-schedules them. `resumePendingSyncToolExecutions` picks up any `pending` sync tool
|
|
516
|
+
calls that don't have an active scheduled retry function and re-enqueues them. Running both on a short interval ensures
|
|
517
|
+
your agents self-heal without manual intervention.
|
|
518
|
+
|
|
519
|
+
## Usage Tracking
|
|
520
|
+
|
|
521
|
+
You can record token usage for each LLM response using the `onMessageComplete` callback. This callback is invoked after
|
|
522
|
+
every streamed response with token counts and provider metadata, making it easy to log costs, enforce budgets, or build
|
|
523
|
+
usage dashboards.
|
|
524
|
+
|
|
525
|
+
```ts
|
|
526
|
+
export const chatAgentHandler = streamHandlerAction(components.durableAgents, {
|
|
527
|
+
model: "anthropic/claude-haiku-4.5",
|
|
528
|
+
system: "You are a helpful AI assistant.",
|
|
529
|
+
tools: { /* ... */ },
|
|
530
|
+
onMessageComplete: async (ctx, args) => {
|
|
531
|
+
await ctx.runMutation(internal.usage.recordUsage, {
|
|
532
|
+
threadId: args.threadId,
|
|
533
|
+
usage: args.usage,
|
|
534
|
+
});
|
|
535
|
+
},
|
|
536
|
+
});
|
|
537
|
+
```
|
|
538
|
+
|
|
465
539
|
## Architecture
|
|
466
540
|
|
|
467
541
|
```
|
package/dist/client/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAMvB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,KAAK,EAAK,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
|
package/dist/client/api.js
CHANGED
|
@@ -11,12 +11,24 @@ async function checkThreadIsIdle(component, ctx, threadId) {
|
|
|
11
11
|
if (!thread) {
|
|
12
12
|
throw new Error(`Thread ${threadId} not found`);
|
|
13
13
|
}
|
|
14
|
+
if (thread.retryState) {
|
|
15
|
+
throw new Error(`Thread ${threadId} has retry pending; stop the thread to interrupt the retry flow`);
|
|
16
|
+
}
|
|
14
17
|
switch (thread.status) {
|
|
15
18
|
case "awaiting_tool_results":
|
|
16
19
|
case "streaming":
|
|
17
20
|
throw new Error(`Thread ${threadId} status=${thread.status}, cannot resume`);
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
async function assertNoRetryPending(component, ctx, threadId) {
|
|
24
|
+
const thread = await ctx.runQuery(component.threads.get, { threadId });
|
|
25
|
+
if (!thread) {
|
|
26
|
+
throw new Error(`Thread ${threadId} not found`);
|
|
27
|
+
}
|
|
28
|
+
if (thread.retryState) {
|
|
29
|
+
throw new Error(`Thread ${threadId} has retry pending; stop the thread to interrupt the retry flow`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
20
32
|
async function serializeThreadOptions(options) {
|
|
21
33
|
const result = {};
|
|
22
34
|
if (options?.workpoolEnqueueAction) {
|
|
@@ -86,15 +98,17 @@ function createAgentApi(component, ref, _action, query, mutation, options) {
|
|
|
86
98
|
handler: async (ctx, args) => {
|
|
87
99
|
if (authorize)
|
|
88
100
|
await authorize(ctx, args.threadId);
|
|
101
|
+
const threadId = args.threadId;
|
|
102
|
+
await assertNoRetryPending(component, ctx, threadId);
|
|
89
103
|
await ctx.runMutation(component.messages.add, {
|
|
90
|
-
threadId
|
|
104
|
+
threadId,
|
|
91
105
|
msg: { role: "user", parts: [{ type: "text", text: args.prompt }] },
|
|
92
106
|
});
|
|
93
107
|
await ctx.runMutation(component.threads.resume, {
|
|
94
|
-
threadId
|
|
108
|
+
threadId,
|
|
95
109
|
});
|
|
96
110
|
await ctx.scheduler.runAfter(0, component.agent.continueStream, {
|
|
97
|
-
threadId
|
|
111
|
+
threadId,
|
|
98
112
|
});
|
|
99
113
|
return null;
|
|
100
114
|
},
|
|
@@ -126,6 +140,7 @@ function createAgentApi(component, ref, _action, query, mutation, options) {
|
|
|
126
140
|
if (authorize)
|
|
127
141
|
await authorize(ctx, args.threadId);
|
|
128
142
|
const threadId = args.threadId;
|
|
143
|
+
await assertNoRetryPending(component, ctx, threadId);
|
|
129
144
|
if (args.prompt) {
|
|
130
145
|
await ctx.runMutation(component.messages.add, {
|
|
131
146
|
threadId,
|
|
@@ -153,10 +168,14 @@ function createAgentApi(component, ref, _action, query, mutation, options) {
|
|
|
153
168
|
handler: async (ctx, args) => {
|
|
154
169
|
if (authorize)
|
|
155
170
|
await authorize(ctx, args.threadId);
|
|
171
|
+
const threadId = args.threadId;
|
|
156
172
|
await ctx.runMutation(component.threads.setStopSignal, {
|
|
157
|
-
threadId
|
|
173
|
+
threadId,
|
|
158
174
|
stopSignal: true,
|
|
159
175
|
});
|
|
176
|
+
await ctx.runMutation(component.threads.clearRetryState, {
|
|
177
|
+
threadId,
|
|
178
|
+
});
|
|
160
179
|
return null;
|
|
161
180
|
},
|
|
162
181
|
}),
|
package/dist/client/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
|
package/dist/client/handler.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type ModelMessage, streamText, type UIMessage } from "ai";
|
|
2
2
|
import { type FunctionReference } from "convex/server";
|
|
3
3
|
import type { ComponentApi } from "../component/_generated/component.js";
|
|
4
|
+
import { type RetryErrorKind, type RetryOptions } from "../utils/retry.js";
|
|
4
5
|
import { type ActionCtx, type DurableTool } from "./types.js";
|
|
5
6
|
import { type UsageInfo } from "./usage.js";
|
|
6
7
|
export type StreamingOptions = {
|
|
7
8
|
throttleMs?: number;
|
|
8
9
|
returnImmediately?: boolean;
|
|
9
10
|
};
|
|
11
|
+
export type { RetryContext, RetryDecision, RetryErrorClassification, RetryErrorKind, RetryErrorSignal, RetryOptions, } from "../utils/retry.js";
|
|
10
12
|
export type MessageReceivedCallbackArgs = {
|
|
11
13
|
threadId: string;
|
|
12
14
|
streamId: string;
|
|
@@ -26,10 +28,17 @@ export type ErrorHandlerArgs = {
|
|
|
26
28
|
threadId: string;
|
|
27
29
|
streamId: string;
|
|
28
30
|
error: string;
|
|
31
|
+
kind?: RetryErrorKind | "tool_execution";
|
|
32
|
+
retryable?: boolean;
|
|
33
|
+
attempt?: number;
|
|
34
|
+
maxAttempts?: number;
|
|
35
|
+
requiresExplicitHandling?: boolean;
|
|
29
36
|
};
|
|
30
37
|
export type ErrorHandlerCallback = (ctx: ActionCtx, args: ErrorHandlerArgs) => void | Promise<void>;
|
|
31
38
|
export type StreamHandlerArgs = Omit<Parameters<typeof streamText>[0], "tools" | "messages" | "prompt"> & {
|
|
32
39
|
tools: Record<string, DurableTool<unknown, unknown>>;
|
|
40
|
+
/** Optional: provider-native tools that should be passed through directly to streamText */
|
|
41
|
+
providerTools?: NonNullable<Parameters<typeof streamText>[0]["tools"]>;
|
|
33
42
|
/** Optional: Save streaming deltas to the database for real-time client updates */
|
|
34
43
|
saveStreamDeltas?: boolean | StreamingOptions;
|
|
35
44
|
/** Optional: Transform the messages before sending them to the model */
|
|
@@ -40,6 +49,19 @@ export type StreamHandlerArgs = Omit<Parameters<typeof streamText>[0], "tools" |
|
|
|
40
49
|
onTurnComplete?: TurnCompleteCallback;
|
|
41
50
|
/** Optional: Callback when an error occurs during the stream handler invocation */
|
|
42
51
|
onError?: ErrorHandlerCallback;
|
|
52
|
+
/** Optional: Configure automatic retry handling for stream failures */
|
|
53
|
+
retry?: false | RetryOptions;
|
|
54
|
+
/** Optional: Callback invoked when a retry is scheduled */
|
|
55
|
+
onRetry?: (ctx: ActionCtx, args: {
|
|
56
|
+
scope: "stream";
|
|
57
|
+
threadId: string;
|
|
58
|
+
streamId: string;
|
|
59
|
+
attempt: number;
|
|
60
|
+
maxAttempts: number;
|
|
61
|
+
delayMs: number;
|
|
62
|
+
kind?: RetryErrorKind;
|
|
63
|
+
error: string;
|
|
64
|
+
}) => void | Promise<void>;
|
|
43
65
|
/** Optional: Function to enqueue actions via workpool (used for both stream handler and tools unless overridden) */
|
|
44
66
|
workpoolEnqueueAction?: FunctionReference<"mutation", "internal">;
|
|
45
67
|
/** Optional: Override workpool for tool execution only */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/client/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EACjB,UAAU,EAGV,KAAK,SAAS,EACf,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,KAAK,iBAAiB,EAAgD,MAAM,eAAe,CAAC;AAErG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/client/handler.ts"],"names":[],"mappings":"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"}
|