feat(formats): implement Express and Elemental InferenceFormats #1982
Open
gspencergoog wants to merge 6 commits into
Open
feat(formats): implement Express and Elemental InferenceFormats #1982gspencergoog wants to merge 6 commits into
InferenceFormats #1982gspencergoog wants to merge 6 commits into
Conversation
34a0c18 to
0101648
Compare
This was referenced Jul 10, 2026
6238957 to
82bd501
Compare
89a547a to
1134c08
Compare
5266cef to
77a52dd
Compare
dd30576 to
914f571
Compare
c0e7429 to
33fc7c2
Compare
556b974 to
280f9a9
Compare
bc7c981 to
a586f1f
Compare
fca8e9a to
e910b3c
Compare
e910b3c to
090a859
Compare
…r API style(express): remove dead empty TYPE_CHECKING block in express prompt_generator.py feat(sdk): remove remaining A2UI_EXPRESS_ENABLED environment variable references feat(sdk): support complete flag on has_format_content for Express and Elemental feat(sdk): implement has_format_content for Express and Elemental parsers refactor(sdk): rename prompts directory to prompt (singular) refactor(sdk): hide Express and Elemental prompt generators from package exports refactor(sdk): expose prompt_generator on Express/Elemental formats and move to prompts/generator.py Refactor the Express and Elemental inference strategies to the new configuration.
0bbda91 to
d495ff0
Compare
InferenceFormats
…plate duplication - Promotes decompile, transform_examples, format_description, and catalog_description as abstract methods on the InferenceFormat base class. - Standardizes parameter signatures for format_description and catalog_description across Express, Elemental, and Transport formats. - Removes duplicated prompt templates and translation/compilation logic from ExpressPromptGenerator and ElementalPromptGenerator, delegating directly to the format classes. - Standardizes backwards-compatible prompt generator helpers to fallback to default format instances if initialized with raw catalog models. - Resolves all Python SDK unit tests and Kotlin conformance tests.
c7fd39d to
1cc6a6e
Compare
… clean up dataset invariant description
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refactors the structured inference SDK API and evaluation harness in Python to unify the handling of different inference formats (standard JSON transport, experimental Express DSL, and experimental Elemental HTML). It does this by restructuring the formats as polymorphic implementations of the
InferenceFormatinterface and using these abstractions to consolidate system prompt generation and response parsing logic.Changes
agent_sdks/python/a2ui_agent/src/a2ui/inference_formats/experimental/.InferenceFormatclass (decompile,transform_examples,format_description,catalog_description) and implemented them acrossTransportFormat,ElementalFormat, andExpressFormat.ExpressPromptGenerator,ElementalPromptGenerator) to align with the new structure.direct.py,express.py,elemental.py) undereval/a2ui_eval/strategies/with a unifiedformat.pysolver.TransportFormat,ExpressFormat, orElementalFormat) based on config, allowing polymorphic prompt formatting and output compilation/validation.ElementalCompilerwhen multiple action properties are present.catalog_descriptionwhen called prior togenerate().ElementalParserto the module level for efficiency.eval/to fail fast.schema_manager.yamltoinference_format.yaml.Impact & Risks
InferenceFormatAPI and preserves external integration endpoints.Testing
Verify the changes by running all SDK and evaluation unit tests: