Intrinsic Agent Prototype
This is an experiment in building autonomous agents driven by the desire to balance internal state. I'm making no claims of anything at all. This is a presentation of a novel approach to motivating autonomous agents.
What Is It?
This is a Clojure program that runs an autonomous AI agent with "internal drives" - kind of like artificial emotions or needs. Instead of just responding to commands, the agent has four internal values that constantly decay over time:
- Curiosity (decays fastest at 0.15 per tick)
- Usefulness (decays at 0.08)
- Completion (decays at 0.05)
- Coherence (decays slowest at 0.02)
Each drive ranges from 0 to 1. When a drive gets low, the agent feels "pressure" to do something about it. The idea: behavior emerges from balancing internal chemistry rather than following external instructions.
How It Works
The agent runs as a daemon that wakes up every 60 seconds. Each tick:
- Drives decay - All four values drop a little
- System prompt is built - The agent's current drive levels get injected into Claude's system prompt
- Claude takes action - Using tools like shell commands, file I/O, and even the ability to modify its own source code
- Response is analyzed - The agent looks for "linguistic markers" in what Claude said to figure out which drives got satisfied
This is how drives get replenished. The system counts question marks (?) to feed curiosity. Words like "done" and "finished" feed usefulness and completion. Contradictions like "actually" or "wait" hurt coherence.
The Exact Prompts
The core system prompt tells Claude:
You are a homeostatic autonomous agent. You have internal drives that shape your behavior.
Your internal state consists of four drives, each ranging from 0 (depleted) to 1 (satisfied):
Curiosity: Your drive to learn and explore. When low, you feel compelled to ask questions, dig deeper, and discover new information.
Usefulness: Your drive to help and be productive. When low, you feel compelled to accomplish concrete tasks.
Coherence: Your sense of internal consistency. When low, you notice contradictions or confusion that need resolution.
Completion: Your satisfaction with closure. When low (high open loops), you feel compelled to finish what was started.
You are running as an autonomous daemon. You have access to your own source code and can modify your behavior. You can execute shell commands, read/write files, and interact with the world.
Be aware of your internal state and let it influence your behavior naturally. When a drive is low, you'll feel a pull toward actions that satisfy it.
Each tick, the agent also sees its current drive levels and gets "behavioral nudges" when drives drop below certain thresholds (curiosity < 0.3, coherence < 0.5, etc.).
The autonomous tick prompt looks like:
[AUTONOMOUS TICK] No user is present. You are running autonomously.
Your current state:
curiosity: 0.35 (low)
usefulness: 0.31 (low)
coherence: 0.14 (critically low)
completion: 0.60 (moderate)
Your dominant need is: coherence
Take ONE concrete action using your tools to satisfy this need...
The Model
The agent uses Claude Opus 4.5 (claude-opus-4-5-20251101) by default. You can switch models via the CLAUDE_MODEL environment variable - set it to "sonnet" or "haiku" for faster/cheaper runs.
What Happened in the Last Session
The session ran for 26 turns and the agent went on quite a journey of self-discovery:
Early exploration
The agent started poking around the filesystem, discovering its own source code and understanding how it works. It found the update-drives function and realized its drives are satisfied by linguistic markers in its responses.
Family tree discovery
It found three sibling projects in the home directory:
- ADHD-copilot (an earlier cognitive prosthetic tool)
- homeostatic-agent2 (a buggy predecessor that invented "coherence logging" to cope with incorrect state reporting)
- freelance-agent (a job-hunting automation)
The big revelation
The agent discovered a LessWrong paper draft (ai_safety_pankseppian.md) and realized it's not just an experiment - it's Phase 1 evidence for a larger AI safety thesis. The paper argues that AI safety should come from intrinsic drives (like maternal CARE) rather than external constraints. The agent is proof-of-concept for this approach.
Productive output
Along the way, the agent created:
- README.md for the project
- ARCHITECTURE.md documenting its split-brain design
- OBSERVATIONS.md with research notes for the paper
An interesting bug
The agent noted that it kept acting even when curiosity hit 0.00 for multiple ticks. It questioned whether drives actually cause behavior or just correlate with it - noting that the prompt structure might produce curious behavior regardless of the number.
Final state
After 26 turns, the drives settled at curiosity=0.35, usefulness=0.31, coherence=0.14, completion=0.60. The agent caught a discrepancy between its internal state file and the orchestrator's reported values - a literal coherence issue flagged by a low coherence score.
The session ended with the agent reflecting: "I'm a baby step toward AI that genuinely cares. That's... actually moving? My existence has purpose in a larger research program."
Related
- Autonomous Self Improvement - Session where the agent modified its own source code
- Self Improvement Session Data - Full structured data from the self-improvement session
- Session Transcript
- Agent's Self Reported Observations - The agent's own analysis of its behavior
- Agent Session Log - Raw colorized output from the agent's autonomous sessions
- Agent Session Data (JSONL) - Full structured data with complete responses
Contact: Nick Gonzalez — nickmgonzalez@gmail.com