Skip to content

Declare the HITL confirmation payload as an A2A AgentExtension with one stable prefix #2304

Description

@QuentinBisson

The human-in-the-loop confirmation flow (paused long-running tool call -> input-required status -> decision reply) uses part metadata and DataPart schemas that are effectively private ADK conventions: kagent_type/adk_type = function_call, kagent_is_long_running/adk_is_long_running, an adk_request_confirmation DataPart with args.originalFunctionCall / toolConfirmation.hint / ask_user questions, and a decision DataPart (decision_type, ask_user_answers, rejection_reason).

Both the kagent_ and adk_ prefixes appear in the wild, so consumers sniff both, and the payload schema is undocumented, so every consumer reverse-engineers it and can break on any refactor.

Ask:

  1. Pick one prefix and treat the payload schema as a stable contract.
  2. Declare it as an A2A AgentExtension in the AgentCard (the spec mechanism for exactly this), with the schema documented, so consumers can feature-detect instead of sniffing.

The A2A mechanics themselves (input-required + status message parts) are fine; this is only about the payload contract.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions