Skip to content

ADK Callbacks #599

@wify-vandana

Description

@wify-vandana

📚 Documentation Enhancement Suggestions for ADK

Hi team, while working extensively with the ADK agent system, I’ve encountered a few gaps in documentation that would greatly benefit from clarification. Here are my suggestions to improve the developer experience and make agent development more predictable and frontend-friendly:


1. 🔁 Callback Behavior (Short-circuiting & Flow Control)

Please document what happens when a callback returns a Content object, especially in:

  • after_tool_callback
  • after_model_callback
  • after_agent_callback

For example:

  • Returning a Content from after_tool_callback prevents the model from being called again.
  • after_agent_callback is skipped if a previous callback has already returned a final result.

📌 This kind of flow control is critical to understand but currently undocumented.


2. 🧱 Structuring Final Agent Response for Frontend Chatbots

Please document best practices or built-in support for:

  • Structuring final responses in a predictable JSON schema.
  • Defining a response contract that works for custom chatbot UIs.
  • Adding custom metadata to responses (e.g., type: info | success | error, quickReplies, etc.)

3. 🔘 Adding Buttons / Quick Replies in Final Agent Response

There is no clear guidance on how to:

  • Add buttons or interactive elements (like "quick replies") to the agent response.
  • Define such buttons using FunctionCall, Part, or metadata.
  • Support multi-modal outputs with both text and structured UI actions.

It would be helpful to show examples that include:

{
  "text": "Would you like to proceed?",
  "buttons": [
    { "label": "Yes", "action": "proceed_yes" },
    { "label": "No", "action": "proceed_no" }
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions