mirror of
https://github.com/langchain-ai/langgraphjs.git
synced 2026-07-21 16:45:24 -04:00
bug: BaseChatModel.invoke errors with a null chatMessage #195
Closed
opened 2026-02-15 17:17:07 -05:00 by yindo
·
9 comments
No Branch/Tag Specified
main
fix/usestream-hydrate-null-thread-reconnect
chore/dependabot-docker-root-coverage
open-swe/accept-semver-ranges
wfh/fix_store
cb/reconnect-upstream
nh/integration-managed-runtime-tests
open-swe/usestream-status-enum
hunter/bump-checkpoint-dep
cb/bundle-uuid-cjs-66cc
cb/dedup-stream-sse-decoder-96cd
dependabot/npm_and_yarn/internal/bench/npm_and_yarn-18a2f9e291
cb/normalize-openai-function-call-tool-calls
cb/tmp
cb/remove-docs
nh/sdk-normalize-base-message-v2
nh/sdk-reencode-tool-call-chunks
nh/sdk-normalize-base-message
nh/stream-v2-final-split
open-swe/c802e0ea-c9e5-c8c6-824a-c065dd2bfd6f
hunter/memory-investigation-2
ramonn/checkpoint-durable-objects
open-swe/776ee51f-5e2f-752b-acb1-4584467156d4
hunter/issue-2303-regression-test
cb/api-stream-reducer
open-swe/77892c09-3e94-9f8a-5f5b-3d2787c5f6b9
cb/in-process-streaming
cb/langgraph-streaming-protocol-683b
cb/protocol-v2-tests-6203
cb/fix-custom-submit-options-ad3e
cb/protocol-thread-binding-clean-6303
hunter/keep-important-ids
cb/fix-protocol-thread-binding-6303
cb/react-protocol-runtime-8ca7
cb/pregel-eli5-doc-1103
cb/-bc-5a4705b9-850e-4f7d-95ea-67c0741e9977-92c3
cb/pr-branch-rebase-4816
cb/-bc-2d03efa3-5ef0-4b68-bf53-63005b8e748f-8924-angular-svelte
cb/-bc-2d03efa3-5ef0-4b68-bf53-63005b8e748f-8924
cb/langchain-react-ssr-proposal-972b
cb/agent-streaming-protocol-design-25d1
cb/custom-transport-queue-parity-2bb9
cb/frontend-integration-strategy-64ce
brydar/fix/parallel-interrupt-accumulation
cb/agent-multi-app-support-d2d0
cb/svelte-5-idiomatic-patterns-16ed
cb/frontend-sdks-developer-experience-8030
cb/ui-packages-idiomatic-review-35a4
hunter/fix-vercel-ci
fix/test-exports-vercel-next16-lint
dependabot/npm_and_yarn/internal/environment_tests/test-exports-vercel/npm_and_yarn-229c191f58
cb/stream-protocol-improvements
jdr/fix-sdk-errors
cb/async_hooks-fix
cwlbraa/fix-getmessages-null-state
chore/fix-dependabot-config
hunter/fix-symbol-types
hunter/symbol-fix
hunter/symbol-annotations
test-ci-trigger
hunter/lg-resolve-symbols
colifran/tool-stream-types
colifran/tool-stream-types-temp
dqbd/sdk-ui-other-fw
colifran/tool-streaming-example
colifran/tool-stream-example
fix/security-alerts-2026-02-19
cb/perf-improvements
jk/fix-rolldown-panic
cb/better-node-version-definition
cb/tsdown-setup
cb/create-changesets
cb/pnpm-fix4
cb/pnpm-fix2
wfh/fix_release
demo
cb/browser-tools
v0.3
pr/christymanthara/1787
cb/type-safe-streaming
mdrxy/delete-docs
changeset-release/v1
v1
v0
rd3
isaac/vb
dqbd/remove-get-graph-non-async
dqbd/serde-v1
dqbd/1.0.0-alpha.1
dqbd/max-version-cache
parker/custom-studio-url-cli
dqbd/standard-schema
dqbd/create-agent-middleware
dqbd/1.0.0-alpha
parker/api-linting
dqbd/prebuilt-restart-subgraph
dqbd/api-thread-join-stream
dqbd/persist-resume-map-values
wfh/default
dqbd/node-recursion-limit
sam_support_description_for_mcp
hunter/dedupe-signal-listeners
wfh/studio_auth_access
wfh/consistent_kind
release
brace/pass-update-generic-msgs-zod
dqbd/merge-api
hunter/zod-intersection
vb/add-forward-message-tool
dqbd/zod-metadata-json-schema-extra
wfh/js_node_finished
ben/checkpoint-metadata-custom-fields
dqbd/release-0.2.56-second
ben/docs-learning-path
ben/typed-exec
vb/support-checkpointer-true
dqbd/stream-mode-messages-input-no-emit
dqbd/tsc-module-es2020
jacob/nits
cc/docs_layout
dqbd/tasks-results
brace/update-how-to-hitl-index
jacob/sendv2
dqbd/command-goto
jacob/stream_messages
jacob/supabase
brace/updated-mem-conceptual
471
allan/first-agent-tutorial
brace/req-config
nc/23sep/stream-output
allan/subgraphs
brace/stores
brace/memory
jacob/rc
isaac/contextchannel
brace/subgraphs
wfh/typedocs
0.1
isaac/doclink
jacob/mongo
testing
nc/11aug/archs
jacob/streaming_tool_call
jacob/messagesstate
wfh/pae
wfh/moore_tutorials_tsc
wfh/drd
wfh/edgy
brace/langgraph-self-rag-oss
brace/prebuilt
brace/state-graph
brace/bump-lc-core
brace/typing
brace/examples
nc/fixup
brace/package-infra
brace/allow-channel-string
@langchain/vue@1.0.28
@langchain/svelte@1.0.28
@langchain/react@1.0.28
@langchain/langgraph-sdk@1.9.27
@langchain/angular@1.0.28
@langchain/vue@1.0.27
@langchain/svelte@1.0.27
@langchain/react@1.0.27
@langchain/langgraph@1.4.8
@langchain/langgraph-ui@1.4.3
@langchain/langgraph-sdk@1.9.26
@langchain/langgraph-cli@1.4.3
@langchain/langgraph-api@1.4.3
@langchain/angular@1.0.27
@langchain/langgraph-ui@1.4.2
@langchain/langgraph-cli@1.4.2
@langchain/langgraph-api@1.4.2
@langchain/langgraph@1.4.7
@langchain/vue@1.0.26
@langchain/svelte@1.0.26
@langchain/react@1.0.26
@langchain/langgraph@1.4.6
@langchain/langgraph-ui@1.4.1
@langchain/langgraph-sdk@1.9.25
@langchain/langgraph-cli@1.4.1
@langchain/langgraph-checkpoint@1.1.3
@langchain/langgraph-checkpoint-postgres@1.0.4
@langchain/langgraph-api@1.4.1
@langchain/angular@1.0.26
@langchain/vue@1.0.25
@langchain/svelte@1.0.25
@langchain/react@1.0.25
@langchain/langgraph@1.4.5
@langchain/langgraph-ui@1.4.0
@langchain/langgraph-sdk@1.9.24
@langchain/langgraph-cli@1.4.0
@langchain/langgraph-checkpoint-mongodb@1.4.0
@langchain/langgraph-api@1.4.0
@langchain/angular@1.0.25
@langchain/vue@1.0.24
@langchain/svelte@1.0.24
@langchain/react@1.0.24
@langchain/langgraph@1.4.4
@langchain/langgraph-sdk@1.9.23
@langchain/langgraph-checkpoint@1.1.2
@langchain/langgraph-checkpoint-redis@1.0.10
@langchain/angular@1.0.24
@langchain/vue@1.0.23
@langchain/svelte@1.0.23
@langchain/react@1.0.23
@langchain/langgraph@1.4.2
@langchain/langgraph-ui@1.3.1
@langchain/langgraph-supervisor@1.1.1
@langchain/langgraph-sdk@1.9.22
@langchain/langgraph-cli@1.3.1
@langchain/langgraph-checkpoint@1.1.1
@langchain/langgraph-checkpoint-redis@1.0.9
@langchain/langgraph-api@1.3.1
@langchain/angular@1.0.23
@langchain/vue@1.0.22
@langchain/svelte@1.0.22
@langchain/react@1.0.22
@langchain/langgraph@1.4.1
@langchain/langgraph-supervisor@1.1.0
@langchain/langgraph-sdk@1.9.21
@langchain/angular@1.0.22
@langchain/vue@1.0.21
@langchain/svelte@1.0.21
@langchain/react@1.0.21
@langchain/langgraph@1.4.0
@langchain/langgraph-checkpoint@1.1.0
@langchain/langgraph-checkpoint-sqlite@1.0.3
@langchain/langgraph-checkpoint-redis@1.0.8
@langchain/langgraph-checkpoint-postgres@1.0.3
@langchain/langgraph-checkpoint-mongodb@1.3.4
@langchain/angular@1.0.21
@langchain/vue@1.0.20
@langchain/svelte@1.0.20
@langchain/react@1.0.20
@langchain/langgraph-sdk@1.9.20
@langchain/angular@1.0.20
@langchain/vue@1.0.19
@langchain/svelte@1.0.19
@langchain/react@1.0.19
@langchain/langgraph@1.3.7
@langchain/langgraph-ui@1.3.0
@langchain/langgraph-sdk@1.9.19
@langchain/langgraph-cli@1.3.0
@langchain/langgraph-checkpoint-validation@1.1.0
@langchain/langgraph-checkpoint-sqlite@1.0.2
@langchain/langgraph-api@1.3.0
@langchain/angular@1.0.19
@langchain/vue@1.0.18
@langchain/svelte@1.0.18
@langchain/react@1.0.18
@langchain/langgraph-sdk@1.9.18
@langchain/angular@1.0.18
@langchain/vue@1.0.17
@langchain/svelte@1.0.17
@langchain/react@1.0.17
@langchain/langgraph@1.3.6
@langchain/langgraph-ui@1.2.5
@langchain/langgraph-sdk@1.9.17
@langchain/langgraph-cli@1.2.5
@langchain/langgraph-api@1.2.5
@langchain/angular@1.0.17
@langchain/vue@1.0.16
@langchain/svelte@1.0.16
@langchain/react@1.0.16
@langchain/langgraph@1.3.5
@langchain/langgraph-sdk@1.9.16
@langchain/angular@1.0.16
@langchain/vue@1.0.15
@langchain/svelte@1.0.15
@langchain/react@1.0.15
@langchain/langgraph-sdk@1.9.15
@langchain/angular@1.0.15
@langchain/vue@1.0.14
@langchain/svelte@1.0.14
@langchain/react@1.0.14
@langchain/langgraph-sdk@1.9.14
@langchain/angular@1.0.14
@langchain/vue@1.0.13
@langchain/svelte@1.0.13
@langchain/react@1.0.13
@langchain/langgraph-sdk@1.9.13
@langchain/angular@1.0.13
@langchain/vue@1.0.12
@langchain/svelte@1.0.12
@langchain/react@1.0.12
@langchain/langgraph@1.3.4
@langchain/langgraph-sdk@1.9.12
@langchain/langgraph-checkpoint-mongodb@1.3.3
@langchain/angular@1.0.12
@langchain/vue@1.0.11
@langchain/svelte@1.0.11
@langchain/react@1.0.11
@langchain/langgraph@1.3.3
@langchain/langgraph-ui@1.2.4
@langchain/langgraph-supervisor@1.0.4
@langchain/langgraph-sdk@1.9.11
@langchain/langgraph-cli@1.2.4
@langchain/langgraph-checkpoint@1.0.4
@langchain/langgraph-checkpoint-redis@1.0.7
@langchain/langgraph-checkpoint-postgres@1.0.2
@langchain/langgraph-checkpoint-mongodb@1.3.2
@langchain/langgraph-api@1.2.4
@langchain/angular@1.0.11
@langchain/vue@1.0.10
@langchain/svelte@1.0.10
@langchain/react@1.0.10
@langchain/langgraph-ui@1.2.3
@langchain/langgraph-sdk@1.9.10
@langchain/langgraph-cli@1.2.3
@langchain/langgraph-checkpoint@1.0.3
@langchain/langgraph-checkpoint-redis@1.0.6
@langchain/langgraph-api@1.2.3
@langchain/angular@1.0.10
@langchain/vue@1.0.9
@langchain/svelte@1.0.9
@langchain/react@1.0.9
@langchain/langgraph-sdk@1.9.9
@langchain/angular@1.0.9
@langchain/vue@1.0.8
@langchain/svelte@1.0.8
@langchain/react@1.0.8
@langchain/langgraph-sdk@1.9.8
@langchain/angular@1.0.8
@langchain/vue@1.0.7
@langchain/svelte@1.0.7
@langchain/react@1.0.7
@langchain/langgraph-sdk@1.9.7
@langchain/angular@1.0.7
@langchain/vue@1.0.6
@langchain/svelte@1.0.6
@langchain/react@1.0.6
@langchain/langgraph-sdk@1.9.6
@langchain/angular@1.0.6
@langchain/vue@1.0.5
@langchain/svelte@1.0.5
@langchain/react@1.0.5
@langchain/langgraph-supervisor@1.0.3
@langchain/langgraph-sdk@1.9.5
@langchain/langgraph-checkpoint-redis@1.0.5
@langchain/angular@1.0.5
@langchain/vue@1.0.4
@langchain/svelte@1.0.4
@langchain/react@1.0.4
@langchain/langgraph@1.3.2
@langchain/langgraph-sdk@1.9.4
@langchain/angular@1.0.4
@langchain/vue@1.0.3
@langchain/svelte@1.0.3
@langchain/langgraph@1.3.1
@langchain/langgraph-swarm@1.0.2
@langchain/langgraph-supervisor@1.0.2
@langchain/angular@1.0.3
@langchain/vue@1.0.2
@langchain/svelte@1.0.2
@langchain/react@1.0.2
@langchain/langgraph-sdk@1.9.2
@langchain/angular@1.0.2
@langchain/vue@1.0.1
@langchain/angular@1.0.1
@langchain/vue@1.0.0
@langchain/react@1.0.0
@langchain/langgraph-cli@1.2.0
@langchain/langgraph-api@1.2.0
@langchain/angular@1.0.0
@langchain/vue@0.4.7
@langchain/svelte@0.4.7
@langchain/react@0.3.5
@langchain/angular@0.4.7
@langchain/vue@0.4.6
@langchain/svelte@0.4.6
@langchain/react@0.3.4
@langchain/langgraph-sdk@1.8.10
@langchain/angular@0.4.6
@langchain/langgraph-checkpoint-mongodb@1.3.0
@langchain/langgraph@1.2.9
@langchain/langgraph-sdk@1.8.9
@langchain/langgraph@1.2.8
@langchain/vue@0.4.5
@langchain/svelte@0.4.5
@langchain/react@0.3.3
@langchain/langgraph-sdk@1.8.8
@langchain/angular@0.4.5
@langchain/vue@0.4.4
@langchain/svelte@0.4.4
@langchain/angular@0.4.4
@langchain/vue@0.4.3
@langchain/svelte@0.4.3
@langchain/angular@0.4.3
@langchain/vue@0.4.2
@langchain/svelte@0.4.2
@langchain/react@0.3.2
@langchain/langgraph-sdk@1.8.7
@langchain/angular@0.4.2
@langchain/vue@0.4.1
@langchain/svelte@0.4.1
@langchain/react@0.3.1
@langchain/langgraph-sdk@1.8.6
@langchain/angular@0.4.1
@langchain/vue@0.4.0
@langchain/svelte@0.4.0
@langchain/react@0.3.0
@langchain/langgraph@1.2.7
@langchain/angular@0.4.0
@langchain/vue@0.3.4
@langchain/svelte@0.3.2
@langchain/react@0.2.4
@langchain/langgraph-sdk@1.8.5
@langchain/angular@0.3.3
@langchain/vue@0.3.3
@langchain/langgraph-sdk@1.8.4
@langchain/vue@0.3.2
@langchain/langgraph-sdk@1.8.3
@langchain/angular@0.3.2
@langchain/react@0.2.3
@langchain/langgraph-sdk@1.8.2
@langchain/langgraph-ui@1.1.17
@langchain/langgraph-cli@1.1.17
@langchain/langgraph-api@1.1.17
@langchain/vue@0.3.1
@langchain/svelte@0.3.1
@langchain/react@0.2.2
@langchain/langgraph@1.2.6
@langchain/langgraph-sdk@1.8.1
@langchain/angular@0.3.1
@langchain/vue@0.3.0
@langchain/svelte@0.3.0
@langchain/react@0.2.1
@langchain/langgraph@1.2.5
@langchain/langgraph-sdk@1.8.0
@langchain/angular@0.3.0
@langchain/vue@0.2.0
@langchain/svelte@0.2.0
@langchain/react@0.2.0
@langchain/langgraph@1.2.4
@langchain/langgraph-sdk@1.7.5
@langchain/angular@0.2.0
@langchain/langgraph-sdk@1.7.4
@langchain/langgraph@1.2.3
@langchain/langgraph-ui@1.1.16
@langchain/langgraph-sdk@1.7.3
@langchain/langgraph-cli@1.1.16
@langchain/langgraph-checkpoint@1.0.1
@langchain/langgraph-checkpoint-redis@1.0.4
@langchain/langgraph-api@1.1.16
@langchain/langgraph-sdk@1.7.2
@langchain/vue@0.1.3
@langchain/svelte@0.1.3
@langchain/react@0.1.3
@langchain/langgraph-sdk@1.7.1
@langchain/angular@0.1.3
@langchain/vue@0.1.2
@langchain/svelte@0.1.2
@langchain/react@0.1.2
@langchain/angular@0.1.2
@langchain/langgraph@1.2.1
@langchain/langgraph-ui@1.1.15
@langchain/langgraph-cli@1.1.15
@langchain/langgraph-checkpoint-redis@1.0.3
@langchain/langgraph-api@1.1.15
@langchain/langgraph@1.2.0
@langchain/langgraph-ui@1.1.14
@langchain/langgraph-sdk@1.6.5
@langchain/langgraph-cli@1.1.14
@langchain/langgraph-checkpoint-mongodb@1.2.0
@langchain/langgraph-api@1.1.14
@langchain/langgraph-sdk@1.6.4
@langchain/langgraph-checkpoint-postgres@1.0.1
@langchain/langgraph-sdk@1.6.3
@langchain/langgraph@1.1.5
@langchain/langgraph-ui@2.0.0
@langchain/langgraph-sdk@2.0.0
@langchain/langgraph-cli@2.0.0
@langchain/langgraph-api@2.0.0
@langchain/langgraph-ui@1.1.13
@langchain/langgraph-sdk@1.6.2
@langchain/langgraph-cli@1.1.13
@langchain/langgraph-api@1.1.13
@langchain/langgraph-sdk@1.6.1
@langchain/langgraph@1.1.4
@langchain/langgraph-sdk@1.6.0
@langchain/langgraph-ui@1.1.12
@langchain/langgraph-sdk@1.5.6
@langchain/langgraph-cli@1.1.12
@langchain/langgraph-checkpoint-redis@1.0.2
@langchain/langgraph-checkpoint-mongodb@1.1.7
@langchain/langgraph-api@1.1.12
@langchain/langgraph@1.1.3
@langchain/langgraph-checkpoint-sqlite@1.0.1
@langchain/langgraph@1.1.2
@langchain/langgraph@1.1.1
@langchain/langgraph-sdk@1.5.5
@langchain/langgraph@1.1.0
@langchain/langgraph-sdk@1.5.4
@langchain/langgraph-sdk@1.5.3
@langchain/langgraph-checkpoint-validation@1.0.9
@langchain/langgraph-sdk@1.5.2
@langchain/langgraph-sdk@1.5.1
@langchain/langgraph@1.0.15
@langchain/langgraph-ui@1.1.11
@langchain/langgraph-sdk@1.5.0
@langchain/langgraph-cli@1.1.11
@langchain/langgraph-api@1.1.11
create-langgraph@1.1.5
@langchain/langgraph@1.0.14
@langchain/langgraph-ui@1.1.10
@langchain/langgraph-sdk@1.4.6
@langchain/langgraph-cli@1.1.10
@langchain/langgraph-checkpoint-validation@1.0.8
@langchain/langgraph-checkpoint-mongodb@1.1.6
@langchain/langgraph-api@1.1.10
@langchain/langgraph-api@1.1.9
@langchain/langgraph@1.0.13
@langchain/langgraph-ui@1.1.9
@langchain/langgraph-sdk@1.4.5
@langchain/langgraph-cli@1.1.9
@langchain/langgraph-checkpoint-validation@1.0.7
@langchain/langgraph-checkpoint-mongodb@1.1.5
create-langgraph@1.1.4
@langchain/langgraph-api@1.1.8
@langchain/langgraph@1.0.12
@langchain/langgraph-ui@1.1.8
@langchain/langgraph-sdk@1.4.4
@langchain/langgraph-cli@1.1.8
@langchain/langgraph-checkpoint-validation@1.0.6
@langchain/langgraph-checkpoint-mongodb@1.1.4
create-langgraph@1.1.3
@langchain/langgraph-ui@0.0.43
@langchain/langgraph-cli@0.0.43
@langchain/langgraph-api@0.0.43
@langchain/langgraph-api@0.0.42
@langchain/langgraph-ui@0.0.42
@langchain/langgraph-cli@0.0.42
@langchain/langgraph-sdk@0.0.90
0.3.6
0.3.5
0.3.4
supervisor==0.0.14
0.3.3
@langgraph-supervisor@0.0.14
0.3.2
0.3.1
0.3.0
checkpoint==0.0.18
swarm==0.0.4
supervisor==0.0.13
cua==0.0.6
0.2.74
0.2.73
checkpoint-sqlite==0.1.5
supervisor==0.0.12
0.2.72
0.2.71
0.2.70
0.2.69
checkpoint-postgres==0.0.5
@langchain/langgraph-checkpoint-postgres==0.0.5
0.2.68
0.2.67
0.2.66
0.2.65
0.2.64
supervisor==0.0.11
supervisor==0.0.10
0.2.63
0.2.57
0.2.56
0.2.35
0.2.59
0.2.40
0.2.58
0.2.62
0.2.61
0.2.60
0.2.55
0.2.54
checkpoint==0.0.16
swarm==0.0.3
supervisor==0.0.9
swarm==0.0.2
supervisor==0.0.8
0.2.53
0.2.52
swarm==0.0.1
supervisor==0.0.7
0.2.51
supervisor==0.0.6
supervisor==0.0.5
0.2.50
0.2.49
0.2.48
0.2.47
checkpoint-mongodb==0.0.6
checkpoint-postgres==0.0.4
0.2.46
0.2.45
0.2.44
checkpoint-postgres==0.0.3
checkpoint-sqlite==0.1.4
checkpoint-mongodb=0.0.5
checkpoint==0.0.15
0.2.43
0.2.42
checkpoint==0.0.14
0.2.41
0.2.39
0.2.38
0.2.37
0.2.36
0.2.34
0.2.33
0.2.32
0.2.31
0.2.30
0.2.29
0.2.28
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
No Label
docs-needed
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: langchain-ai/langgraphjs#195
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @bguiz on GitHub (Mar 10, 2025).
The following error gets output upon a
graph.invokeafter a node in which there was aninterrupt:To reproduce, using 2 different approaches:
@bguiz commented on GitHub (Mar 10, 2025):
Here is a Stackoverflow question where I ask about this, and the above are the implementations of the two solutions provided in an answer that do not require rewriting history (i.e. going back to a previous check point in the graph execution).
https://stackoverflow.com/q/79471648/194982
@benjamincburns commented on GitHub (Mar 13, 2025):
@bguiz thanks for sharing code samples, but the samples that you shared are quite complex, and they depend on a file that isn't in the gist (
./api/openrouter-openai.js). Would it be possible for you to share a more minimal reproduction of the issue that you're experiencing? If not, could you please add youropenrouter-openaiimplementation to the gist?It would also help if you could please share the langgraphjs and langchain core versions that you're running against, and/or advise whether the issue is present when running against current latest versions of each?
Finally, are you able to test against the latest version of the official
@langchain/openaiintegration? If you're using openrouter, I believe you should be able to point it at openrouter by configuring the base URL as shown here. Also here are the API reference docs for the object passed to theChatOpenAIconstructor, and here is the API reference for theconfigurationfield of that object@benjamincburns commented on GitHub (Mar 13, 2025):
@bguiz looking again, this time at the StackOverflow question you posted. I haven't executed your code, but I think that the issue could be that on refusal you're not inserting a
ToolMessageinto themessagesstate. There are some docs on this hereYou can handle this on refusal by returning a command with an
update:field that has a tool message. For example:Also bear in mind that this implementation is not handling parallel tool calls. To handle parallel tool calls you have a few options.
ToolMessageper tool call, as shown aboveinterruptonce for the whole batch of callstoolsif any calls are approved (orENDif no calls are approved)Sendobject in thegotofield and send a copy of theAIMessagewith the tool calls filtered down to just the approved list.ToolMessagein theupdatefield of the command as above - one for each declined call.Sendin your conditional edge to fan out the tool calls to thetoolsnode (by sending a filtered copy of theAIMessage, as mentioned above) and do theinterruptin the tool handler.Sendhere you would wind up processing all tool messages in the same node, which would cause the approved tool calls to be reprocessed for every time the graph is interrupted after that particular tool call is approved.Here's a hastily-written example of how you could write a wrapper that requires approval for individual tool handlers for use with the "Option 2" approach mentioned in the last bullet above:
@benjamincburns commented on GitHub (Mar 13, 2025):
flagged
docs-neededbecause I think it'd be useful if we improved the tool call review howto to address some of the things mentioned here.@bguiz commented on GitHub (Mar 13, 2025):
👋 hey @benjamincburns thanks for taking the time to respond!
The full implementation is here: https://github.com/hedera-dev/hedera-ai-agent-workshop-langgraph/blob/main/api/openrouter-openai.js
The full implementation would be something like this: https://github.com/hedera-dev/hedera-ai-agent-workshop-langgraph/blob/main/agent.js
(But replacing
createReactAgentwith an instance ofStateGraph, as I have in the gist)@bguiz commented on GitHub (Mar 13, 2025):
I'm using these versions:
I'll update to the latest and report back!
Yeah this is precisely what I'm doing, with OpenRouter: https://github.com/hedera-dev/hedera-ai-agent-workshop-langgraph/blob/main/api/openrouter-openai.js
@bguiz commented on GitHub (Mar 13, 2025):
This sounds promising - it isn't one of the options that was in the Stackoverflow response that I got.
Will try it out and get back to you!
@bguiz commented on GitHub (Mar 13, 2025):
Yes, I think specifically, I'd say that:
ToolMessagewithin aCommandto show how to use this within the context of aninterrupt(taken from one of your responses above)@bguiz commented on GitHub (Mar 14, 2025):
@benjamincburns thanks so much - the
Commandwith aToolMessagewithstatusaserrordid the trick!