-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Is there an existing issue for this?
- I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- I have reviewed the documentation https://docs.sentry.io/
- I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases
How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
@sentry/browser
SDK Version
^10.40.0
Framework Version
No response
Link to Sentry event
Reproduction Example/SDK Setup
No response
Steps to Reproduce
const CustomState = Annotation.Root({
idea: Annotation(),
expanded: Annotation(),
validated: Annotation(),
});
const graph = new StateGraph(CustomState)
.addNode("expand", expandNode)
.addEdge(START, "expand")
.addEdge("expand", END);
Sentry.instrumentLangGraph(graph, { recordInputs: true, recordOutputs: true });
const compiled = graph.compile({ name: "my_agent" });
const result = await compiled.invoke({ idea: "test idea" });Expected Result
The invoke_agent span should contain the graph's input ({ idea: "test idea" }) and output state as span attributes.
Actual Result
The invoke_agent span has no input or output data. No error or warning is logged.
Additional Context
instrumentCompiledGraphInvoke hardcodes extraction for MessagesAnnotation:
const inputMessages = args.length > 0 ? ((args[0])?.messages ?? []) : [];It looks for args[0].messages, which only exists when using MessagesAnnotation. Custom state keys (like idea, expanded, etc.) are ignored. The OTEL gen_ai.input.messages / gen_ai.output.messages attributes are message-array-oriented by design, but there is no fallback to record arbitrary state.
Priority
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it.