getsentry / getsentry/sentry-javascript

`instrumentLangGraph` input/output recording only works with `MessagesAnnotation`

Abierto
#19,628 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Browser Bug
Lenguaje dominante
TypeScript
Estrellas
8.7k
Forks
1.8k
Merge medio
1 d 17 h
PR fusionados (30 d)
515

Descripción

### Is there an existing issue for this?

- [x] I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- [x] I have reviewed the documentation https://docs.sentry.io/
- [x] 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

https://pri-dogfooding-ai.sentry.io/insights/ai-agents/?project=4510951776059472&statsPeriod=30d&trace=5eb7a6719e6a45dd8b4accab1881c7bd&span=a2fd3ab2120a6698&trace-timestamp=1772622965

### Reproduction Example/SDK Setup

_No response_

### Steps to Reproduce

```js
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`:

```js
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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.