Interface: SouledAgentOptions
Defined in: packages/agentos/src/api/souledAgent.ts:33
Options for souledAgent. Identical to AgentOptions, but soul is required.
Extends
Properties
apiKey?
optionalapiKey:string
Defined in: packages/agentos/src/api/types.ts:1253
Override the provider API key instead of reading from environment variables.
Inherited from
avatar?
optionalavatar:AvatarConfig
Defined in: packages/agentos/src/api/types.ts:1359
Avatar visual presentation configuration.
Inherited from
baseUrl?
optionalbaseUrl:string
Defined in: packages/agentos/src/api/types.ts:1255
Override the provider base URL (useful for local proxies or Ollama).
Inherited from
chainOfThought?
optionalchainOfThought:string|boolean
Defined in: packages/agentos/src/api/agent.ts:111
Chain-of-thought reasoning instruction.
false— disable CoT injection.true(default for agents) — inject the default CoT instruction when tools are present.string— inject a custom CoT instruction when tools are present.
Inherited from
channels?
optionalchannels:Record<string,Record<string,unknown>>
Defined in: packages/agentos/src/api/types.ts:1364
Channel adapter configurations keyed by channel name. Values are channel-specific option objects passed through opaquely.
Inherited from
cognitiveMechanisms?
optionalcognitiveMechanisms:CognitiveMechanismsConfig
Defined in: packages/agentos/src/api/types.ts:1401
Cognitive mechanisms config — 8 neuroscience-backed memory mechanisms. All HEXACO-modulated (emotionality, conscientiousness, openness, etc.).
- Pass
{}for sensible defaults (all 8 mechanisms enabled). - Omit entirely to disable (zero overhead — no code paths execute).
- Provide per-mechanism overrides to tune individual parameters.
Requires memory to be enabled (true or a MemoryConfig object).
If cognitiveMechanisms is set but memory is disabled, a warning is logged
and the mechanisms config is ignored.
See
Inherited from
AgentOptions.cognitiveMechanisms
controls?
optionalcontrols:ResourceControls
Defined in: packages/agentos/src/api/types.ts:1378
Resource limits (tokens, cost, time) applied to the entire run.
Inherited from
dependsOn?
optionaldependsOn:string[]
Defined in: packages/agentos/src/api/types.ts:1385
Names of other agents in the agency that must complete before this agent runs.
Used with strategy: 'graph' to build an explicit dependency DAG.
Agents with no dependsOn are roots and run first.
Example
`dependsOn: ['researcher']` — this agent waits for `researcher` to finish.
Inherited from
discovery?
optionaldiscovery:DiscoveryConfig
Defined in: packages/agentos/src/api/types.ts:1341
Runtime capability discovery configuration.
Inherited from
emergent?
optionalemergent:EmergentConfig
Defined in: packages/agentos/src/api/types.ts:1355
Emergent agent synthesis configuration.
Inherited from
fallbackProviders?
optionalfallbackProviders:FallbackProviderEntry[]
Defined in: packages/agentos/src/api/agent.ts:124
Ordered list of fallback providers to try when the primary provider fails with a retryable error (HTTP 402/429/5xx, network errors).
Defaults to auto-built chain when omitted — fallback is on by
default. Pass [] for strict single-provider mode, or supply a
custom array to control the chain. Applied to every generate(),
stream(), and session.send() / session.stream() call made
through this agent.
See
GenerateTextOptions.fallbackProviders
Inherited from
AgentOptions.fallbackProviders
guardrails?
optionalguardrails:string[] |GuardrailsConfig
Defined in: packages/agentos/src/api/types.ts:1347
Guardrail policy identifiers or structured config.
string[]— shorthand; applies to both input and output.GuardrailsConfig— full control with separate input/output lists.
Inherited from
hitl?
optionalhitl:HitlConfig
Defined in: packages/agentos/src/api/types.ts:1353
Human-in-the-loop approval configuration.
Inherited from
hostPolicy?
optionalhostPolicy:HostLLMPolicy
Defined in: packages/agentos/src/api/agent.ts:135
Host-level routing hints forwarded to the high-level generation helpers.
Inherited from
instructions?
optionalinstructions:string
Defined in: packages/agentos/src/api/types.ts:1249
Free-form system instructions prepended to the system prompt.
Inherited from
maxSteps?
optionalmaxSteps:number
Defined in: packages/agentos/src/api/types.ts:1278
Maximum number of agentic steps (LLM calls) per invocation. Defaults to 5.
Inherited from
maxTokens?
optionalmaxTokens:number
Defined in: packages/agentos/src/api/types.ts:1311
Upper bound on completion tokens for each LLM call the agent makes.
Forwarded to the underlying generateText / streamText call on
every generate(), stream(), and session.send() invocation.
Caps tail spend when a model misbehaves and yaps past the intended output size. Omit to use the provider default — AnthropicProvider defaults to 16000 (set 2026-05-17; was 4096), OpenAIProvider defaults to 4096, GeminiProvider defaults to 8192. Set to ~2× the agent's typical response size so normal calls finish naturally and only runaway generations hit the cap.
Example
// Cap a roleplay agent at 1024 — short turns, fast feedback.
const companion = agent({
provider: 'anthropic',
model: 'claude-sonnet-4-6',
instructions: 'Reply in character. 2-3 sentences.',
maxTokens: 1024,
});
// Tool-use agent emitting verbose JSON — go big so structured
// output doesn't truncate mid-token. Opus 4.7 supports 32000.
const codegen = agent({
provider: 'anthropic',
model: 'claude-opus-4-7',
tools: { GenerateCode, RunTests, JudgeOutput },
maxTokens: 16000,
});
Inherited from
memory?
optionalmemory:boolean|MemoryConfig
Defined in: packages/agentos/src/api/types.ts:1337
Memory configuration.
true— enable in-memory conversation history with default settings.false— disable memory; every call is stateless.MemoryConfig— full control over memory subsystems.
Inherited from
memoryProvider?
optionalmemoryProvider:AgentMemoryProvider
Defined in: packages/agentos/src/api/agent.ts:194
Optional memory provider. When provided, memory auto-wires on all four agent call paths (see AgentMemoryProvider for hook contract).
getContextruns before each LLM call; result prepended as a system message.observeruns after each LLM call as fire-and-forget.
Inherited from
model?
optionalmodel:string
Defined in: packages/agentos/src/api/types.ts:1242
Model identifier. Accepted in two formats:
- Plain model name (e.g.
"gpt-4o") whenprovideris also set. Preferred. "provider:model"combined string (e.g."openai:gpt-4o").
Inherited from
name?
optionalname:string
Defined in: packages/agentos/src/api/types.ts:1251
Display name for the agent, injected into the system prompt.
Inherited from
observability?
optionalobservability:ObservabilityConfig
Defined in: packages/agentos/src/api/types.ts:1374
Observability and telemetry configuration.
Inherited from
on?
optionalon:AgencyCallbacks
Defined in: packages/agentos/src/api/types.ts:1376
Event callbacks fired at various lifecycle points during the run.
Inherited from
onAfterGeneration()?
optionalonAfterGeneration: (result) =>Promise<void|GenerationHookResult>
Defined in: packages/agentos/src/api/agent.ts:183
Post-generation hook, called after each LLM step.
Parameters
result
Returns
Promise<void | GenerationHookResult>
Inherited from
AgentOptions.onAfterGeneration
onBeforeGeneration()?
optionalonBeforeGeneration: (context) =>Promise<void|GenerationHookContext>
Defined in: packages/agentos/src/api/agent.ts:181
Pre-generation hook, called before each LLM step.
Parameters
context
Returns
Promise<void | GenerationHookContext>
Inherited from
AgentOptions.onBeforeGeneration
onBeforeToolExecution()?
optionalonBeforeToolExecution: (info) =>Promise<ToolCallHookInfo|null>
Defined in: packages/agentos/src/api/agent.ts:185
Pre-tool-execution hook.
Parameters
info
Returns
Promise<ToolCallHookInfo | null>
Inherited from
AgentOptions.onBeforeToolExecution
onFallback()?
optionalonFallback: (error,fallbackProvider) =>void
Defined in: packages/agentos/src/api/agent.ts:131
Callback invoked when a fallback provider is about to be tried.
Parameters
error
Error
The error that triggered the fallback.
fallbackProvider
string
The provider identifier being tried next.
Returns
void
Inherited from
output?
optionaloutput:unknown
Defined in: packages/agentos/src/api/types.ts:1370
Output schema for structured generation.
Accepts a Zod schema at runtime; typed as unknown here to avoid a
hard dependency on the zod package in the types layer.
Inherited from
permissions?
optionalpermissions:PermissionsConfig
Defined in: packages/agentos/src/api/types.ts:1351
Fine-grained tool and resource permission overrides.
Inherited from
personality?
optionalpersonality:Partial<{agreeableness:number;conscientiousness:number;emotionality:number;extraversion:number;honesty:number;openness:number; }>
Defined in: packages/agentos/src/api/types.ts:1260
HEXACO-inspired personality trait overrides (0–1 scale). Encoded as a human-readable trait string appended to the system prompt.
Inherited from
provenance?
optionalprovenance:AgencyProvenanceConfig
Defined in: packages/agentos/src/api/types.ts:1372
Provenance and audit-trail configuration.
Inherited from
provider?
optionalprovider:string
Defined in: packages/agentos/src/api/types.ts:1247
Provider name (e.g. "openai", "anthropic", "ollama").
Auto-detected from environment API keys when omitted.
Inherited from
rag?
optionalrag:RagConfig
Defined in: packages/agentos/src/api/types.ts:1339
Retrieval-Augmented Generation configuration.
Inherited from
responseSchema?
optionalresponseSchema:ZodType<unknown,unknown,$ZodTypeInternals<unknown,unknown>>
Defined in: packages/agentos/src/api/agent.ts:179
Optional Zod schema for validating the LLM's structured output.
When provided, the agent's generate() result includes a parsed field
with the Zod-validated and typed output. JSON extraction and validation
happen automatically in the onAfterGeneration hook. On validation failure,
the agent retries internally (up to controls.maxValidationRetries ?? 1).
When omitted, behavior is unchanged — result.parsed is undefined.
This is a non-breaking additive change.
Example
import { z } from 'zod';
const myAgent = agent({
name: 'Extractor',
instructions: 'Extract entities as JSON',
responseSchema: z.object({ entities: z.array(z.string()) }),
});
const result = await myAgent.generate('Find entities in: ...');
console.log(result.parsed?.entities); // string[]
Inherited from
router?
optionalrouter:IModelRouter
Defined in: packages/agentos/src/api/agent.ts:133
Model router for intelligent provider selection per-call.
Inherited from
routerParams?
optionalrouterParams:Partial<ModelRouteParams>
Defined in: packages/agentos/src/api/agent.ts:155
Routing hints passed to the model router's selectModel() call.
Useful for declaring capability requirements up-front so the router can pick a model that actually supports what the agent needs:
agent({
name: 'World Architect',
router: policyAwareRouter,
routerParams: { requiredCapabilities: ['json_mode'] },
output: WorldIdentitySchema,
});
When omitted, the router receives a minimal default params object
(taskHint only, plus function_calling in requiredCapabilities when
tools are declared).
Inherited from
security?
optionalsecurity:object
Defined in: packages/agentos/src/api/types.ts:1349
Security tier controlling permitted tools and capabilities.
tier
tier:
SecurityTier
Inherited from
skills?
optionalskills:SkillEntry[]
Defined in: packages/agentos/src/api/agent.ts:199
Optional skill entries to inject into the system prompt. Skill content is appended to the system prompt as markdown sections.
Inherited from
soul
soul:
NonNullable<string| {content:string; } | {path:string; } |undefined>
Defined in: packages/agentos/src/api/souledAgent.ts:34
Per-agent identity loaded from a SOUL.md workspace (the OpenClaw / aaronjmars-soul.md convention). Three forms are accepted:
-
Workspace path — points at a directory containing SOUL.md and optional companion files (STYLE.md, IDENTITY.md, AGENTS.md, MEMORY.md, examples/):
agent({ provider: 'anthropic', soul: '~/.agentos/agents/aria' }); -
Direct file path — points at a single SOUL.md file:
agent({ provider: 'anthropic', soul: './personas/aria.soul.md' }); -
Inline content — pass the soul markdown directly (useful for tests and ephemeral agents):
agent({ provider: 'anthropic', soul: { content: SOUL_MARKDOWN_STRING } });
Loading semantics: at agent boot the runtime reads SOUL.md, parses YAML
frontmatter into an IPersonaDefinition (HEXACO traits, voice, mood,
hardLimits), and injects the markdown body as the FIRST system message —
before instructions, chainOfThought, personality, or skills. STYLE.md
is appended as a second system message when present.
See
- loadSoul in
@framers/agentos/cognition/substrate/personas/SoulLoaderfor the loader implementation and full SOUL.md format spec. - https://github.com/aaronjmars/soul.md for the cross-framework convention.
Overrides
systemBlocks?
optionalsystemBlocks:SystemContentBlock[]
Defined in: packages/agentos/src/api/agent.ts:206
Structured system prompt blocks with cache breakpoints.
When provided, takes precedence over the assembled string from
instructions, name, personality, and skills.
Use this for prompt caching support with Anthropic.
Inherited from
thinking?
optionalthinking:object
Defined in: packages/agentos/src/api/types.ts:1330
Extended-thinking budget (in tokens) forwarded to thinking-capable
models (Opus 4.7/4.8) on every generate() / stream() / session call
this agent makes. When set, the provider emits reasoning blocks and
floors maxTokens at budgetTokens + 8192. Omitted = thinking off.
No effect on models that do not support extended thinking.
budgetTokens
budgetTokens:
number
Example
const codegen = agent({
provider: 'anthropic',
model: 'claude-opus-4-8',
tools: { GenerateCode, RunTests, JudgeOutput },
maxTokens: 24000,
thinking: { budgetTokens: 8000 },
});
Inherited from
tools?
optionaltools:AdaptableToolInput
Defined in: packages/agentos/src/api/types.ts:1276
Tools available to the agent on every call.
Accepts:
- a named high-level tool map
- an
ExternalToolRegistry(Record,Map, or iterable) - a prompt-only
ToolDefinitionForLLM[]
Inherited from
usageLedger?
optionalusageLedger:AgentOSUsageLedgerOptions
Defined in: packages/agentos/src/api/agent.ts:104
Top-level usage ledger shorthand. When present, forwarded to
observability.usageLedger internally.
Inherited from
verifyCitations?
optionalverifyCitations:VerifyCitationsConfig
Defined in: packages/agentos/src/api/types.ts:1434
Auto-verify citations after every generation.
When set, the agent retrieves sources for each user input, runs
generation, then scores each atomic claim in the response against the
retrieved sources via CitationVerifier. The resulting VerifiedResponse
is attached to the generation result's grounding field — no separate
verifier.verify(text, sources) call needed.
Pass a config object with the embedding function and the source retriever the verifier should use:
Example
const docsAgent = agent({
provider: 'openai',
model: 'gpt-4o',
verifyCitations: {
embedFn: (texts) => embeddingManager.embedBatch(texts),
retrieve: (query) => retriever.search(query),
},
});
const result = await docsAgent.generate('How do I configure a guardrail?');
console.log(result.text);
console.log(result.grounding?.overallGrounded);
for (const claim of result.grounding?.claims ?? []) {
if (claim.verdict !== 'supported') console.warn(claim.text);
}
Inherited from
voice?
optionalvoice:VoiceConfig
Defined in: packages/agentos/src/api/types.ts:1357
Voice interface configuration.