a2aproject / a2aproject/a2a-python

[Bug]: raised InvalidAgentResponseError

未关闭
#1,113 4 条评论 0 个 reaction 已指派 1 人 已被 @rohityan 认领 在 GitHub 查看
component: server
主要语言
Python
星标
2.1k
派生
496
平均合并
4 天 17 小时
30 天内合并 PR
12

描述

### What happened?

If you create a task when the agent receives a query and you want to return the response as a Message with the task associated, you will get the following error:

`InvalidAgentResponseError: Received Message object in task mode. Use TaskStatusUpdateEvent or TaskArtifactUpdateEvent instead.`

It looks an architectural decision but into specification we can associate a task with message.
My idea was to retrieve the Message when I run a single call and TaskArtifacts during streaming operation. The diagram flows inside the specification shows that you can associate a task to the Message.

### Relevant log output

```shell
[ERROR] 2026-06-23 16:28:46 - Consumer[c5185e3b-e7b9-49d9-a078-85ee5c496b0d]: Failed (active_task:140)
Traceback (most recent call last):
File "a2a/server/agent_execution/active_task.py", line 132, in run
await self._process_event(event)
File "a2a/server/agent_execution/active_task.py", line 179, in _process_event
self._handle_message_event(event)
File "a2a/server/agent_execution/active_task.py", line 198, in _handle_message_event
raise InvalidAgentResponseError(
a2a.utils.errors.InvalidAgentResponseError: Received Message object in task mode. Use TaskStatusUpdateEvent or TaskArtifactUpdateEvent instead.
[ERROR] 2026-06-23 16:28:46 - Unhandled exception in v0.3 JSONRPCAdapter (jsonrpc_adapter:142)
Traceback (most recent call last):
File "a2a/compat/v0_3/jsonrpc_adapter.py", line 138, in handle_request
return await self._process_non_streaming_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/utils/version_validator.py", line 126, in async_wrapper
return await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/compat/v0_3/jsonrpc_adapter.py", line 157, in _process_non_streaming_request
res_msg = await self.handler.on_message_send(request_obj, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/compat/v0_3/request_handler.py", line 30, in on_message_send
task_or_message = await self.request_handler.on_message_send(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/utils/telemetry.py", line 242, in async_wrapper
result = await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/server/request_handlers/request_handler.py", line 285, in async_wrapper
return await method(self, params, context, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/server/request_handlers/default_request_handler_v2.py", line 242, in on_message_send
async for raw_event in active_task.subscribe(
File "a2a/server/agent_execution/active_task.py", line 639, in subscribe
raise event
File "a2a/server/agent_execution/active_task.py", line 132, in run
await self._process_event(event)
File "a2a/server/agent_execution/active_task.py", line 179, in _process_event
self._handle_message_event(event)
File "a2a/server/agent_execution/active_task.py", line 198, in _handle_message_event
raise InvalidAgentResponseError(
a2a.utils.errors.InvalidAgentResponseError: Received Message object in task mode. Use TaskStatusUpdateEvent or TaskArtifactUpdateEvent instead.
```

### Code of Conduct

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

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。