a2aproject / a2aproject/a2a-samples
langgraph Stream example is wrong
- 主要语言
- Jupyter Notebook
- 星标
- 1.8k
- 派生
- 751
- PR 合并指标
- 30 天内没有已合并 PR
描述
### 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
贡献指南
调研方向
The issue is in the file `samples/python/agents/langgraph/app/agent.py`. Look for the `stream` method and the line using `self.graph.stream`. Change it to use `self.graph.astream` for async iteration. Verify the fix by checking the linked repository for a reproduction case and ensure the async streaming works as expected.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- ai-infra-agents, documentation
- Issue 类型
- 缺陷
- 难度
- 1/5
- 预计耗时
- 1 小时以内
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 75/100