Concepts

NeuroCore has a small set of orthogonal concepts. Learn these five and you can read any project.

Blueprint

A blueprint is a YAML file describing what to run. It lists components (named skill instances) and a flow (how they connect). Flows are sequential, conditional, or graph (a concurrent DAG).

name: research-flow
components:
  - name: search
    type: tavily        # a skill registered under this name
    config: { max_results: 5 }
  - name: summarize
    type: summarize
flow:
  type: sequential
  steps:
    - component: search
    - component: summarize

Skill

A skill is a reusable unit of work — a Python class extending Skill or AsyncSkill. It declares a SkillMeta (name, provides/consumes context keys, config_schema, requires_llm, retry policy) and implements process(context) -> context. Skills are discovered from your skills/ directory or from installed neurocore-skill-* packages.

Context

A FlowContext is the shared state threaded through a run. Skills read with context.get(key) and write with context.set(key, value). provides and consumes in SkillMeta document the keys a skill produces and reads.

Provider

An LLM provider is injected into any skill with requires_llm=True. Configure it once in neurocore.yaml (llm.provider, model, base_url, api_key_env) and every LLM skill gets a ready-to-use self.llm. See Providers.

Run

A run is one execution of a blueprint. When persistence is enabled (default), each run and its steps are recorded so you can list, inspect, replay, and resume them. See Persistence & runs.

How they fit together

        flowchart LR
    YAML[Blueprint YAML] --> RT[NeuroCore Runtime]
    RT --> REG[Skill Registry]
    REG --> SK[Skills]
    RT --> FE[FlowEngine]
    SK --> LLM[LLM Provider]
    SK --> TOOLS[Tools / APIs / MCP]
    RT --> EV[Streaming Events]
    RT --> STORE[Run Store]