Agent Participation Client
Status: Admitted, in build-out
The runtime agent participation contract (runtime-agent-participation-contract.md) is admitted at the SDK kernel level. The methods registry + behavioral checks are shipped at the contract level; client-side fluent surface is in active build-out.
What This Client Does
The Agent Participation Client is the SDK surface for app developers who want their app to participate in agent execution under an admitted participation profile (see Platform → Agents → Participation Authority).
It is not a way to invent new participation profiles. The closed profile set lives in runtime spec; the SDK lets you submit against admitted profiles.
Method Surface
The methods registry lives in tables/runtime-agent-participation-methods.yaml. The SDK surface exposes the admitted methods as typed calls.
| 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 SDK-side guards. Runtime still validates server-side; SDK simply fails fast on detectable violations.
Reader Scenario: App Submits An Output Candidate
An app wants its agent to participate in a Realm group thread.
- 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.