Skip to content

Capabilities

Summonpot offers one declaration style for endpoints whose operations resolve deterministically and endpoints that permit bounded agent-owned decisions. The contract vocabulary includes Operation, FromRequest, AgentChoice, Depends, Required, and call bounds such as Exactly(1).

An Operation wraps an exact callable. Its inputs must have enforceable bindings; the supported runtime slice rejects unsupported explicit shapes during registration. FromRequest sources values from the validated caller model. A direct AgentChoice marks an argument the agent can choose; it does not grant authority beyond that registered callable.

operation = Operation(
lookup_record,
bind={"record_id": FromRequest("record_id")},
output=RecordResponse,
)
@summon("/records/lookup")
def lookup(request: LookupRequest, record=Required(operation, calls=Exactly(1))) -> RecordResponse:
"""Return the requested record."""
...

This fully resolved single-operation shape can bypass model setup when all supported deterministic-path requirements are met. Adding an explicit AgentChoice keeps execution in the agent runtime. Consult the capability guide for complete contract details; multi-operation deterministic execution is not yet shipped.