Skip to content

Comments

Restructure the agent_sdks folder#711

Open
nan-yu wants to merge 2 commits intogoogle:mainfrom
nan-yu:restructure
Open

Restructure the agent_sdks folder#711
nan-yu wants to merge 2 commits intogoogle:mainfrom
nan-yu:restructure

Conversation

@nan-yu
Copy link
Collaborator

@nan-yu nan-yu commented Feb 25, 2026

Description

The code is reorganized with the following structure

agent_sdks/python
- src/a2ui
  - core
    - schema
      - manager.py
      - validation.py
      - payload_fixer.py
      - ...
    - template
      - ...
    - inference_stategy.py
  - adk
    - a2a_extension
      - a2ui_extension.py
      - send_a2ui_to_client_toolset.py
- tests
  - core/schema
    - ...
  - adk/a2a_extension
    - ...

Tested:

  • All individual sample ADKs are working with connected client.
  • The orchestrator sample is also working with all sub-agents.

Pre-launch Checklist

If you need help, consider asking for advice on the discussion board.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a large-scale refactoring that restructures the Python SDK into the agent_sdks folder, improving project organization. A key design change is that component catalogs are now expected to be standalone, with the SDK no longer resolving $refs to other catalogs. This simplifies the SDK's logic but places more responsibility on catalog creators. The A2uiSchemaManager API has been significantly updated to reflect this new approach. My review includes a couple of suggestions to address a potential regression and improve adherence to Python best practices in the new API.

@nan-yu nan-yu force-pushed the restructure branch 2 times, most recently from a075f5a to d211021 Compare February 25, 2026 00:23
The basic catalog maintained by the A2UI team has no difference from
third-party catalogs.

This PR removes the notion of custom catalogs. Each catalog provided at
runtime should be independent and immutable. At build time, catalogs can
refer to components from other catalogs. They need to be bundled into a
free-standing one using the `tools/build_catalog/build_catalog.py`
script.

Fixes google#650
The code is reorganized with the following structure
```
agent_sdks/python
- src/a2ui
  - core
    - schema
      - manager.py
      - validation.py
      - payload_fixer.py
      - ...
    - template
      - ...
    - inference_stategy.py
  - adk
    - a2a_extension
      - a2ui_extension.py
      - send_a2ui_to_client_toolset.py
```

Tested:
- [x] All individual sample ADKs are working with connected client.
- [x] The orchestrator sample is also working with all sub-agents.
@yourkarma6788

This comment was marked as spam.

@jacobsimionato
Copy link
Collaborator

SGTM overall! I am wondering:

  • does this need to be nested in src/a2ui? I assume that's just a conventional way to structure python packages, if the package name is a2ui?
  • Can the tests be closer to the source files? I assume what you've done is just conventional for Python. I'm not familiar!

@wrenj
Copy link
Collaborator

wrenj commented Feb 25, 2026

a2ui_extension.py only depends on the A2A sdk, not the ADK

could we rename it to a2a.py and put it at base? we'd expect another file mcp.py, and interactions_api.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

5 participants