Configuration

Three configuration owners

Host Configuration source
Embedded SAgents v2 SageManifest: YAML text, validated Python dictionary, or sage.yaml.
Desktop v2 Persisted application settings and catalog; configure models and Agents in the UI.
Server v2 SAGE_SERVER_* variables plus per-user model, Agent, Skill, and MCP catalogs.

Loading a manifest

from sagents.v2.package.manifest import SageManifest, SageManifestLoader

manifest = SageManifestLoader().loads(yaml_text)
# Alternative: manifest = SageManifest.model_validate(config_dict)
# Then: application = await builder.build(manifest)

loads() validates YAML and rejects duplicate keys. load("path/to/sage.yaml") additionally resolves instruction files inside the package directory. Passing a plain string to build() selects file loading. Use inline instructions for in-memory packages.

credentials declares where to resolve a secret; models references credentials without embedding their values. agents selects instructions and model routes; entrypoint selects the initial Agent.

Selecting runtime implementations

Use runtime.capabilities for provider bindings. For example, the lazy Skill loader accepts a token budget:

runtime:
  capabilities:
    skill.loading:
      plugin: sage.skill.loading.lazy
      config:
        max_active_tokens: 6000

This is a fragment to add to a complete manifest. Plugin configuration is schema-validated. Availability and behavior depend on actual registered implementations; a metadata-only declaration does not create a working provider.

Extensions · Environment reference · Full integration manual


Sage documentation for the current repository layout. Source available under the MIT license.

This site uses Just the Docs, a documentation theme for Jekyll.