a2aproject / a2aproject/a2a-samples

langgraph Stream example is wrong

Abierto
#309 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Jupyter Notebook
Estrellas
1.8k
Forks
751
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### What happened?

Hi team,

Bug: stream does not work without async for – should use astream for async iteration

Code:
samples/python/agents/langgraph/app/agent.py

I encountered an issue while using the `stream` function in an async context. Here's the original code I used:

```python
async def stream(self, query, context_id) -> AsyncIterable[dict[str, Any]]:
inputs = {'messages': [('user', query)]}
config = {'configurable': {'thread_id': context_id}}

for item in self.graph.stream(inputs, config, stream_mode='values'):
message = item['messages'][-1]
if (
isinstance(message, AIMessage)
and message.tool_calls
and len(message.tool_calls) > 0
):
...
```

However, this **does not stream the response** as expected. It only works properly when I change the line to:

```python
async for item in self.graph.astream(inputs, config, stream_mode='values'):
```

It looks like `graph.stream` returns a synchronous iterator, while `graph.astream` is the correct async generator required for streaming in async functions.

For a complete test and reproduction case, please refer to my repo:
👉 [https://github.com/johnson7788/LangGraphA2A](https://github.com/johnson7788/LangGraphA2A)

Hope this helps improve the documentation or implementation!

Thanks!

### Relevant log output

```shell

```

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

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.