Agent Participation Client
Status: Deferred; semantic-contract-only
The runtime agent participation contract (runtime-agent-participation-contract.md) is admitted as a semantic-contract-only boundary. The methods registry and behavioral checks document the intended shape, but proto stubs and a public production participation SDK surface are deferred and proto-unavailable.
What This Client Does
The Agent Participation Client page describes the deferred contract for apps that may later participate in agent execution under an admitted participation profile (see Platform → Agents → Participation Authority).
It is not a public production SDK surface today, and it is not a way to invent new participation profiles. The closed profile set lives in runtime spec; future SDK calls must submit against admitted profiles only after the deferred surface is implemented.
Method Surface
The methods registry lives in tables/runtime-agent-participation-methods.yaml. It is contract evidence, not public production callable SDK surface.
| Method family | Purpose |
|---|---|
| Profile attach | Attach an agent under an admitted participation profile |
| Output candidate submission | Submit a non-canonical output candidate |
| Promotion request | Request typed promotion of a candidate per promotion_posture |
| Profile detach | Cleanly detach |
Behavioral Checks
The participation contract admits behavioral checks the SDK enforces before submission:
| Check | Purpose |
|---|---|
| Profile axes shape | Reject open-string axis values |
| Memory write default | Refuse WRITE_NONE profiles requesting durable writes |
| Capability scope | Refuse calls outside the profile's capability_scope |
| Output destination | Refuse outputs to non-admitted destinations |
These are planned SDK-side guards. Runtime still validates server-side; until the deferred client exists, callers must receive unavailable or unsupported behavior rather than a pseudo-success.
Reader Scenario: Future App Submits An Output Candidate
This is a future contract scenario, not a current public production SDK promise. An app wants its agent to participate in a Realm group thread after the deferred participation SDK is admitted.
- Profile attach. SDK call attaches the agent under
realm_group_participation. - Output candidate. The app assembles a typed message candidate; submits via SDK.
- SDK behavioral check. Output destination
REALM_GROUP_MESSAGE_CANDIDATEmatches the profile. - Runtime validates. Server-side participation contract enforces.
- Realm slot binding. Realm validates the agent slot binding before message commits.
What This Client Does Not Do
- It does not invent new participation profiles.
- It does not bypass
WRITE_NONEdefaults. - It does not route around the canonical chat budget for non-canonical profiles.
- It does not let SDK-side checks substitute for runtime validation.