aws / aws/bedrock-agentcore-sdk-python

Long running task with streaming gets terminated with "WARNING:asyncio:socket.send() raised exception."

Đang mở
#88 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
761
Fork
147
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
7

Mô tả

I'm trying to execute some long running task, but every time when it reaches 6 min or 8 min duration it automatically cuts of connection and shows "WARNING:asyncio:socket.send() raised exception." in logs. I tried in locally its working fine, but on deployed version this is happening, I'm using "app.add_async_task()" as well as "app.complete_async_task()", they are getting triggered and its showing in logs, but in between after 6 min or 8 min it starts showing that error. My code looks something like this:

```
import os
import asyncio
from datetime import datetime
from strands import Agent, tool
from strands.models import OpenAIModel
from bedrock_agentcore import BedrockAgentCoreApp

@tool
async def background_task(minutes: int = 15) -> str:
for i in range(minutes):
await asyncio.sleep(60)
return f"Background task completed in ~{minutes} minutes."

model = OpenAIModel(
client_args={"api_key": os.getenv("OPENAI_API_KEY")},
model_id="gpt-5-mini",
reasoning={"effort": "medium"},
text={"verbosity": "low"},
)

agent = Agent(
model=model,
tools=[background_task],
instructions="Call the `background_task` tool for 15 minutes to simulate a long job."
)

app = BedrockAgentCoreApp()

@app.entrypoint
async def agent_invocation(payload):
task_id = None
user_message = payload.get("prompt", "No prompt found in input")
user_message += "\n\nUse background_task for 15 minutes."
stream = agent.stream_async(user_message)
task_id = app.add_async_task("Agent_stream")
try:
async for event in stream:
print(event)
yield event
finally:
if task_id:
app.complete_async_task(task_id)

if __name__ == "__main__":
app.run()
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với hàm app.entrypoint và các lệnh gọi add_async_task, complete_async_task và app.run được nêu trong issue. Tái hiện tác vụ streaming kéo dài 15 phút trong môi trường đã triển khai và so sánh với lần chạy cục bộ, tập trung vào thời điểm cảnh báo socket xuất hiện. Được xem là hoàn tất khi stream đã triển khai vẫn có thể sử dụng cho tác vụ chạy dài hoặc giới hạn của runtime và cách xử lý được hỗ trợ đã được ghi lại.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
aws, python
Lĩnh vực
api, backend, cloud
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.