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.
| Dimension | System prompt | External state engine |
|---|---|---|
| Primary job | Describe desired behavior and constraints | Persist and update application-owned state |
| Lifetime | Usually the current request or conversation context | Can survive process restarts and model-provider changes |
| Update rule | The model interprets natural-language instructions | Application code applies explicit transitions |
| Inspection | Infer behavior from prompts and output | Read the state artifact directly |
| Portability | Prompt may behave differently across models | State remains independent; projection can be adapted per model |
| Testing | Behavioral evals and prompt regression | Unit tests, persistence tests, transition tests, plus behavioral evals |
| Security boundary | Instructions alone cannot enforce access control | Code can gate state and tool access — if implemented correctly |
| Consciousness evidence | None | None |
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.
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.
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:
- System prompt: stable role, response format, safety policy, tone, and tool-use instructions.
- Conversation context: recent turns and task-local working information.
- State engine: durable records, explicit transitions, cross-session continuity, and model-independent memory.
- Database or event log: authoritative business data, transactions, permissions, and compliance records.
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.
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
- You need restart continuity. The process can stop and later restore a defined state.
- You need provider portability. The state should survive a move from one model API to another.
- You need independent inspection. A developer can read or test state without trusting the model's narration.
- You need explicit dynamics. Decay, capacity, selection, or transition rules belong in code.
- 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.