@langchain/langgraph 0.4.1 → 0.4.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @langchain/langgraph
2
2
 
3
+ ## 0.4.3
4
+
5
+ ### Patch Changes
6
+
7
+ - f69bf6d: feat(langgraph): createReactAgent v2: use Send for each of the tool calls
8
+ - 9940200: feat(langgraph): Allow partially applying tool calls via postModelHook
9
+ - e8c61bb: feat(langgraph): add dynamic model choice to createReactAgent
10
+
11
+ ## 0.4.2
12
+
13
+ ### Patch Changes
14
+
15
+ - c911c5f: fix(langgraph): handle empty messages
16
+
3
17
  ## 0.4.1
4
18
 
5
19
  ### Patch Changes
@@ -294,7 +294,7 @@ const PreHookAnnotation = annotation_js_1.Annotation.Root({
294
294
  * ```
295
295
  */
296
296
  function createReactAgent(params) {
297
- const { llm, tools, messageModifier, stateModifier, prompt, stateSchema, checkpointSaver, checkpointer, interruptBefore, interruptAfter, store, responseFormat, preModelHook, postModelHook, name, includeAgentName, } = params;
297
+ const { llm, tools, messageModifier, stateModifier, prompt, stateSchema, contextSchema, checkpointSaver, checkpointer, interruptBefore, interruptAfter, store, responseFormat, preModelHook, postModelHook, name, version = "v1", includeAgentName, } = params;
298
298
  let toolClasses;
299
299
  let toolNode;
300
300
  if (!Array.isArray(tools)) {
@@ -305,11 +305,10 @@ function createReactAgent(params) {
305
305
  toolClasses = tools;
306
306
  toolNode = new tool_node_js_1.ToolNode(toolClasses.filter(isClientTool));
307
307
  }
308
- let cachedModelRunnable = null;
309
- const getModelRunnable = async (llm) => {
310
- if (cachedModelRunnable) {
311
- return cachedModelRunnable;
312
- }
308
+ let cachedStaticModel = null;
309
+ const _getStaticModel = async (llm) => {
310
+ if (cachedStaticModel)
311
+ return cachedStaticModel;
313
312
  let modelWithTools;
314
313
  if (await _shouldBindTools(llm, toolClasses)) {
315
314
  modelWithTools = await _bindTools(llm, toolClasses);
@@ -319,10 +318,16 @@ function createReactAgent(params) {
319
318
  }
320
319
  const promptRunnable = _getPrompt(prompt, stateModifier, messageModifier);
321
320
  const modelRunnable = includeAgentName === "inline"
322
- ? promptRunnable.pipe((0, agentName_js_1.withAgentName)(modelWithTools, includeAgentName))
323
- : promptRunnable.pipe(modelWithTools);
324
- cachedModelRunnable = modelRunnable;
325
- return modelRunnable;
321
+ ? (0, agentName_js_1.withAgentName)(modelWithTools, includeAgentName)
322
+ : modelWithTools;
323
+ cachedStaticModel = promptRunnable.pipe(modelRunnable);
324
+ return cachedStaticModel;
325
+ };
326
+ const _getDynamicModel = async (llm, state, config) => {
327
+ const model = await llm(state, config);
328
+ return _getPrompt(prompt, stateModifier, messageModifier).pipe(includeAgentName === "inline"
329
+ ? (0, agentName_js_1.withAgentName)(model, includeAgentName)
330
+ : model);
326
331
  };
327
332
  // If any of the tools are configured to return_directly after running,
328
333
  // our graph needs to check if these were called
@@ -343,7 +348,12 @@ function createReactAgent(params) {
343
348
  }
344
349
  const messages = [...state.messages];
345
350
  let modelWithStructuredOutput;
346
- const model = await _getModel(llm);
351
+ const model = typeof llm === "function"
352
+ ? await llm(state, config)
353
+ : await _getModel(llm);
354
+ if (!_isBaseChatModel(model)) {
355
+ throw new Error(`Expected \`llm\` to be a ChatModel with .withStructuredOutput() method, got ${model.constructor.name}`);
356
+ }
347
357
  if (typeof responseFormat === "object" && "schema" in responseFormat) {
348
358
  const { prompt, schema, ...options } = responseFormat;
349
359
  modelWithStructuredOutput = model.withStructuredOutput(schema, options);
@@ -360,7 +370,9 @@ function createReactAgent(params) {
360
370
  const callModel = async (state, config) => {
361
371
  // NOTE: we're dynamically creating the model runnable here
362
372
  // to ensure that we can validate ConfigurableModel properly
363
- const modelRunnable = await getModelRunnable(llm);
373
+ const modelRunnable = typeof llm === "function"
374
+ ? await _getDynamicModel(llm, state, config)
375
+ : await _getStaticModel(llm);
364
376
  // TODO: Auto-promote streaming.
365
377
  const response = (await modelRunnable.invoke(getModelInputState(state), config));
366
378
  // add agent name to the AIMessage
@@ -370,7 +382,7 @@ function createReactAgent(params) {
370
382
  return { messages: [response] };
371
383
  };
372
384
  const schema = stateSchema ?? (0, exports.createReactAgentAnnotation)();
373
- const workflow = new index_js_1.StateGraph(schema).addNode("tools", toolNode);
385
+ const workflow = new index_js_1.StateGraph(schema, contextSchema).addNode("tools", toolNode);
374
386
  if (!("messages" in workflow._schemaDefinition)) {
375
387
  throw new Error("Missing required `messages` key in state schema.");
376
388
  }
@@ -402,11 +414,24 @@ function createReactAgent(params) {
402
414
  .addEdge("agent", "post_model_hook")
403
415
  .addConditionalEdges("post_model_hook", (state) => {
404
416
  const { messages } = state;
405
- const lastMessage = messages[messages.length - 1];
406
- if ((0, messages_1.isAIMessage)(lastMessage) && lastMessage.tool_calls?.length) {
417
+ const toolMessageIds = new Set(messages.filter(messages_1.isToolMessage).map((msg) => msg.tool_call_id));
418
+ let lastAiMessage;
419
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
420
+ const message = messages[i];
421
+ if ((0, messages_1.isAIMessage)(message)) {
422
+ lastAiMessage = message;
423
+ break;
424
+ }
425
+ }
426
+ const pendingToolCalls = lastAiMessage?.tool_calls?.filter((i) => i.id == null || !toolMessageIds.has(i.id)) ?? [];
427
+ const lastMessage = messages.at(-1);
428
+ if (pendingToolCalls.length > 0) {
429
+ if (version === "v2") {
430
+ return pendingToolCalls.map((toolCall) => new constants_js_1.Send("tools", { ...state, lg_tool_call: toolCall }));
431
+ }
407
432
  return "tools";
408
433
  }
409
- if ((0, messages_1.isToolMessage)(lastMessage))
434
+ if (lastMessage && (0, messages_1.isToolMessage)(lastMessage))
410
435
  return entrypoint;
411
436
  if (responseFormat != null)
412
437
  return "generate_structured_response";
@@ -434,6 +459,9 @@ function createReactAgent(params) {
434
459
  return constants_js_1.END;
435
460
  }
436
461
  // there are function calls, we continue
462
+ if (version === "v2") {
463
+ return lastMessage.tool_calls.map((toolCall) => new constants_js_1.Send("tools", { ...state, lg_tool_call: toolCall }));
464
+ }
437
465
  return "tools";
438
466
  }, conditionalMap({
439
467
  tools: "tools",
@@ -8,7 +8,7 @@ import { All, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkp
8
8
  import { type CompiledStateGraph, AnnotationRoot } from "../graph/index.js";
9
9
  import { MessagesAnnotation } from "../graph/messages_annotation.js";
10
10
  import { ToolNode } from "./tool_node.js";
11
- import { LangGraphRunnableConfig } from "../pregel/runnable_types.js";
11
+ import { LangGraphRunnableConfig, Runtime } from "../pregel/runnable_types.js";
12
12
  import { Messages } from "../graph/message.js";
13
13
  import { START } from "../constants.js";
14
14
  import type { InteropZodToStateDefinition } from "../graph/zod/meta.js";
@@ -31,7 +31,7 @@ interface ConfigurableModelInterface {
31
31
  }
32
32
  export declare function _shouldBindTools(llm: LanguageModelLike, tools: (ClientTool | ServerTool)[]): Promise<boolean>;
33
33
  export declare function _bindTools(llm: LanguageModelLike, toolClasses: (ClientTool | ServerTool)[]): Promise<RunnableSequence<any, any> | Runnable<import("@langchain/core/language_models/base").BaseLanguageModelInput, import("@langchain/core/messages").AIMessageChunk, import("@langchain/core/language_models/chat_models").BaseChatModelCallOptions> | RunnableBinding<any, any, any>>;
34
- export declare function _getModel(llm: LanguageModelLike | ConfigurableModelInterface): Promise<BaseChatModel>;
34
+ export declare function _getModel(llm: LanguageModelLike | ConfigurableModelInterface): Promise<LanguageModelLike>;
35
35
  export type Prompt = SystemMessage | string | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => BaseMessageLike[]) | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => Promise<BaseMessageLike[]>) | Runnable;
36
36
  /** @deprecated Use Prompt instead. */
37
37
  export type StateModifier = Prompt;
@@ -51,9 +51,9 @@ declare const PreHookAnnotation: AnnotationRoot<{
51
51
  type PreHookAnnotation = typeof PreHookAnnotation;
52
52
  type AnyAnnotationRoot = AnnotationRoot<any>;
53
53
  type ToAnnotationRoot<A extends AnyAnnotationRoot | InteropZodObject> = A extends AnyAnnotationRoot ? A : A extends InteropZodObject ? AnnotationRoot<InteropZodToStateDefinition<A>> : never;
54
- export type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot, StructuredResponseType = Record<string, any>> = {
54
+ export type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot, StructuredResponseType extends Record<string, any> = Record<string, any>, C extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot> = {
55
55
  /** The chat model that can utilize OpenAI-style tool calling. */
56
- llm: LanguageModelLike;
56
+ llm: LanguageModelLike | ((state: ToAnnotationRoot<A>["State"] & PreHookAnnotation["State"], runtime: Runtime<ToAnnotationRoot<C>["State"]>) => Promise<LanguageModelLike> | LanguageModelLike);
57
57
  /** A list of tools or a ToolNode. */
58
58
  tools: ToolNode | (ServerTool | ClientTool)[];
59
59
  /**
@@ -79,7 +79,14 @@ export type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObjec
79
79
  * This is now deprecated and will be removed in a future release.
80
80
  */
81
81
  prompt?: Prompt;
82
+ /**
83
+ * Additional state schema for the agent.
84
+ */
82
85
  stateSchema?: A;
86
+ /**
87
+ * An optional schema for the context.
88
+ */
89
+ contextSchema?: C;
83
90
  /** An optional checkpoint saver to persist the agent's state. */
84
91
  checkpointSaver?: BaseCheckpointSaver | boolean;
85
92
  /** An optional checkpoint saver to persist the agent's state. Alias of "checkpointSaver". */
@@ -130,6 +137,18 @@ export type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObjec
130
137
  * Useful for implementing human-in-the-loop, guardrails, validation, or other post-processing.
131
138
  */
132
139
  postModelHook?: RunnableLike<ToAnnotationRoot<A>["State"], ToAnnotationRoot<A>["Update"], LangGraphRunnableConfig>;
140
+ /**
141
+ * Determines the version of the graph to create.
142
+ *
143
+ * Can be one of
144
+ * - `"v1"`: The tool node processes a single message. All tool calls in the message are
145
+ * executed in parallel within the tool node.
146
+ * - `"v2"`: The tool node processes a single tool call. Tool calls are distributed across
147
+ * multiple instances of the tool node using the Send API.
148
+ *
149
+ * @default `"v1"`
150
+ */
151
+ version?: "v1" | "v2";
133
152
  };
134
153
  /**
135
154
  * Creates a StateGraph agent that relies on a chat model utilizing tool calling.
@@ -173,5 +192,5 @@ export type CreateReactAgentParams<A extends AnyAnnotationRoot | InteropZodObjec
173
192
  * // Returns the messages in the state at each step of execution
174
193
  * ```
175
194
  */
176
- export declare function createReactAgent<A extends AnyAnnotationRoot | InteropZodObject = typeof MessagesAnnotation, StructuredResponseFormat extends Record<string, any> = Record<string, any>>(params: CreateReactAgentParams<A, StructuredResponseFormat>): CompiledStateGraph<ToAnnotationRoot<A>["State"], ToAnnotationRoot<A>["Update"], any, typeof MessagesAnnotation.spec & ToAnnotationRoot<A>["spec"], ReturnType<typeof createReactAgentAnnotation<StructuredResponseFormat>>["spec"] & ToAnnotationRoot<A>["spec"]>;
195
+ export declare function createReactAgent<A extends AnyAnnotationRoot | InteropZodObject = typeof MessagesAnnotation, StructuredResponseFormat extends Record<string, any> = Record<string, any>, C extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot>(params: CreateReactAgentParams<A, StructuredResponseFormat, C>): CompiledStateGraph<ToAnnotationRoot<A>["State"], ToAnnotationRoot<A>["Update"], any, typeof MessagesAnnotation.spec & ToAnnotationRoot<A>["spec"], ReturnType<typeof createReactAgentAnnotation<StructuredResponseFormat>>["spec"] & ToAnnotationRoot<A>["spec"]>;
177
196
  export {};
@@ -4,7 +4,7 @@ import { StateGraph, } from "../graph/index.js";
4
4
  import { ToolNode } from "./tool_node.js";
5
5
  import { Annotation } from "../graph/annotation.js";
6
6
  import { messagesStateReducer } from "../graph/message.js";
7
- import { END, START } from "../constants.js";
7
+ import { END, Send, START } from "../constants.js";
8
8
  import { withAgentName } from "./agentName.js";
9
9
  function _convertMessageModifierToPrompt(messageModifier) {
10
10
  // Handle string or SystemMessage
@@ -286,7 +286,7 @@ const PreHookAnnotation = Annotation.Root({
286
286
  * ```
287
287
  */
288
288
  export function createReactAgent(params) {
289
- const { llm, tools, messageModifier, stateModifier, prompt, stateSchema, checkpointSaver, checkpointer, interruptBefore, interruptAfter, store, responseFormat, preModelHook, postModelHook, name, includeAgentName, } = params;
289
+ const { llm, tools, messageModifier, stateModifier, prompt, stateSchema, contextSchema, checkpointSaver, checkpointer, interruptBefore, interruptAfter, store, responseFormat, preModelHook, postModelHook, name, version = "v1", includeAgentName, } = params;
290
290
  let toolClasses;
291
291
  let toolNode;
292
292
  if (!Array.isArray(tools)) {
@@ -297,11 +297,10 @@ export function createReactAgent(params) {
297
297
  toolClasses = tools;
298
298
  toolNode = new ToolNode(toolClasses.filter(isClientTool));
299
299
  }
300
- let cachedModelRunnable = null;
301
- const getModelRunnable = async (llm) => {
302
- if (cachedModelRunnable) {
303
- return cachedModelRunnable;
304
- }
300
+ let cachedStaticModel = null;
301
+ const _getStaticModel = async (llm) => {
302
+ if (cachedStaticModel)
303
+ return cachedStaticModel;
305
304
  let modelWithTools;
306
305
  if (await _shouldBindTools(llm, toolClasses)) {
307
306
  modelWithTools = await _bindTools(llm, toolClasses);
@@ -311,10 +310,16 @@ export function createReactAgent(params) {
311
310
  }
312
311
  const promptRunnable = _getPrompt(prompt, stateModifier, messageModifier);
313
312
  const modelRunnable = includeAgentName === "inline"
314
- ? promptRunnable.pipe(withAgentName(modelWithTools, includeAgentName))
315
- : promptRunnable.pipe(modelWithTools);
316
- cachedModelRunnable = modelRunnable;
317
- return modelRunnable;
313
+ ? withAgentName(modelWithTools, includeAgentName)
314
+ : modelWithTools;
315
+ cachedStaticModel = promptRunnable.pipe(modelRunnable);
316
+ return cachedStaticModel;
317
+ };
318
+ const _getDynamicModel = async (llm, state, config) => {
319
+ const model = await llm(state, config);
320
+ return _getPrompt(prompt, stateModifier, messageModifier).pipe(includeAgentName === "inline"
321
+ ? withAgentName(model, includeAgentName)
322
+ : model);
318
323
  };
319
324
  // If any of the tools are configured to return_directly after running,
320
325
  // our graph needs to check if these were called
@@ -335,7 +340,12 @@ export function createReactAgent(params) {
335
340
  }
336
341
  const messages = [...state.messages];
337
342
  let modelWithStructuredOutput;
338
- const model = await _getModel(llm);
343
+ const model = typeof llm === "function"
344
+ ? await llm(state, config)
345
+ : await _getModel(llm);
346
+ if (!_isBaseChatModel(model)) {
347
+ throw new Error(`Expected \`llm\` to be a ChatModel with .withStructuredOutput() method, got ${model.constructor.name}`);
348
+ }
339
349
  if (typeof responseFormat === "object" && "schema" in responseFormat) {
340
350
  const { prompt, schema, ...options } = responseFormat;
341
351
  modelWithStructuredOutput = model.withStructuredOutput(schema, options);
@@ -352,7 +362,9 @@ export function createReactAgent(params) {
352
362
  const callModel = async (state, config) => {
353
363
  // NOTE: we're dynamically creating the model runnable here
354
364
  // to ensure that we can validate ConfigurableModel properly
355
- const modelRunnable = await getModelRunnable(llm);
365
+ const modelRunnable = typeof llm === "function"
366
+ ? await _getDynamicModel(llm, state, config)
367
+ : await _getStaticModel(llm);
356
368
  // TODO: Auto-promote streaming.
357
369
  const response = (await modelRunnable.invoke(getModelInputState(state), config));
358
370
  // add agent name to the AIMessage
@@ -362,7 +374,7 @@ export function createReactAgent(params) {
362
374
  return { messages: [response] };
363
375
  };
364
376
  const schema = stateSchema ?? createReactAgentAnnotation();
365
- const workflow = new StateGraph(schema).addNode("tools", toolNode);
377
+ const workflow = new StateGraph(schema, contextSchema).addNode("tools", toolNode);
366
378
  if (!("messages" in workflow._schemaDefinition)) {
367
379
  throw new Error("Missing required `messages` key in state schema.");
368
380
  }
@@ -394,11 +406,24 @@ export function createReactAgent(params) {
394
406
  .addEdge("agent", "post_model_hook")
395
407
  .addConditionalEdges("post_model_hook", (state) => {
396
408
  const { messages } = state;
397
- const lastMessage = messages[messages.length - 1];
398
- if (isAIMessage(lastMessage) && lastMessage.tool_calls?.length) {
409
+ const toolMessageIds = new Set(messages.filter(isToolMessage).map((msg) => msg.tool_call_id));
410
+ let lastAiMessage;
411
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
412
+ const message = messages[i];
413
+ if (isAIMessage(message)) {
414
+ lastAiMessage = message;
415
+ break;
416
+ }
417
+ }
418
+ const pendingToolCalls = lastAiMessage?.tool_calls?.filter((i) => i.id == null || !toolMessageIds.has(i.id)) ?? [];
419
+ const lastMessage = messages.at(-1);
420
+ if (pendingToolCalls.length > 0) {
421
+ if (version === "v2") {
422
+ return pendingToolCalls.map((toolCall) => new Send("tools", { ...state, lg_tool_call: toolCall }));
423
+ }
399
424
  return "tools";
400
425
  }
401
- if (isToolMessage(lastMessage))
426
+ if (lastMessage && isToolMessage(lastMessage))
402
427
  return entrypoint;
403
428
  if (responseFormat != null)
404
429
  return "generate_structured_response";
@@ -426,6 +451,9 @@ export function createReactAgent(params) {
426
451
  return END;
427
452
  }
428
453
  // there are function calls, we continue
454
+ if (version === "v2") {
455
+ return lastMessage.tool_calls.map((toolCall) => new Send("tools", { ...state, lg_tool_call: toolCall }));
456
+ }
429
457
  return "tools";
430
458
  }, conditionalMap({
431
459
  tools: "tools",
@@ -1 +1 @@
1
- {"version":3,"file":"react_agent_executor.js","sourceRoot":"","sources":["../../src/prebuilt/react_agent_executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react_agent_executor.js","sourceRoot":"","sources":["../../src/prebuilt/react_agent_executor.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ const messages_1 = require("@langchain/core/messages");
6
6
  const utils_js_1 = require("../utils.cjs");
7
7
  const errors_js_1 = require("../errors.cjs");
8
8
  const constants_js_1 = require("../constants.cjs");
9
+ const isBaseMessageArray = (input) => Array.isArray(input) && input.every(messages_1.isBaseMessage);
10
+ const isMessagesState = (input) => typeof input === "object" &&
11
+ input != null &&
12
+ "messages" in input &&
13
+ isBaseMessageArray(input.messages);
14
+ const isSendInput = (input) => typeof input === "object" && input != null && "lg_tool_call" in input;
9
15
  /**
10
16
  * A node that runs the tools requested in the last AIMessage. It can be used
11
17
  * either in StateGraph with a "messages" key or in MessageGraph. If multiple
@@ -149,51 +155,75 @@ class ToolNode extends utils_js_1.RunnableCallable {
149
155
  this.tools = tools;
150
156
  this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;
151
157
  }
158
+ async runTool(call, config) {
159
+ const tool = this.tools.find((tool) => tool.name === call.name);
160
+ try {
161
+ if (tool === undefined) {
162
+ throw new Error(`Tool "${call.name}" not found.`);
163
+ }
164
+ const output = await tool.invoke({ ...call, type: "tool_call" }, config);
165
+ if (((0, messages_1.isBaseMessage)(output) && output.getType() === "tool") ||
166
+ (0, constants_js_1.isCommand)(output)) {
167
+ return output;
168
+ }
169
+ return new messages_1.ToolMessage({
170
+ name: tool.name,
171
+ content: typeof output === "string" ? output : JSON.stringify(output),
172
+ tool_call_id: call.id,
173
+ });
174
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
175
+ }
176
+ catch (e) {
177
+ if (!this.handleToolErrors)
178
+ throw e;
179
+ if ((0, errors_js_1.isGraphInterrupt)(e)) {
180
+ // `NodeInterrupt` errors are a breakpoint to bring a human into the loop.
181
+ // As such, they are not recoverable by the agent and shouldn't be fed
182
+ // back. Instead, re-throw these errors even when `handleToolErrors = true`.
183
+ throw e;
184
+ }
185
+ return new messages_1.ToolMessage({
186
+ content: `Error: ${e.message}\n Please fix your mistakes.`,
187
+ name: call.name,
188
+ tool_call_id: call.id ?? "",
189
+ });
190
+ }
191
+ }
152
192
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
193
  async run(input, config) {
154
- const message = Array.isArray(input)
155
- ? input[input.length - 1]
156
- : input.messages[input.messages.length - 1];
157
- if (message?._getType() !== "ai") {
158
- throw new Error("ToolNode only accepts AIMessages as input.");
194
+ let outputs;
195
+ if (isSendInput(input)) {
196
+ outputs = [await this.runTool(input.lg_tool_call, config)];
159
197
  }
160
- const outputs = await Promise.all(message.tool_calls?.map(async (call) => {
161
- const tool = this.tools.find((tool) => tool.name === call.name);
162
- try {
163
- if (tool === undefined) {
164
- throw new Error(`Tool "${call.name}" not found.`);
165
- }
166
- const output = await tool.invoke({ ...call, type: "tool_call" }, config);
167
- if (((0, messages_1.isBaseMessage)(output) && output._getType() === "tool") ||
168
- (0, constants_js_1.isCommand)(output)) {
169
- return output;
170
- }
171
- else {
172
- return new messages_1.ToolMessage({
173
- name: tool.name,
174
- content: typeof output === "string" ? output : JSON.stringify(output),
175
- tool_call_id: call.id,
176
- });
177
- }
178
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
198
+ else {
199
+ let messages;
200
+ if (isBaseMessageArray(input)) {
201
+ messages = input;
179
202
  }
180
- catch (e) {
181
- if (!this.handleToolErrors) {
182
- throw e;
183
- }
184
- if ((0, errors_js_1.isGraphInterrupt)(e)) {
185
- // `NodeInterrupt` errors are a breakpoint to bring a human into the loop.
186
- // As such, they are not recoverable by the agent and shouldn't be fed
187
- // back. Instead, re-throw these errors even when `handleToolErrors = true`.
188
- throw e;
203
+ else if (isMessagesState(input)) {
204
+ messages = input.messages;
205
+ }
206
+ else {
207
+ throw new Error("ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.");
208
+ }
209
+ const toolMessageIds = new Set(messages
210
+ .filter((msg) => msg.getType() === "tool")
211
+ .map((msg) => msg.tool_call_id));
212
+ let aiMessage;
213
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
214
+ const message = messages[i];
215
+ if (message.getType() === "ai") {
216
+ aiMessage = message;
217
+ break;
189
218
  }
190
- return new messages_1.ToolMessage({
191
- content: `Error: ${e.message}\n Please fix your mistakes.`,
192
- name: call.name,
193
- tool_call_id: call.id ?? "",
194
- });
195
219
  }
196
- }) ?? []);
220
+ if (aiMessage?.getType() !== "ai") {
221
+ throw new Error("ToolNode only accepts AIMessages as input.");
222
+ }
223
+ outputs = await Promise.all(aiMessage.tool_calls
224
+ ?.filter((call) => call.id == null || !toolMessageIds.has(call.id))
225
+ .map((call) => this.runTool(call, config)) ?? []);
226
+ }
197
227
  // Preserve existing behavior for non-command tool outputs for backwards compatibility
198
228
  if (!outputs.some(constants_js_1.isCommand)) {
199
229
  return (Array.isArray(input) ? outputs : { messages: outputs });
@@ -235,7 +265,8 @@ function toolsCondition(state) {
235
265
  const message = Array.isArray(state)
236
266
  ? state[state.length - 1]
237
267
  : state.messages[state.messages.length - 1];
238
- if ("tool_calls" in message &&
268
+ if (message !== undefined &&
269
+ "tool_calls" in message &&
239
270
  (message.tool_calls?.length ?? 0) > 0) {
240
271
  return "tools";
241
272
  }
@@ -1,9 +1,10 @@
1
- import { BaseMessage } from "@langchain/core/messages";
1
+ import { BaseMessage, ToolMessage } from "@langchain/core/messages";
2
2
  import { RunnableConfig, RunnableToolLike } from "@langchain/core/runnables";
3
3
  import { DynamicTool, StructuredToolInterface } from "@langchain/core/tools";
4
+ import type { ToolCall } from "@langchain/core/messages/tool";
4
5
  import { RunnableCallable } from "../utils.js";
5
6
  import { MessagesAnnotation } from "../graph/messages_annotation.js";
6
- import { END } from "../constants.js";
7
+ import { END, Command } from "../constants.js";
7
8
  export type ToolNodeOptions = {
8
9
  name?: string;
9
10
  tags?: string[];
@@ -131,6 +132,7 @@ export declare class ToolNode<T = any> extends RunnableCallable<T, T> {
131
132
  handleToolErrors: boolean;
132
133
  trace: boolean;
133
134
  constructor(tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[], options?: ToolNodeOptions);
134
- protected run(input: any, config: RunnableConfig): Promise<T>;
135
+ protected runTool(call: ToolCall, config: RunnableConfig): Promise<ToolMessage | Command>;
136
+ protected run(input: unknown, config: RunnableConfig): Promise<T>;
135
137
  }
136
138
  export declare function toolsCondition(state: BaseMessage[] | typeof MessagesAnnotation.State): "tools" | typeof END;
@@ -2,6 +2,12 @@ import { ToolMessage, isBaseMessage, } from "@langchain/core/messages";
2
2
  import { RunnableCallable } from "../utils.js";
3
3
  import { isGraphInterrupt } from "../errors.js";
4
4
  import { END, isCommand, Command, _isSend } from "../constants.js";
5
+ const isBaseMessageArray = (input) => Array.isArray(input) && input.every(isBaseMessage);
6
+ const isMessagesState = (input) => typeof input === "object" &&
7
+ input != null &&
8
+ "messages" in input &&
9
+ isBaseMessageArray(input.messages);
10
+ const isSendInput = (input) => typeof input === "object" && input != null && "lg_tool_call" in input;
5
11
  /**
6
12
  * A node that runs the tools requested in the last AIMessage. It can be used
7
13
  * either in StateGraph with a "messages" key or in MessageGraph. If multiple
@@ -145,51 +151,75 @@ export class ToolNode extends RunnableCallable {
145
151
  this.tools = tools;
146
152
  this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;
147
153
  }
154
+ async runTool(call, config) {
155
+ const tool = this.tools.find((tool) => tool.name === call.name);
156
+ try {
157
+ if (tool === undefined) {
158
+ throw new Error(`Tool "${call.name}" not found.`);
159
+ }
160
+ const output = await tool.invoke({ ...call, type: "tool_call" }, config);
161
+ if ((isBaseMessage(output) && output.getType() === "tool") ||
162
+ isCommand(output)) {
163
+ return output;
164
+ }
165
+ return new ToolMessage({
166
+ name: tool.name,
167
+ content: typeof output === "string" ? output : JSON.stringify(output),
168
+ tool_call_id: call.id,
169
+ });
170
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
171
+ }
172
+ catch (e) {
173
+ if (!this.handleToolErrors)
174
+ throw e;
175
+ if (isGraphInterrupt(e)) {
176
+ // `NodeInterrupt` errors are a breakpoint to bring a human into the loop.
177
+ // As such, they are not recoverable by the agent and shouldn't be fed
178
+ // back. Instead, re-throw these errors even when `handleToolErrors = true`.
179
+ throw e;
180
+ }
181
+ return new ToolMessage({
182
+ content: `Error: ${e.message}\n Please fix your mistakes.`,
183
+ name: call.name,
184
+ tool_call_id: call.id ?? "",
185
+ });
186
+ }
187
+ }
148
188
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
149
189
  async run(input, config) {
150
- const message = Array.isArray(input)
151
- ? input[input.length - 1]
152
- : input.messages[input.messages.length - 1];
153
- if (message?._getType() !== "ai") {
154
- throw new Error("ToolNode only accepts AIMessages as input.");
190
+ let outputs;
191
+ if (isSendInput(input)) {
192
+ outputs = [await this.runTool(input.lg_tool_call, config)];
155
193
  }
156
- const outputs = await Promise.all(message.tool_calls?.map(async (call) => {
157
- const tool = this.tools.find((tool) => tool.name === call.name);
158
- try {
159
- if (tool === undefined) {
160
- throw new Error(`Tool "${call.name}" not found.`);
161
- }
162
- const output = await tool.invoke({ ...call, type: "tool_call" }, config);
163
- if ((isBaseMessage(output) && output._getType() === "tool") ||
164
- isCommand(output)) {
165
- return output;
166
- }
167
- else {
168
- return new ToolMessage({
169
- name: tool.name,
170
- content: typeof output === "string" ? output : JSON.stringify(output),
171
- tool_call_id: call.id,
172
- });
173
- }
174
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
194
+ else {
195
+ let messages;
196
+ if (isBaseMessageArray(input)) {
197
+ messages = input;
175
198
  }
176
- catch (e) {
177
- if (!this.handleToolErrors) {
178
- throw e;
179
- }
180
- if (isGraphInterrupt(e)) {
181
- // `NodeInterrupt` errors are a breakpoint to bring a human into the loop.
182
- // As such, they are not recoverable by the agent and shouldn't be fed
183
- // back. Instead, re-throw these errors even when `handleToolErrors = true`.
184
- throw e;
199
+ else if (isMessagesState(input)) {
200
+ messages = input.messages;
201
+ }
202
+ else {
203
+ throw new Error("ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.");
204
+ }
205
+ const toolMessageIds = new Set(messages
206
+ .filter((msg) => msg.getType() === "tool")
207
+ .map((msg) => msg.tool_call_id));
208
+ let aiMessage;
209
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
210
+ const message = messages[i];
211
+ if (message.getType() === "ai") {
212
+ aiMessage = message;
213
+ break;
185
214
  }
186
- return new ToolMessage({
187
- content: `Error: ${e.message}\n Please fix your mistakes.`,
188
- name: call.name,
189
- tool_call_id: call.id ?? "",
190
- });
191
215
  }
192
- }) ?? []);
216
+ if (aiMessage?.getType() !== "ai") {
217
+ throw new Error("ToolNode only accepts AIMessages as input.");
218
+ }
219
+ outputs = await Promise.all(aiMessage.tool_calls
220
+ ?.filter((call) => call.id == null || !toolMessageIds.has(call.id))
221
+ .map((call) => this.runTool(call, config)) ?? []);
222
+ }
193
223
  // Preserve existing behavior for non-command tool outputs for backwards compatibility
194
224
  if (!outputs.some(isCommand)) {
195
225
  return (Array.isArray(input) ? outputs : { messages: outputs });
@@ -230,7 +260,8 @@ export function toolsCondition(state) {
230
260
  const message = Array.isArray(state)
231
261
  ? state[state.length - 1]
232
262
  : state.messages[state.messages.length - 1];
233
- if ("tool_calls" in message &&
263
+ if (message !== undefined &&
264
+ "tool_calls" in message &&
234
265
  (message.tool_calls?.length ?? 0) > 0) {
235
266
  return "tools";
236
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool_node.js","sourceRoot":"","sources":["../../src/prebuilt/tool_node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool_node.js","sourceRoot":"","sources":["../../src/prebuilt/tool_node.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface LangGraphRunnableConfig<ContextType extends Record<string, any>
10
10
  store?: BaseStore;
11
11
  writer?: (chunk: unknown) => void;
12
12
  }
13
- export interface Runtime<ContextType extends Record<string, unknown> = Record<string, unknown>> {
13
+ export interface Runtime<ContextType = Record<string, unknown>> {
14
14
  context?: ContextType;
15
15
  store?: BaseStore;
16
16
  writer?: (chunk: unknown) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langchain/langgraph",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "LangGraph",
5
5
  "type": "module",
6
6
  "engines": {