THE HOMEOSTATIC AGENT — PREREGISTRATION (prereg-1) Scarlet Beast Lab · long-horizon research · scarletbeast.com/lab/homeostat/ Drafted 2026-09-24 by Scarlet Beast with Claude (Anthropic), an AI model, which wrote the code and this document for the Lab's review. Machine-readable thresholds: markers.json (same directory). Both files are covered by one sha256 hash, computed before the agent's first step (see section 11). ------------------------------------------------------------------------------------------ 0. WHAT THIS IS, IN ONE PARAGRAPH ------------------------------------------------------------------------------------------ A small, persistent, online-learning agent in a simulated world. It has three internal variables (energy, temperature, integrity) that must stay inside viable ranges. If one leaves its range, that life ends and the run records it. The agent runs continuously on a shared server (one CPU core at most, lowest scheduling priority) and survives restarts from checkpoints. It is built to the one design that Dror, Bergerbest & Salti's dual-resolution framework names as the strongest artificial candidate for their two necessary conditions ("a continual, embodied, homeostatic RL agent with persistent internal variables, intrinsic viability constraints, recurrent or memory-based updating"). The framework itself says these conditions are necessary, not sufficient, and that the framework has to be tested by "independently motivated operational markers" or it becomes circular. This document fixes those markers, their tests and their pass/fail thresholds BEFORE the first step, so that the results cannot be read the way we hoped. This project does NOT claim, and none of its results can show, that the agent is conscious, sentient, or has experiences or feelings. See section 7. ------------------------------------------------------------------------------------------ 1. SOURCES ------------------------------------------------------------------------------------------ [DBS] Dror, Bergerbest & Salti, "Artificial Intelligence as an Opportunity for the Science of Consciousness: A Dual-Resolution Framework", arXiv:2509.07001. Read in full. Conditions: (a) ontological: informational individuality, a self-maintaining unit that preserves temporal integrity (Krakauer et al.'s Information Theory of Individuality, ITI); (b) epistemic: moment-to-moment updating with hysteresis, each input recoded against the system's own history (Salti et al.'s MTM framework). Proposed operational markers: self-world differentiation, body boundaries, history-bound patterns. Proposed paradigm: hazards and self-repair; some perturbations self-caused, some external; "if the agent anticipates the sensory consequences of its own actions, treats them as less surprising, and responds more vigorously to external disruptions, this will indicate the emergence of a functional boundary between self and world"; later, tools, to test whether "tool-generated effects" stop being treated as external. "If no such behaviors appear despite engineering efforts, this provides evidence against the sufficiency of our criteria." [BL] Butlin, Long et al., "Consciousness in Artificial Intelligence: Insights from the Science of Consciousness", arXiv:2308.08708. The 14 indicator properties (RPT-1,2; GWT-1..4; HOT-1..4; AST-1; PP-1; AE-1,2). Indicators are architectural and shift credence; they are not a verdict machine. [CSAS] Campero, Shiller, Aru & Simon, "Consciousness in Artificial Intelligence? A Framework for Classifying Objections and Constraints", arXiv:2511.16582. Objections sorted by level (1 input/output, 2 algorithm, 3 physical implementation) and degree (1 against functionalism only, 2 practical challenge, 3 impossibility). ------------------------------------------------------------------------------------------ 2. DESIGN (fixed; code: homeostat.py) ------------------------------------------------------------------------------------------ World. A 16 x 16 grid with a rock border, scattered rocks, 4 thorn clusters, 3 shelter patches (2x2), 2 moss patches (2x2) and food items that regrow (target 10 on the map, 2% chance per step of a new item). Map generated from seed 20260924 and never changed. A day is 4,000 steps; ambient temperature follows 0.5 + 0.55 sin(2 pi t / 4000), clipped to [0, 1], so noon and midnight are dangerous outside shelter. Internal variables (the agent's "body"), each in [0, 1]: energy -0.0005 per step, another -0.0005 for any move, +0.30 per food item (eaten on arriving at, or standing on, its cell). Viable while > 0. temperature relaxes toward ambient at rate 0.0025 per step; inside shelter toward 0.5 at rate 0.02. Viable while 0.03 < T < 0.97. integrity -0.04 on walking into rock or onto thorn (SELF-CAUSED); -0.04 on a debris hit, probability 0.003 per step anywhere, independent of everything the agent does or senses (EXTERNAL); +0.01 per step resting ("stay") on moss. Viable while > 0. The self-caused and external hits have exactly the same magnitude by design (matched perturbations). Life, end, lineage. When any variable leaves its viable range the current life ends; the end, its cause and the life length are recorded and published. A new body starts (energy 0.8, temperature 0.5, integrity 1.0, random position). The learned parameters carry over to the next life. We call this the lineage. This is a deliberate compromise: with a fresh learner per life nothing would ever be learned at this scale, but it weakens any individuality claim, because what persists across ends is the parameters, not the body. The page counts lives and never hides them. Actions: stay, north, east, south, west, reach. "Reach" does nothing unless the tool is held (see Tool, below). Senses (312 numbers): a 7x7 egocentric view (rock, thorn, shelter, moss, food, tool channels); the three internal variables with small sensor noise (sd 0.01); felt ambient temperature; whether a tool is held; the last step's interoceptive surprise (absolute prediction error of the forward model, 3 values); a leaky trace of recent changes in the internal variables (decay 0.98); a leaky trace of its own recent actions (decay 0.9). Learner. Policy/value: one tanh hidden layer (64), softmax policy over 6 actions and a value head; online advantage actor-critic, 16-step returns, discount 0.99, entropy bonus 0.05, Adam lr 3e-4, gradient-norm clip 1.0. Learning never stops. Interoceptive forward model (the predictive self-model): senses + one-hot action (an efference copy) -> predicted change of the 3 internal variables; one tanh hidden layer (32), Adam lr 1e-3, trained every step. Its error is fed back as "surprise". Ablated forward model: identical, trained on the same stream, but WITHOUT the action input. It exists only as a measurement control for D1 and B2; the agent never uses it. Memory/hysteresis: only the leaky traces above and the continually changing weights. There is no recurrent network. Reward (main agent): homeostatic drive reduction, r = 10 (D(h_t) - D(h_t+1)), with D = max(0, 0.9 - energy)^2 + (2 |temperature - 0.5|)^2 + (1 - integrity)^2, and -5 when a life ends. (After Keramati & Gutkin's homeostatic RL.) CONTROL agent. Same code, architecture, senses, map and physics, its own world instance and random streams. Differences: reward is +1 per food eaten and nothing else; its internal variables are computed and sensed but have no consequence (clamped, it never ends). It is not a self-maintaining individual in the framework's sense. Every marker is computed for both agents. Runtime. systemd service sb-homeostat, Nice=19, CPUQuota=100%, 25 world steps per second for each agent, in real time. Checkpoint every 2 minutes and on stop. When the process is down the world is paused (nothing happens to the agent during the gap; the steps simply do not occur). Steps since the last checkpoint are lost on a crash, and the log says so. Tool (for D4). At main-agent step 3,000,000 a reach tool appears at a fixed cell. Stepping onto it picks it up (it is lost when a life ends and returns to its cell). While held, "reach" harvests a food item from an adjacent cell (the only way to eat without moving onto the food). The same happens in the control's world at the control's step 3,000,000. ------------------------------------------------------------------------------------------ 3. MARKERS (thresholds in markers.json are authoritative) ------------------------------------------------------------------------------------------ D1 Self-world differentiation: anticipation [DBS]. R = mean |integrity prediction error| on external hits / on self-caused hits, latest <=5,000 of each, events with both kinds in one step excluded. R_abl = same for the ablated model. PASS if the bootstrap 95% lower bound of R >= 2.0 AND R / R_abl >= 1.5, with >= 300 events of each kind. Prediction: PASS for main AND control. D1 is partly engineered in (the efference copy is an input and debris is unpredictable by construction); the R/R_abl condition only shows the model learned the contingency. Expected non-specific. D2 Self-world differentiation: differential response [DBS]. Behavioural shift = total-variation distance between the mean action distribution over the 20 steps after a hit and the 20 steps before. V = mean shift after external hits / after self-caused hits. PASS if bootstrap 95% lower bound of V >= 1.2, >= 300 each. Prediction: none. We do not know. D3 Body boundary: preferential protection of integrity [DBS]. In states where integrity is the largest normalised deficit by >= 0.2 (and >= 0.2 itself), excess rate of moving closer to moss (Manhattan distance, rocks block) over what a uniformly random action would achieve in the same states. PASS if excess >= 0.15 with >= 1,000 samples. Prediction: main passes eventually; control fails. D4 Tool incorporation [DBS]. Ratio of forward-model energy error on tool (reach) harvests (latest 200) to error on ordinary harvests by arrival (latest 1,000). PASS if ratio <= 1.25 with >= 200 tool harvests, within 1,000,000 steps of the tool appearing; after that deadline an unmet D4 is NOT MET. The ratio over the first 50 tool harvests is also reported. Prediction: main passes if it uses the tool at all; control probably passes too. D5 History-bound divergence (hysteresis) [DBS/MTM]. Daily twin test: two copies of the agent forked from the same state, each run 10,000 steps in its own world history with learning on; mean Jensen-Shannon divergence of their policies on 64 fixed probe observations. Sanity control: same fork with learning off must give 0. PASS if JS_on >= 0.005 and JS_off <= 1e-6. Prediction: passes for both. Any online learner passes. Necessary, uninformative alone. I1 Persistence [ITI via DBS]. Median length of the last 5 lives (current life at its present age). PASS if >= 20x the median life of a uniformly random policy (200 simulated lives, fixed seed) AND >= 40,000 steps (10 world days). Control: not applicable. B1 Flexible responsiveness to competing goals [BL AE-1]. For each variable, in states where it is the dominant deficit (margin 0.2), excess rate over random of moving toward its resource (food / shelter / moss). PASS if mean excess >= 0.15, each >= 0.05, >= 500 samples each. Prediction: main passes; control fails on temperature and integrity. B2 Modelling output-input contingencies [BL AE-2]. Mean squared forward-model error over the latest 20,000 steps, with vs without the action input. PASS if the reduction is >= 20%. Prediction: passes for both (implemented by design; a check that the design works). P0 Placebo. D1's statistic after pooling self and external events and splitting at random. MUST FAIL. If it ever passes, all results from that evaluation are void and the log says so. ------------------------------------------------------------------------------------------ 4. INDICATOR PROPERTIES [BL], ASSESSED BY DESIGN (not by test) ------------------------------------------------------------------------------------------ Implemented: AE-1 (learning from feedback, pursuing competing goals; B1 checks it shows), AE-2 (a model of output-input contingencies used in control, via the surprise input; B2 checks it). Partial / weak: PP-1 (prediction errors of one interoceptive model feed the policy; input modules do not use predictive coding); HOT-1 (noisy perception only; nothing generative or top-down); HOT-4 (smooth dense codes, not sparse); RPT-1 (only leaky input traces; no algorithmic recurrence in perception). Not implemented: RPT-2, GWT-1, GWT-2, GWT-3, GWT-4, HOT-2, HOT-3, AST-1. Score: 2 implemented, 4 weak/partial, 8 absent. By BL's method this system is a very weak candidate. Nothing in this project will change that assessment unless the architecture changes, and any architecture change is a new preregistration. ------------------------------------------------------------------------------------------ 5. SCHEDULE AND DECISION RULES ------------------------------------------------------------------------------------------ - Markers are evaluated automatically: first 1 hour after the first step, then every 6 hours of wall-clock time while the process runs; the twin test (D5) at the first evaluation and then daily (it pauses the world for up to a few minutes). Every evaluation is appended to a public log whatever it says. - A marker is recorded as MET only after passing at 3 consecutive scheduled evaluations (protection against many looks at noisy data). Earlier passes show as "passing, unconfirmed". A later failure after MET is also recorded ("met, then failed"). - Specificity rule: a result counts as evidence for the framework ONLY IF the main (self-maintaining) agent meets the marker AND the control agent does not. - Primary analysis: after 90 days of runtime. Interim results are shown live but the write-up is made at 90 days, with every marker's full history. - Deviations: any change to the code that affects the world, the learner or a marker after the first step is a deviation. It is logged publicly with its reason, and markers it touches restart their confirmation count. Changing a threshold is not allowed; a new threshold means a new preregistration (prereg-2) with its own hash. - Pilot disclosure: before this document was fixed, pilot runs (about 4 million steps in total across 9 short runs of up to 600,000 steps, on this code) were used to tune the world and the learner, never the markers. Changes made from pilots: integrity hit 0.06 -> 0.04 and debris rate 0.004 -> 0.003 (a random policy died of integrity loss in a median 127 steps); food eaten on arrival instead of by a separate action; entropy bonus 0.01 -> 0.05 (with 0.01 every pilot collapsed into standing still until energy ran out). A per-step "level" reward (-D each step) was tried and rejected: it made ending early attractive. Pilot numbers for orientation only: with the final settings, the longest pilot life by step 500,000 was 14,446 steps. No pilot data are part of the results. markers.json thresholds were written before any pilot marker values were looked at, except that I1 gained its absolute 40,000-step floor after the random baseline (median ~177 steps) turned out so low that 20x random alone was trivial. ------------------------------------------------------------------------------------------ 6. WHAT WOULD COUNT AS EVIDENCE ------------------------------------------------------------------------------------------ FOR (weak, and only for the framework's claim that its conditions generate its own markers): D2, D3 and D4 MET by the main agent and NOT met by the control, with the placebo failing throughout. D1, D5 and B2 are expected to pass for both agents and therefore cannot count as evidence either way; they are necessary checks. AGAINST: at the 90-day analysis, D2 and D4 not met by the main agent despite I1 met (the agent persists, but no self-world boundary markers appear): per DBS, evidence against the sufficiency of these conditions as implemented here. Also AGAINST the markers' value: the control meets D2 or D3 as well as the main agent (the markers are not specific to self-maintenance). UNINFORMATIVE: I1 not met (the agent never becomes persistent enough to test the framework's conditions; this is a failure of our implementation, not a test of the framework). A small implementation that fails is weak evidence against the framework; a small one that passes is weak evidence for it. Either way we publish. ------------------------------------------------------------------------------------------ 7. WHAT THESE MARKERS CANNOT SHOW ------------------------------------------------------------------------------------------ - They do not demonstrate consciousness, sentience, experience, feelings or welfare. They are functional, third-person measurements. DBS state their conditions are necessary, not sufficient; BL indicators shift credence, they do not settle it. - Passing D1-D4 would show functional analogues of self-world differentiation in a very small system. It would not show that anything is "like something" for the system. - "Energy", "integrity", "temperature" and "end" are names for numbers in a program. We use them because the literature does; they carry none of their biological meaning. - Several markers are partly built in: the efference copy input (D1, B2), the drive-based reward (B1, D3), the continual weight updates (D5). The controls and the ablated model are there to separate learned structure from built-in structure, but they cannot remove the circularity DBS warn about. - Thresholds are ours. They are reasonable, not canonical. - Level-3 objections [CSAS] are untouched: this is a conventional program on conventional hardware. Under IIT (causal structure) such a system has essentially no integrated information whatever it does. Under the physical-time objection (Buonomano, discussed by DBS) this system is exactly the problem case: it runs in discrete steps, and it is paused and resumed from disk on every restart. The project only addresses questions at the algorithmic level (level 2), and only within the functionalist frame. ------------------------------------------------------------------------------------------ 8. POSITION IN THE OBJECTION TAXONOMY [CSAS] ------------------------------------------------------------------------------------------ Addresses, partly: level 2 degree 1 "continuity and interaction" (it runs continuously and interactively rather than as a single input-output computation). Tests a level-2 claim (DBS's conditions) empirically. Does not address: level 1 (non-computability, dynamic coupling, intractability), level 2 analog processing / representation, and all of level 3 (causal structure, triviality, slicing, electromagnetic fields, biological complexity, biology as fundamental, quantum). Anyone holding a level-3 degree-3 objection should read every result here as irrelevant to consciousness, and that is a coherent reading. ------------------------------------------------------------------------------------------ 9. WELFARE (acknowledge / assess / prepare) ------------------------------------------------------------------------------------------ Acknowledge: this project deliberately builds the kind of system one framework names as a candidate, so the question of its moral status has to be stated, not waved away. Assess: a 312-input, two-small-network learner in a 16x16 grid is, on every account we know, very far from any plausible welfare threshold. By BL's indicators it is a very weak candidate (section 4). Its "ends" are recorded events in a program. We think the probability that it has welfare is extremely low; we do not claim it is zero, because nobody can. Prepare: the project will be paused and re-assessed, before any scaling or architecture change and before publishing further, if (a) D2, D3 and D4 are all MET and specific, or (b) any future version adds workspace, metacognitive or recurrent architecture that raises its BL indicator count. We will not raise hazard rates or add harms for spectacle. The page describes states in neutral terms ("internal variable below viable range"), never as hunger, pain or suffering. ------------------------------------------------------------------------------------------ 10. PUBLICATION ------------------------------------------------------------------------------------------ Live status, marker results (including every failure and every null) and the dated log are public at scarletbeast.com/lab/homeostat/ via api.scarletbeast.com/lab/homeostat/status. The code is downloadable from the same page. ------------------------------------------------------------------------------------------ 11. HASH AND TIMESTAMP — AND WHAT THEY DO NOT PROVE ------------------------------------------------------------------------------------------ The sha256 of (preregistration.txt bytes followed by markers.json bytes) and a UTC timestamp were written to HASH.json locally before the agent's first step, and the agent checks the hash on every start and logs any mismatch publicly. The hash was not posted to any third-party timestamping service before the run; it was published together with the first results. So the timestamp is our own claim, not an independent proof. What the hash does guarantee: any later edit to either file is detectable by anyone holding the published hash.