Skip to content

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 familyPurpose
Profile attachAttach an agent under an admitted participation profile
Output candidate submissionSubmit a non-canonical output candidate
Promotion requestRequest typed promotion of a candidate per promotion_posture
Profile detachCleanly detach

Behavioral Checks

The participation contract admits behavioral checks the SDK enforces before submission:

CheckPurpose
Profile axes shapeReject open-string axis values
Memory write defaultRefuse WRITE_NONE profiles requesting durable writes
Capability scopeRefuse calls outside the profile's capability_scope
Output destinationRefuse 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.

  1. Profile attach. SDK call attaches the agent under realm_group_participation.
  2. Output candidate. The app assembles a typed message candidate; submits via SDK.
  3. SDK behavioral check. Output destination REALM_GROUP_MESSAGE_CANDIDATE matches the profile.
  4. Runtime validates. Server-side participation contract enforces.
  5. 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_NONE defaults.
  • It does not route around the canonical chat budget for non-canonical profiles.
  • It does not let SDK-side checks substitute for runtime validation.

Source Basis

Nimi AI open world platform documentation.