Adapt

Brain API Reference

Complete Brain class API — lifecycle, data, neuron management, evolution, and result types.

Complete API reference for the Brain class, covering lifecycle management, data operations, neuron management, evolution controls, and all associated result types.

Lifecycle

MethodReturnsDescription
initialize()Promise<void>Init brain (auto-called on first inject/ask)
dispose()Promise<void>Clean up all neurons and stores

Data

MethodReturnsDescription
inject(data, options?)Promise<BrainInjectResult>Route data to all neurons
ask(query, options?)Promise<BrainAskResult>Query all neurons, synthesize response
askStream(query, options?)Promise<StreamTextResult>Streaming variant of ask()
consult(query, options?)Promise<ConsultResult>Query internal neurons
inspect(query, options?)Promise<InspectResult>Agentic read-only introspection

ask() options: { model?: LanguageModel, mode?: 'direct' | 'deep' } + AI SDK CallSettings

consult() options: { neuron?: string } — target a specific internal neuron by ID

Neuron Management

MethodReturnsDescription
addNeuron(config)Promise<BaseNeuron>Add neuron with explicit config
removeNeuron(id)Promise<void>Remove neuron and dispose store
adjustNeuron(id, directive)Promise<{ neuron, result }>Natural language steering (preserves knowledge)
getNeuron(id)BaseNeuron | undefinedGet neuron by ID
getNeurons()BaseNeuron[]Get all external neurons
getInternalNeuron(id)BaseNeuron | undefinedGet internal neuron by ID

Evolution

Requires evolution.enabled (default: true).

MethodReturnsDescription
createNeuron(guidance)Promise<BaseNeuron>Create neuron from natural language
deleteNeuron(id)Promise<void>Delete neuron via evolution
mergeNeurons(ids, guidance)Promise<BaseNeuron>Merge 2+ neurons into one
splitNeuron(id, guidance)Promise<BaseNeuron[]>Split neuron into multiple
updateNeuron(id, guidance)Promise<BaseNeuron>LLM-driven config update
evaluateEvolution(options?)Promise<{ decisions, results }>Trigger evolution evaluation
evaluateEvolutionStream(options?)Promise<{ stream, decisions }>Streaming variant

evaluateEvolution() options: { dryRun?: boolean }

Signals & Config

MethodReturnsDescription
signal({ source, description, bypass? })voidInject signal for evolution
triggerEvolution({ source, description })Promise<void>Trigger evolution directly, bypassing signal buffer
update(updates)Promise<BrainUpdateResult>Update brain config
on(type, handler)thisSubscribe to specific event
on(handler)thisSubscribe to all events

Accessors

PropertyTypeDescription
promptstringBrain's purpose prompt
promptContextobject | undefinedDecomposed prompt context
evolutionContextstring | nullEvolution guidance from prompt decomposition
configResolvedBrainConfigCurrent resolved config (computed view)
neuronsMap<string, BaseNeuron>Map of external neurons
internalNeuronsMap<string, BaseNeuron>Map of internal neurons
storeBrainStorePersistence layer

Result Types

BrainAskResult

{
  insight: string                          // Synthesized answer
  sources: Array<{
    neuronId: string
    relevance: number
    confidence: number
    insight: string
  }>
  gaps: string[]                           // Aggregated knowledge gaps
}

BrainInjectResult

{
  id: string                               // Inject ID
  batches: Array<{
    id: string
    index: number
    results: Array<{
      neuronId: string
      result: LearnOutput                  // See neuron-api.md
    }>
  }>
}

BrainUpdateResult

{
  changedFields: string[]
  config: ResolvedBrainConfig
  neuronResults: Array<{
    neuronId: string
    changedFields: string[]
  }>
  evolutionResults?: {                     // Present when semantic changes trigger evaluation
    decisions: EvolutionDecision[]
    created: string[]
    updated: string[]
    deleted: string[]
    merged: string[]
    split: string[]
  }
}

On this page