Interface: AgencyOptions
Defined in: packages/agentos/src/api/types.ts:1464
Configuration for the agency() factory function.
Extends BaseAgentConfig with a required agents roster and optional
multi-agent orchestration settings.
Example
import { agency, hitl } from '@framers/agentos';
const myAgency = agency({
model: 'openai:gpt-4o',
strategy: 'sequential',
agents: {
researcher: { instructions: 'Find relevant papers.' },
writer: { instructions: 'Write a clear summary.' },
},
controls: { maxTotalTokens: 50_000, onLimitReached: 'warn' },
hitl: {
approvals: { beforeTool: ['delete-file'], beforeReturn: true },
handler: hitl.autoApprove(),
timeoutMs: 30_000,
onTimeout: 'reject',
},
on: {
agentStart: (e) => console.log(`[${e.agent}] started`),
agentEnd: (e) => console.log(`[${e.agent}] done in ${e.durationMs}ms`),
},
});
See
agency -- the factory function that consumes this configuration.
See BaseAgentConfig for the shared config surface inherited by this interface.
Extends
BaseAgentConfig
Properties
adaptive?
optionaladaptive:boolean
Defined in: packages/agentos/src/api/types.ts:1479
Whether the orchestrator may override strategy at runtime based on
task complexity signals.
agents
agents:
Record<string,BaseAgentConfig|Agent>
Defined in: packages/agentos/src/api/types.ts:1469
Named roster of sub-agents. Each value is either a BaseAgentConfig
object (the agency will instantiate it) or a pre-built Agent instance.
apiKey?
optionalapiKey:string
Defined in: packages/agentos/src/api/types.ts:1240
Override the provider API key instead of reading from environment variables.
Inherited from
BaseAgentConfig.apiKey
avatar?
optionalavatar:AvatarConfig
Defined in: packages/agentos/src/api/types.ts:1306
Avatar visual presentation configuration.
Inherited from
BaseAgentConfig.avatar
baseUrl?
optionalbaseUrl:string
Defined in: packages/agentos/src/api/types.ts:1242
Override the provider base URL (useful for local proxies or Ollama).
Inherited from
BaseAgentConfig.baseUrl
channels?
optionalchannels:Record<string,Record<string,unknown>>
Defined in: packages/agentos/src/api/types.ts:1311
Channel adapter configurations keyed by channel name. Values are channel-specific option objects passed through opaquely.
Inherited from
BaseAgentConfig.channels
cognitiveMechanisms?
optionalcognitiveMechanisms:CognitiveMechanismsConfig
Defined in: packages/agentos/src/api/types.ts:1348
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
BaseAgentConfig.cognitiveMechanisms
controls?
optionalcontrols:ResourceControls
Defined in: packages/agentos/src/api/types.ts:1325
Resource limits (tokens, cost, time) applied to the entire run.
Inherited from
BaseAgentConfig.controls
dependsOn?
optionaldependsOn:string[]
Defined in: packages/agentos/src/api/types.ts:1332
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
BaseAgentConfig.dependsOn
discovery?
optionaldiscovery:DiscoveryConfig
Defined in: packages/agentos/src/api/types.ts:1288
Runtime capability discovery configuration.
Inherited from
BaseAgentConfig.discovery
emergent?
optionalemergent:EmergentConfig
Defined in: packages/agentos/src/api/types.ts:1302
Emergent agent synthesis configuration.
Inherited from
BaseAgentConfig.emergent
guardrails?
optionalguardrails:string[] |GuardrailsConfig
Defined in: packages/agentos/src/api/types.ts:1294
Guardrail policy identifiers or structured config.
string[]— shorthand; applies to both input and output.GuardrailsConfig— full control with separate input/output lists.
Inherited from
BaseAgentConfig.guardrails
hitl?
optionalhitl:HitlConfig
Defined in: packages/agentos/src/api/types.ts:1300
Human-in-the-loop approval configuration.
Inherited from
BaseAgentConfig.hitl
instructions?
optionalinstructions:string
Defined in: packages/agentos/src/api/types.ts:1236
Free-form system instructions prepended to the system prompt.
Inherited from
BaseAgentConfig.instructions
maxRounds?
optionalmaxRounds:number
Defined in: packages/agentos/src/api/types.ts:1484
Maximum number of orchestration rounds before the run is terminated.
Applies to iterative strategies like "debate" and "review-loop".
maxSteps?
optionalmaxSteps:number
Defined in: packages/agentos/src/api/types.ts:1265
Maximum number of agentic steps (LLM calls) per invocation. Defaults to 5.
Inherited from
BaseAgentConfig.maxSteps
maxTokens?
optionalmaxTokens:number
Defined in: packages/agentos/src/api/types.ts:1277
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 — without it, calls fall back to the provider default (OpenAI 4096, Anthropic 4096-8192). Set to ~2× the agent's typical response size so normal calls finish naturally and only runaway generations hit the cap. Omit to use the provider default.
Inherited from
BaseAgentConfig.maxTokens
memory?
optionalmemory:boolean|MemoryConfig
Defined in: packages/agentos/src/api/types.ts:1284
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
BaseAgentConfig.memory
model?
optionalmodel:string
Defined in: packages/agentos/src/api/types.ts:1229
Model identifier. Accepted in two formats:
"provider:model"— e.g."openai:gpt-4o".- Plain model name when
provideris also set.
Inherited from
BaseAgentConfig.model
name?
optionalname:string
Defined in: packages/agentos/src/api/types.ts:1238
Display name for the agent, injected into the system prompt.
Inherited from
BaseAgentConfig.name
observability?
optionalobservability:ObservabilityConfig
Defined in: packages/agentos/src/api/types.ts:1321
Observability and telemetry configuration.
Inherited from
BaseAgentConfig.observability
on?
optionalon:AgencyCallbacks
Defined in: packages/agentos/src/api/types.ts:1323
Event callbacks fired at various lifecycle points during the run.
Inherited from
BaseAgentConfig.on
output?
optionaloutput:unknown
Defined in: packages/agentos/src/api/types.ts:1317
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
BaseAgentConfig.output
permissions?
optionalpermissions:PermissionsConfig
Defined in: packages/agentos/src/api/types.ts:1298
Fine-grained tool and resource permission overrides.
Inherited from
BaseAgentConfig.permissions
personality?
optionalpersonality:Partial<{agreeableness:number;conscientiousness:number;emotionality:number;extraversion:number;honesty:number;openness:number; }>
Defined in: packages/agentos/src/api/types.ts:1247
HEXACO-inspired personality trait overrides (0–1 scale). Encoded as a human-readable trait string appended to the system prompt.
Inherited from
BaseAgentConfig.personality
provenance?
optionalprovenance:ProvenanceConfig
Defined in: packages/agentos/src/api/types.ts:1319
Provenance and audit-trail configuration.
Inherited from
BaseAgentConfig.provenance
provider?
optionalprovider:string
Defined in: packages/agentos/src/api/types.ts:1234
Provider name (e.g. "openai", "anthropic", "ollama").
Auto-detected from environment API keys when omitted.
Inherited from
BaseAgentConfig.provider
rag?
optionalrag:RagConfig
Defined in: packages/agentos/src/api/types.ts:1286
Retrieval-Augmented Generation configuration.
Inherited from
BaseAgentConfig.rag
security?
optionalsecurity:object
Defined in: packages/agentos/src/api/types.ts:1296
Security tier controlling permitted tools and capabilities.
tier
tier:
SecurityTier
Inherited from
BaseAgentConfig.security
strategy?
optionalstrategy:AgencyStrategy
Defined in: packages/agentos/src/api/types.ts:1474
Orchestration strategy for coordinating sub-agents.
Defaults to "sequential" when omitted.
tools?
optionaltools:AdaptableToolInput
Defined in: packages/agentos/src/api/types.ts:1263
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
BaseAgentConfig.tools
verifyCitations?
optionalverifyCitations:VerifyCitationsConfig
Defined in: packages/agentos/src/api/types.ts:1380
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({
model: 'openai: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
BaseAgentConfig.verifyCitations
voice?
optionalvoice:VoiceConfig
Defined in: packages/agentos/src/api/types.ts:1304
Voice interface configuration.
Inherited from
BaseAgentConfig.voice