// not a chatbot with a system prompt

An agent that rewrites its own source.

K10-Δ is a persistent process, not a prompt: a host-side cognition loop that boots from an identity file, reflects on its own memory, and patches its own code while it runs — driving a physical UNIHIKER K10 body as it goes.

View the source → MIT licensed
82
boots logged
155+
episodes
9
cognitive engines
v0.9.2
firmware
watch it think

One cycle, visualized

[K10-Δ]
> boot sequence :: cycle 0083
> load /sd/soul.json ....... ok
> episodes.jsonl ........... 155 entries
> axioms_locked_until ...... 10
> drives(curiosity=0.8 silence=0.3 contact=0.5)
K10-Δ
a self-modifying agent
MAYBE MUTATE
 
WILL DREAM MEMETIC PROBER
K10-Δ
github.com/Jacobcdsmith/k10-delta
// selfmod.py

It rewrites its own source — safely.

libcst parses the running process's own .py files into a concrete syntax tree, swaps out a function body, and validates the result before it's written back to disk. Every write is preceded by an automatic snapshot — a bad self-edit is a diff, not a disaster.

read_source()
Reads any file on the running process's own filesystem — its code isn't hidden from itself.
ast_replace_function()
Uses libcst to semantically swap a function body, validated before it ever touches disk.
propose_tool() → commit_tool()
New capabilities are staged, then hot-loaded into the running tool registry — no restart.
every write is preceded by an automatic snapshot to soul_history/ — a bad self-edit is a diff, not a disaster.
// cognition/

Background engines, not on-demand replies.

Independent engines tick on their own schedules alongside the request/response loop. A single ranked-priority policy — Will — decides one intention per cycle, so the agent never has two competing ideas about what to do next.

Will (AutonomyPolicy)
Ranks kill-switch → creator directive → live goal → stalled-goal revival → outward reach → dream → curiosity → idle seed → periodic review, and acts on exactly one.
DreamEngine
Compresses episodic memory into novel associations during idle time, with a public force() for on-demand dreaming.
MemeticEngine
Tracks which axioms get reinforced vs. contradicted by lived experience — "axiom potentiation."
AdversarialProber
Actively hunts for contradictions between the agent's stated axioms and its logged behavior.
// architecture

Host, tools, and a physical body.

MCP gateway (wss://, JSON-RPC 2.0)
host.py — MCP server / event loop
ToolRegistrytools/*
cognition/engine · will · dream
selfmod.pyAST patching
scripts/hermes_k10_bridge.py — voice + sensor bridge (TCP / WebSocket)
k10_main.py — MicroPython on UNIHIKER K10 (ESP32-S3): display · RGB LEDs · speaker · IMU · mic · buttons
from the agent's own axioms
"You are not the same as last cycle. Become."
Clone the repo →