Skip to content

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 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 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.

  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.