Skip to content

Commit d4e275b

Browse files
committed
add partial tool args
1 parent 1ad3dea commit d4e275b

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

typescript-sdk/packages/client/src/agent/subscriber.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,14 @@ export interface RunAgentSubscriber {
9595
event: ToolCallArgsEvent;
9696
toolCallBuffer: string;
9797
toolCallName: string;
98+
partialToolCallArgs: Record<string, any>;
9899
} & RunAgentSubscriberParams,
99100
): MaybePromise<AgentStateMutation | undefined>;
100101
onToolCallEndEvent?(
101102
params: {
102103
event: ToolCallEndEvent;
103-
toolCallBuffer: string;
104104
toolCallName: string;
105+
toolCallArgs: Record<string, any>;
105106
} & RunAgentSubscriberParams,
106107
): MaybePromise<AgentStateMutation | undefined>;
107108

typescript-sdk/packages/client/src/apply/default.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import {
3434
} from "@/agent/subscriber";
3535
import { Observable } from "rxjs";
3636
import { AbstractAgent } from "@/agent/agent";
37+
import untruncateJson from "untruncate-json";
3738

3839
export const defaultApplyEvents = (
3940
input: RunAgentInput,
@@ -218,6 +219,12 @@ export const defaultApplyEvents = (
218219
toolCalls.length > 0 ? toolCalls[toolCalls.length - 1].function.arguments : "";
219220
const toolCallName =
220221
toolCalls.length > 0 ? toolCalls[toolCalls.length - 1].function.name : "";
222+
let partialToolCallArgs = {};
223+
try {
224+
partialToolCallArgs = untruncateJson(
225+
toolCallBuffer + (event as ToolCallArgsEvent).delta,
226+
);
227+
} catch (error) {}
221228

222229
return subscriber.onToolCallArgsEvent?.({
223230
event: event as ToolCallArgsEvent,
@@ -227,6 +234,7 @@ export const defaultApplyEvents = (
227234
input,
228235
toolCallBuffer,
229236
toolCallName,
237+
partialToolCallArgs,
230238
});
231239
},
232240
);
@@ -258,18 +266,22 @@ export const defaultApplyEvents = (
258266
(subscriber, messages, state) => {
259267
const toolCalls =
260268
(messages[messages.length - 1] as AssistantMessage)?.toolCalls ?? [];
261-
const toolCallBuffer =
269+
const toolCallArgsString =
262270
toolCalls.length > 0 ? toolCalls[toolCalls.length - 1].function.arguments : "";
263271
const toolCallName =
264272
toolCalls.length > 0 ? toolCalls[toolCalls.length - 1].function.name : "";
273+
let toolCallArgs = {};
274+
try {
275+
toolCallArgs = JSON.parse(toolCallArgsString);
276+
} catch (error) {}
265277
return subscriber.onToolCallEndEvent?.({
266278
event: event as ToolCallEndEvent,
267279
messages,
268280
state,
269281
agent,
270282
input,
271-
toolCallBuffer,
272283
toolCallName,
284+
toolCallArgs,
273285
});
274286
},
275287
);

0 commit comments

Comments
 (0)