soev for developers
soev-agentsReference

soev_agents.plugins

Versioned registration contracts for servers and installed agent plugins.

Classes

AgentInfo

dataclassAgentInfo(kind, title, description, input_version)
paramkindLiteral['chat', 'surface']
paramtitlestr
paramdescriptionstr
paraminput_versionstr

ToolInfo

dataclassToolInfo(name, status, family=None, defaults=dict())
paramnamestr
paramstatusMapping[str, JsonValue]
paramfamilystr | None
= None
paramdefaultsMapping[str, str]
= dict()

HostedAgent

dataclassHostedAgent[H, R, T: BaseModel](name, agent, bind, info, requires, tools=(), thread_status=dict())
paramnamestr
paramagentAgent[R, T]
parambindCallable[[H], R]
paraminfoAgentInfo
paramrequiresfrozenset[str]
paramtoolsSequence[ToolInfo]
= ()
paramthread_statusMapping[str, Callable[[Event], str | None]]
= dict()

AgentPlugin

dataclassAgentPlugin[B, H](resources_api, factory, *, api_version=1)
paramresources_apistr
paramfactoryCallable[[B], Sequence[HostedAgent[H, Any, Any]]]
paramapi_versionint
= 1

LoadedPlugin

dataclassLoadedPlugin(name, distribution, value, plugin)
paramnamestr
paramdistributionstr
paramvaluestr
parampluginAgentPlugin[Any, Any]
attributeoriginstr

Functions

parse_allowlist

functionparse_allowlist(value) -> list[str]

Parse a 's comma-separated selection without reading its environment.

paramvaluestr

discover

functiondiscover(group='soev.agents', *, allow, accept_resources_api) -> list[LoadedPlugin]

Load only selected in allowlist order; never invoke factories.

paramgroupstr
= 'soev.agents'
paramallowSequence[str]
paramaccept_resources_apiCollection[str]

create_agents

functioncreate_agents(plugins, resources, *, accept_requires) -> list[HostedAgent[Any, Any, Any]]

Invoke each discovered factory once and reject ambiguous catalog registrations.

Resource APIs and capability identifiers are opaque: acceptance belongs to the . Binders and readers are validated but never called here.

parampluginsSequence[LoadedPlugin]
paramresourcesAny
paramaccept_requiresCollection[str]

Errors

PluginError

errorPluginError

A plugin cannot be registered; must fail construction.

PluginSelectionError

errorPluginSelectionError

PluginLoadError

errorPluginLoadError

PluginVersionError

errorPluginVersionError

PluginValidationError

errorPluginValidationError

PluginCollisionError

errorPluginCollisionError

On this page