Skip to content

[Feat]: [Feat]: Add metadata parameter to TaskUpdater.update_status method #364

Description

@yokonao

Is your feature request related to a problem? Please describe.

Currently, the TaskUpdater.update_status() method does not allow passing metadata, even though the underlying TaskStatusUpdateEvent type already has a metadata field.

When implementing agents, there are situations where we need to attach additional context or custom data to status updates
(e.g., progress percentages, error codes, or domain-specific information). Without this capability, we have to work around the limitation by using the lower level API EventQueue.enqueue_event.

Describe the solution you'd like

Add an optional metadata parameter to the TaskUpdater.update_status() method:

async def update_status(
    self,
    state: TaskState,
    message: Message | None = None,
    final: bool = False,
    timestamp: str | None = None,
    metadata: dict[str, Any] | None = None,  # New parameter
) -> None:

The implementation would pass this metadata to the TaskStatusUpdateEvent:

await self.event_queue.enqueue_event(
    TaskStatusUpdateEvent(
        task_id=self.task_id,
        context_id=self.context_id,
        final=final,
        metadata=metadata,  # Pass metadata here
        status=TaskStatus(
            state=state,
            message=message,
            timestamp=current_timestamp,
        ),
    )
  )

This change would:

  • Maintain backward compatibility (optional parameter)
  • Provide consistency with other TaskUpdater methods
  • Enable developers to attach metadata to status updates

Describe alternatives you've considered

N/A

Additional context

N/A

Code of Conduct

  • I agree to follow this project's Code of Conduct

Activity

  1. added theissue type on Jul 29, 2025
  2. added a commit that references this issue on Jul 31, 2025
    9444ed6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions