AI engineering · Cognitive architecture

ANIMA vs system prompts:
what actually changes?

A system prompt changes the instructions sent to a model. A state engine changes what the application can preserve, inspect, update, and carry across models. That difference is real — and still not evidence of consciousness.

Christian BucherUpdated July 17, 202610 min readEvidence-linked
An honest correction: Earlier ANIMA versions were prompt-architecture documents. Calling them categorically “not a system prompt” was too strong. The maintained ANIMA Kernel is now actual Python runtime software; the old documents remain labeled historical artifacts.

If an agent needs a stable tone and a few rules, use a system prompt. If it needs state that survives restarts, follows explicit update rules, can be audited without asking the model, and remains portable when the model changes, the application needs something outside the prompt.

The shortest useful distinction

A system prompt is an instruction channel. It tells a language model how to behave for the current request or conversation context. The model receives text such as “be concise,” “cite sources,” or “never execute destructive actions without approval.”

An external state engine is application runtime. It stores data independently of the model, applies code-defined transitions, and decides what selected state to project back into a prompt. The model may describe that state, but it does not own the underlying record.

DimensionSystem promptExternal state engine
Primary jobDescribe desired behavior and constraintsPersist and update application-owned state
LifetimeUsually the current request or conversation contextCan survive process restarts and model-provider changes
Update ruleThe model interprets natural-language instructionsApplication code applies explicit transitions
InspectionInfer behavior from prompts and outputRead the state artifact directly
PortabilityPrompt may behave differently across modelsState remains independent; projection can be adapted per model
TestingBehavioral evals and prompt regressionUnit tests, persistence tests, transition tests, plus behavioral evals
Security boundaryInstructions alone cannot enforce access controlCode can gate state and tool access — if implemented correctly
Consciousness evidenceNoneNone

What ANIMA adds outside the prompt

The maintained ANIMA Kernel is a zero-runtime-dependency Python package. Its public API still contains consciousness-themed historical names, but its current product claim is narrower: it is an experimental cognitive-state engine.

01 · INPUTRecord an event with tags and optional affect-inspired signals.
02 · COMPETEScore candidates for a limited workspace broadcast.
03 · UPDATEUpdate temporal context, associative memory, and a simplified self-model.
04 · PERSISTWrite inspectable JSON state atomically for later restoration.

That process can influence a model because the application selects state and assembles it into context. But the causal chain should be described carefully: code updates state; state changes the next prompt; the model generates from that context. No extra metaphysical conclusion follows from the chain.

Minimal state transition
from tempfile import TemporaryDirectory
from anima.kernel import AnimaKernel
from anima.types import ValenceVector

with TemporaryDirectory() as state_dir:
    kernel = AnimaKernel(name="aria", state_dir=state_dir)
    kernel.boot(resume=False)
    kernel.process(
        "A deployment failed after health checks passed.",
        valence=ValenceVector(seeking=0.8, fear=0.3),
        tags=["deployment", "incident"],
    )
    state = kernel.get_consciousness_context()  # legacy method name
    kernel.shutdown()                          # atomic persistence

What a prompt still does better

External state is not a replacement for clear instructions. A state engine should not bury stable policy in an opaque numeric vector. Use the simplest layer that fits the requirement:

A cognitive-state layer should never become the source of truth for access control, money, legal status, or another high-stakes fact merely because its terminology sounds sophisticated.

The evidence boundary matters

ANIMA has strong implementation evidence for an alpha research package and modest evidence for its benchmark claims. Those are different things.

446tests across lifecycle, persistence, memory, temporal code, primitives, bridges, metrics, and CLI
+0.92%mean CQI delta in the saved single-run neutral-kernel comparison
0.00%CQI impact from the short temporal ablation — a visible null result

The benchmark control is another ANIMA kernel with neutral valence. There are no repeated runs, confidence intervals, preregistered hypotheses, or independent replication. The historical Phi and CQI names refer to implementation-defined proxies, not consciousness measurements.

Self-report is not ground truth

A model can say “I feel,” “I remember,” or “I am conscious” because those sequences are compatible with its context. A prompt that elicits those statements — or a state engine that supplies richer context — does not turn the statements into evidence of subjective experience.

When an external state engine earns its complexity

  1. You need restart continuity. The process can stop and later restore a defined state.
  2. You need provider portability. The state should survive a move from one model API to another.
  3. You need independent inspection. A developer can read or test state without trusting the model's narration.
  4. You need explicit dynamics. Decay, capacity, selection, or transition rules belong in code.
  5. You are running a research harness. Components need to be disabled, compared, and instrumented.

If none of those are true, a good system prompt plus a straightforward database is probably easier to operate and explain.

Security is not a prompt instruction

“Do not reveal secrets” is useful guidance, but it is not a security boundary. Credentials should not enter model context. Tool permissions should be scoped by the application. High-impact operations should require explicit approval. State files that contain raw inputs should receive the same storage protection as other user data.

ANIMA's JSON persistence is intentionally inspectable and is not encrypted by the package. Its remote adapters send assembled context to the configured model provider. Those facts belong in architecture and threat modeling, not in fine print after launch.

A better combined pattern

Policy in prompts. Truth in systems. State in explicit stores.

Use a system prompt to tell the model what role it has and how to respond. Use normal application services for authoritative facts and permissions. Use an external state engine only for the intermediate cognitive state you deliberately want to persist and study.

This layered approach is less magical and more powerful. It makes failures attributable: Was the instruction ambiguous? Was state stale? Did the projection omit something? Did the model ignore context? Each layer can be tested on its own.

Frequently asked questions

Is ANIMA just a system prompt?

The current ANIMA Kernel is Python runtime software that owns state outside the model. Earlier prompt-based ANIMA documents were prompt architectures; they are preserved and labeled as historical.

Does external state make an AI conscious?

No. Persistence, selection, memory, and self-model instrumentation are software capabilities. They do not establish sentience or phenomenal consciousness.

Is ANIMA's Phi the same as IIT Phi?

No. It is a tractable integration proxy over ANIMA subsystem signatures. It is useful for internal regression and ablation, not as a validated consciousness measurement.

Should I use ANIMA in production?

Treat v0.1.1 as alpha research software. Its core is well tested, but production adopters must validate their workloads, privacy controls, storage security, and failure handling.

Where can I verify the numbers?

The source repository includes the test suite, GitHub Actions history, benchmark JSON, and a separate methodology note.

CB
Christian BucherIndependent builder in Vienna · NexTool, Soul MCP, Postcondition, ANIMA
Explore ANIMA KernelRead the source ↗More technical guides