# A2UIAgent v0.1.1 - Table of Contents ## Pages - [A2UIAgent](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) - Guides - [Serving an agent](serving_an_agent.md) ## Modules - Catalogs - [A2UIAgent](A2UIAgent.md): Agent-side SDK for the A2UI protocol, built on `A2UICore`. - [A2UIAgent.CatalogConfig](A2UIAgent.CatalogConfig.md): A catalog an agent registers, together with the transformers applied to it. - [A2UIAgent.CatalogProvider](A2UIAgent.CatalogProvider.md): Loads catalog documents into `A2UICore.Catalog`s. - [A2UIAgent.CatalogResolver](A2UIAgent.CatalogResolver.md): Negotiates the catalogs that are active for one renderer. - [A2UIAgent.CatalogTransformer](A2UIAgent.CatalogTransformer.md): Rules applied to a catalog before it reaches a prompt or a validator. - [A2UIAgent.CatalogTransformer.Pruning](A2UIAgent.CatalogTransformer.Pruning.md): The pruning transformer behind `A2UIAgent.CatalogTransformer.component_pruning/1` and `A2UIAgent.CatalogTransformer.function_pruning/1`. - [A2UIAgent.Catalogs](A2UIAgent.Catalogs.md): Checks on the list of active catalogs that a format, parser or prompt works with. - [A2UIAgent.SchemaPruning](A2UIAgent.SchemaPruning.md): Prunes the protocol schemas a prompt shows the model. - Requests - [A2UIAgent.Format](A2UIAgent.Format.md): An inference format: how the model is told to write A2UI, and how its output is read back. - [A2UIAgent.Generator](A2UIAgent.Generator.md): The agent-level entry point: the catalogs an agent supports, its few-shot examples and its inference format, from which it creates one `A2UIAgent.RequestProcessor` per request. - [A2UIAgent.PayloadValidator](A2UIAgent.PayloadValidator.md): Checks a payload an agent is about to send the way a renderer holding the same catalogs would. - [A2UIAgent.RequestProcessor](A2UIAgent.RequestProcessor.md): Everything an agent needs to answer one request: the negotiated catalogs, the inference format bound to them, its prompt snippet and its parsers. - Direct JSON - [A2UIAgent.DirectJson](A2UIAgent.DirectJson.md): The direct JSON inference format: the model writes A2UI messages as JSON between `` and `` tags, guided by the protocol and catalog JSON schemas in its prompt. - [A2UIAgent.DirectJson.JsonReader](A2UIAgent.DirectJson.JsonReader.md): Reads the JSON a model writes, which is often almost JSON. - [A2UIAgent.DirectJson.Parser](A2UIAgent.DirectJson.Parser.md): Reads model output written in the direct JSON format: conversational text with A2UI message lists between `` and `` tags. - [A2UIAgent.DirectJson.Prompt](A2UIAgent.DirectJson.Prompt.md): The system prompt snippet of the direct JSON format. - [A2UIAgent.PayloadFixer](A2UIAgent.PayloadFixer.md): Reads a JSON payload a model wrote, fixing the mistakes models commonly make, as the reference SDKs' payload fixer (`parse_and_fix`) does. - Express - [A2UIAgent.BlockLexer](A2UIAgent.BlockLexer.md): Splits model output into conversational text and the raw blocks between a format's tags. - [A2UIAgent.Express](A2UIAgent.Express.md): The Express inference format: the model writes a compact, function-call notation between `` and `` tags, which the agent compiles into A2UI messages. - [A2UIAgent.Express.Catalogs](A2UIAgent.Express.Catalogs.md): The active catalogs of an Express format, compiler or decompiler, with a schema helper for each, and the lookups they share. - [A2UIAgent.Express.Compiler](A2UIAgent.Express.Compiler.md): Compiles an Express block into A2UI messages. - [A2UIAgent.Express.Decompiler](A2UIAgent.Express.Decompiler.md): Writes A2UI messages back as Express. - [A2UIAgent.Express.Parser](A2UIAgent.Express.Parser.md): Reads model output written in Express: conversational text with Express blocks between `` and `` tags. - [A2UIAgent.Express.Prompt](A2UIAgent.Express.Prompt.md): The system prompt snippet of the Express format. - [A2UIAgent.Express.SchemaHelper](A2UIAgent.Express.SchemaHelper.md): What Express reads from a catalog: each component's properties in positional order, each function's parameters, and the facts about a property's schema that decide how an argument compiles. - [A2UIAgent.Express.Syntax](A2UIAgent.Express.Syntax.md): Reads Express source into statements, following the grammar `specification/inference_formats/express/Express.g4`. - Skills - [A2UIAgent.Skill](A2UIAgent.Skill.md): A skill package: a markdown document with YAML frontmatter (`name`, `description` and optional `metadata`) that teaches an agent to write A2UI, stored as `/SKILL.md`. - [A2UIAgent.SkillGenerator](A2UIAgent.SkillGenerator.md): Packages an inference format's prompt as skills (`A2UIAgent.Skill`). - Builder - [A2UIAgent.Builder](A2UIAgent.Builder.md): Builds component trees in Elixir and flattens them into the component lists that A2UI messages carry. - [A2UIAgent.Builder.Basic](A2UIAgent.Builder.Basic.md): A function for each component of the basic catalog, named after it in snake case: `text/1`, `text_field/1`, `date_time_input/1` and so on. Each one is `A2UIAgent.Builder.component/2` with the component's name. - [A2UIAgent.Builder.Binding](A2UIAgent.Builder.Binding.md): A data binding, written as `{"path": path}` (`{"@path": path}` from v1.0). Made by `A2UIAgent.Builder.bind/1`. - [A2UIAgent.Builder.ChildList](A2UIAgent.Builder.ChildList.md): Children generated from a data model list: the list's path and the template component repeated for each item, written as `{"path": path, "componentId": template_id}`. Made by `A2UIAgent.Builder.child_list/2`. - [A2UIAgent.Builder.Component](A2UIAgent.Builder.Component.md): A component node of an `A2UIAgent.Builder` tree: the component name, the id the author gave (if any) and the properties, as wire names and values in the order given. Made by `A2UIAgent.Builder.component/2`. - [A2UIAgent.Builder.FunctionCall](A2UIAgent.Builder.FunctionCall.md): A call of a catalog function, written as `{"call": name, "args": args}` (`"@call"` from v1.0, with the `"catalogId"` it names). Made by `A2UIAgent.Builder.call/3`. - [A2UIAgent.Builder.Ref](A2UIAgent.Builder.Ref.md): A reference to a component already on the surface. It is written as its id and never emitted. Made by `A2UIAgent.Builder.ref/1`. - Macros - [A2UIAgent.Macro](A2UIAgent.Macro.md): A macro: a component the model can write that the agent expands into components of its catalog before they reach the renderer. - [A2UIAgent.Macro.Call](A2UIAgent.Macro.Call.md): A macro call inside a component tree, expanded where the tree is flattened. Made by `A2UIAgent.Macro.call/2`. - [A2UIAgent.MacroExpander](A2UIAgent.MacroExpander.md): Puts macros (`A2UIAgent.Macro`) in front of a catalog: the model sees a catalog with the macros as components, and the renderer gets the base catalog's components they expand to. - A2A - [A2UIAgent.A2A](A2UIAgent.A2A.md): The A2UI extension of the [A2A protocol](https://a2a-protocol.org): extension URIs and their negotiation, and A2UI messages carried in A2A parts. - [A2UIAgent.A2A.Agent](A2UIAgent.A2A.Agent.md): An agent that `A2UIAgent.A2A.Server` and `A2UIAgent.A2A.Plug` serve. - [A2UIAgent.A2A.Plug](A2UIAgent.A2A.Plug.md): Serves an agent over A2A's JSON-RPC binding with `A2UIAgent.A2A.Server`. - [A2UIAgent.A2A.Request](A2UIAgent.A2A.Request.md): One A2A `message/send` or `message/stream` request, as `A2UIAgent.A2A.Server` hands it to the agent. - [A2UIAgent.A2A.Server](A2UIAgent.A2A.Server.md): Answers the A2A JSON-RPC methods `message/send` and `message/stream` for an agent that writes A2UI. - MCP and AG-UI - [A2UIAgent.AGUI](A2UIAgent.AGUI.md): Carries A2UI over [AG-UI](https://docs.ag-ui.com), the event protocol between agents and their front ends, the way AG-UI's A2UI middleware and the renderers built on it (CopilotKit, assistant-ui) do. A2UI does not define this binding itself. - [A2UIAgent.MCP](A2UIAgent.MCP.md): Carries A2UI over the [Model Context Protocol](https://modelcontextprotocol.io), as the A2UI project's guide "A2UI over MCP" describes: the JSON values an MCP server puts in its responses, and the A2UI values it reads from requests. It works with any MCP server implementation.