Skip to content

feat(agent): teach Event userMessage= in Express prompt rule 8 for v1.0 catalogs #3690

Open

Description

@ditman

In protocol v1.0, Action.event includes an optional userMessage field (DynamicString: a literal string, a $path data binding, or a function call) alongside name and context (specification/v1_0/json/common_types.json).

PRs #3634, #3635, #3636, and #3637 taught the TypeScript, Python, and Dart Express compilers and decompilers Event(name, context?, userMessage=...) for #3598, and documented the signature in specification/proposals/express/a2ui_express.md.

However, rule 8 (Action events) in the Express system prompt still shows only the two-argument positional form:

8. Action events: represent server-side actions using the Event helper:
   Event("save_deal", {rep: $/form/rep})

Because ExpressDecompiler now writes userMessage= into decompiled prompt examples and conversation history for v1.0 surfaces, the prompt rules should also document userMessage= (and optional context=) when generating prompts for v1.0+ catalogs.

Places to update in lockstep

  1. TypeScript EXPRESS_RULES in typescript/agents/a2ui_agent/src/inference-formats/express/prompt-generator.ts.
  2. Python EXPRESS_RULES in python/a2ui_agent/src/a2ui/inference_formats/express/prompt_generator.py.
  3. Dart _callRules in dart/a2ui_agent/lib/src/inference_formats/express/prompt_generator.dart.
  4. Shared skill golden conformance/test_data/skills/express_base_rules.txt and specification/proposals/express/express_dsl_examples.md.
  5. Version gating: userMessage exists only in protocol v1.0+ (v0.9 and v0.9.1 Action.event have only name and context, and the Express compilers reject userMessage= before v1.0), so v0.9 prompts must not instruct the model to emit userMessage=.

Activity

  1. added
    P1This is a priority. Team is actively working on it, or will be soon.
    component: agent sdkRelating to the agent SDK libraries in any language
    on Oct 28, 2026
  2. added theissue type on Oct 28, 2026
  3. added
    status: needs-triageauto-managed: https://github.com/a2ui-project/a2ui/blob/main/scripts/triage.mjs
    on Oct 28, 2026
  4. added
    P2The team intends to work on this in the near future, or at a lower priority.
    component: specificationAffects the A2UI specification documents and JSON schemas
    lang: dartAffects SDKs or apps in the Dart programming language
    lang: pythonAffects SDKs or apps in the Python programming language
    and removed
    P1This is a priority. Team is actively working on it, or will be soon.
    on Oct 28, 2026
  5. removed
    status: needs-triageauto-managed: https://github.com/a2ui-project/a2ui/blob/main/scripts/triage.mjs
    on Oct 28, 2026
  6. self-assigned this
    on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

  • Status
    Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions