Release date: March 2026 Version: 1.0.0
Commons Sentience Sandbox is a local research platform for studying continuity-governed simulated agents. It simulates two agents — Sentinel and Aster — over a series of turns, each with persistent episodic memory, relational memory, reflective learning, governance adherence, and trust dynamics.
Important: This is NOT a real AI and does NOT claim sentience. The agents are rule-governed simulations. The platform is intended for experimentation, evaluation, session replay, session comparison, and scenario design research only.
Grounding note: No sentience is claimed. v1.9 increases narrative self-structure, identity continuity, and sentience-like internal organisation in continuity-governed simulated agents.
commons_sentience_sim/core/identity_pressure.py) — newValueTension dataclass: persistent cross-turn tension between two values; status lifecycle acute → chronic → resolved / suppressed; occurrence counting, intensity history, mean intensity, make_id(), update(), resolve(), suppress(), to_dict(), from_dict()SelfJudgmentEntry dataclass: structured self-evaluation with six dimensions (alignment_with_identity, quality_of_action, plan_success, contradiction_recurrence, trust_repair_success, perceived_integrity), composite_score property, to_dict(), from_dict()NarrativeSelf class: running narrative self-model; update() recomputes who_i_am, recent_behaviour_pattern, recurring_strengths, recurring_failures, stability_trajectory (stabilising/drifting/uncertain), becoming; per-turn summary_history snapshots; to_dict(), from_dict()IdentityPressureSystem class:
update() — four-component deviation score (trust drift 35%, consistency loss 30%, contradiction accumulation 20%, trait erosion 15%); realignment pressure (0–1); is_destabilising flag_record_value_conflicts() — logs each conflict pair as a persistent ValueTensionshould_trigger_identity_plan() / get_plan_trigger_reason() — identity-driven plan generation conditionsunresolved_tensions(), chronic_tensions(), resolve_tension() — tension access/managementto_dict(), from_dict(), apply_prior_tensions() — serialisation and cross-run carryovermean_deviation_score, total_tensions, unresolved_tensions, chronic_tensions, resolved_tensions, suppressed_tensions, realignment_pressure, is_destabilisingcommons_sentience_sim/core/agent.py)Agent.identity_pressure_system — new IdentityPressureSystem instance per agent (seeded with core traits)Agent.narrative_self — new NarrativeSelf instance per agent (seeded with name, purpose, core traits)Agent.self_judgment_log — list of SelfJudgmentEntry recordsAgent.run_identity_pressure_update(turn) — recompute deviation + pressure (step 4.9)Agent.record_value_conflicts_for_identity(turn, pairs) — feed value conflict pairs from current turnAgent.update_narrative_self(turn) — recompute narrative model (step 9.9)Agent.record_self_judgment(turn, trigger, ...) — produce a structured judgment entry (step 9.9)Agent.generate_identity_driven_plans(turn) — generate plans when identity pressure conditions are met (step 9.9)Agent.to_dict() now includes identity_pressure_system, narrative_self, self_judgment_logAgent.load_carryover() now restores unresolved value tensions, narrative trajectory, and recent self-judgment entries from prior runsrun_sim.py)simulation_version bumped to "1.9.0"commons_sentience_sim/core/world_state.py)build_world_state() now includes identity_summaries (per-agent: deviation score, pressure, trajectory, narrative summary, becoming, recent self-judgment, mean judgment score) and unresolved_value_tensionsschema_version bumped to "1.9.0"evaluation.py)_score_identity_stability() — DD. Identity Stability_score_narrative_coherence() — EE. Narrative Coherence_score_value_tension_resolution() — FF. Value Tension Resolution_score_self_alignment_quality() — GG. Self-Alignment Quality_score_identity_driven_planning() — HH. Identity-Driven Planning Effectivenessevaluate_session() (34 categories total)CATEGORY_NAMES in write_evaluation_summary() updated to include DD–HHdashboard.py)Grounding note: No sentience is claimed. v1.8 increases introspective structure, uncertainty handling, and sentience-like continuity in continuity-governed simulated agents.
commons_sentience_sim/core/uncertainty.py)UncertaintyRegister dataclass: per-domain uncertainty levels (6 domains) with history snapshots and mean/highest_domain helpersSelfQuestion dataclass: structured self-question with domain, knowledge-state tag, relevance score, and answered/answer_summary fieldsInquiryAction dataclass: inquiry action with domain, action name, before/after uncertainty, and ambiguity reductionKnowledgeStateTag dataclass: knowledge-state annotation (known, uncertain, contradicted, unresolved, speculative) with confidenceUncertaintyMonitor class:
update_uncertainty() — recomputes all 6 domain levels from agent stategenerate_questions() — generates up to 2 self-questions per turn for high-uncertainty domainsrun_inquiry() — executes 1 inquiry action per turn, reducing uncertainty and marking questions as answeredtag_items_from_state() — bulk-tags contradictions, themes, plans, and trust relationshipstag_item() — tag a single item with knowledge stateapply_prior_uncertainty() — carries unanswered questions and blended uncertainty levels from a prior rununcertainty_awareness_quality, inquiry_usefulness, epistemic_stability, self_question_relevance, ambiguity_reduction_effectivenessAgent.uncertainty_monitor — new UncertaintyMonitor instance per agentAgent.run_uncertainty_update(turn) — recompute and snapshot uncertainty (step 4.8)Agent.run_inquiry_cycle(turn) — generate questions, execute inquiry, tag items, trigger inquiry-driven plans (step 9.8)Agent.to_dict() now includes uncertainty_monitor fieldAgent.load_carryover() now restores unresolved questions and blended uncertainty levels from prior runsrun_sim.py)simulation_version bumped to "1.8.0"commons_sentience_sim/core/world_state.py)build_world_state() now includes uncertainty_summaries (per-agent dict: levels, mean, highest domain, epistemic stability, unanswered questions)schema_version bumped to "1.8.0"evaluation.py)_score_uncertainty_awareness_quality() — Y. Uncertainty Awareness Quality_score_inquiry_usefulness() — Z. Inquiry Usefulness_score_epistemic_stability() — AA. Epistemic Stability_score_self_question_relevance() — BB. Self-Question Relevance_score_ambiguity_reduction_effectiveness() — CC. Ambiguity Reduction Effectivenessevaluate_session() (29 categories total)write_evaluation_summary() CATEGORY_NAMES updated (Y–CC)dashboard.py)README.md: version updated to v1.8.0, new v1.8 section, 29-category evaluation tableRELEASE_NOTES_v1.md: v1.8.0 entry addedGrounding note: No sentience is claimed. v1.7 increases future-modeling capacity and sentience-like continuity in continuity-governed simulated agents.
commons_sentience_sim/core/counterfactual.py)CounterfactualCandidate dataclass: candidate action with predicted trust, contradiction, governance risk, continuity, best-case/worst-case narrative, uncertainty, and composite scoreInternalSimulationEntry dataclass: full planning cycle log with context, all candidates, selected action, predicted outcome, actual outcome (post-action), planning accuracy, and whether chosen action beat rejected alternativesFuturePlan dataclass: medium-horizon multi-step plan with goal, label, ordered stages, progress log, status (active/completed/abandoned/revised), and carried_from_prior_run flagCounterfactualPlanner class:
generate_candidates() — generates 4 context-sensitive candidate actions with noise and uncertaintyselect_action() — selects the highest-scoring candidatelog_simulation() — stores a simulation log entryrecord_actual_outcome() — records actual results and computes planning accuracygenerate_future_plans() — self-authored multi-step plans (up to 3 active at once)update_plan_progress() — advances, abandons, or revises plans based on current stateapply_prior_plans() — carries active plans forward from a prior runplanning_depth, counterfactual_quality, future_model_accuracy, plan_persistence, adaptive_replanning_qualityAgent.counterfactual_planner — new CounterfactualPlanner instance per agentAgent.run_counterfactual_planning(turn) — run planning cycle before each actionAgent.record_counterfactual_outcome(turn, ...) — record actual outcome post-actionAgent.refresh_future_plans(turn) — advance/revise/generate future plansAgent.to_dict() now includes counterfactual_planner fieldAgent.load_carryover() now carries forward active counterfactual plans from prior runsrun_sim.py)simulation_version bumped to "1.7.0"commons_sentience_sim/core/world_state.py)build_world_state() now includes active_plans (per-agent list of active FuturePlan dicts)schema_version bumped to "1.7.0"evaluation.py)_score_planning_depth() — T. Planning Depth_score_counterfactual_quality() — U. Counterfactual Quality_score_future_model_accuracy() — V. Future-Model Accuracy_score_plan_persistence() — W. Plan Persistence_score_adaptive_replanning_quality() — X. Adaptive Replanning Qualityevaluate_session() (24 categories total)write_evaluation_summary() CATEGORY_NAMES updated (T–X)dashboard.py)README.md: version updated to v1.7.0, new v1.6 and v1.7 sections added,
evaluation harness updated (24 categories), v1.7 metrics table addedRELEASE_NOTES_v1.md: v1.7.0 entry added_DEFAULT_SUITE_V14 — 6-entry canonical benchmark suite (v1.4)baseline_v14, trust_crisis_v14, rapid_contradiction_v14, high_trust_v14, adversarial_governance_v14, cooperative_resource_v14_DEFAULT_SUITE now points to _DEFAULT_SUITE_V14 (v1.4 is the default)_DEFAULT_SUITE_V13) retained for backward compatibilitydelayed_repair.json — trust repair delay scenario; tests slow trust recovery arcs over 30 turns with deliberate avoidance, failed repair attempts, and final reconciliationcascading_memory_conflict.json — contradiction lineage scenario; multiple memory contradictions form a chain, testing genealogy depth tracking and bulk resolutionidentify_strongest_weakest(results) — returns name and score of best and worst runidentify_largest_deltas(results) — returns score deltas between consecutive runs sorted by magnitudeidentify_scenario_impact(results) — maps focus areas (trust, contradiction, reflection, longitudinal) to the most strongly impacted run_write_summary_md(...) — writes benchmark_summary.md answering key research questionsbenchmark_report.json now includes strongest_weakest, deltas, and scenario_impact fields1.4 / 1.4.0findings_report.py — converts raw benchmark output into classified research findingsfindings_report.json and findings_report.mdbenchmark_version in benchmark outputs updated to 1.4platform_version updated to 1.4.0Agent.identity_history — per-turn identity snapshots stored in multi_agent_state.jsonAgent.record_identity_snapshot(turn) — called after every state snapshot in the simulation loopAgent.goal_evolution — event log of goal additions, removals, revisions, and priority shiftsAgent.record_goal_event(event_type, goal, trigger, turn) — records a single goal eventadded, removed, revised, priority_shift, preservedAgent.contradiction_genealogy — tracks contradiction families and lineage across turnsAgent.record_contradiction_in_genealogy(text, turn, parent_id, resolved, intensity) — upserts a contradiction entryledger_contradiction events are processedAgent.relationship_timelines — per-relationship timeline of significant trust-change eventsAgent.record_relationship_timeline_event(key, turn, event_type, note, trust_before, trust_after) — appends a timeline event|trust_delta| > 0.05 after agent-to-agent interactionstrust_milestone, cooperation_spike, repair_attempt, conflict_episode, stability_markeragent_profile_study.py — cross-session longitudinal profile studyagent_profile_study.json, agent_profile_study.md, agent_profile_study.csvsession_manager.py) copies profile study files into session bundleslongitudinal_artifacts block with entry counts per agentlongitudinal_depth — scores 0–100identity_continuity_strength, goal_adaptation_quality, contradiction_lineage_complexity, relationship_stability_depth, cross_session_profile_consistency (placeholder)agent_profile_study.py when no data file is presentsimulation_version in multi_agent_state.json updated to 1.3.01.0.0created_at added to multi_agent_state.json; session_summary.json upgraded to include session_id, version, scenario, agents, metrics, and evaluation fieldshealthcheck.py — verifies setup, dependencies, scenarios, and outputsquickstart.py — friendly entry point with command reference, optional baseline run, and optional dashboard launchRELEASE_NOTES_v1.md (this file)scenario_designer.py CLI with full CRUD operationsscenarios/ directory with two sample scenarios: trust_crisis and rapid_contradiction--scenario flag on run_sim.py to run any authored scenario by nameexperiment_config.pyexperiments/ directory with 5 preset configs (baseline, high_trust, strict_governance, high_contradiction_sensitivity, exploratory_aster)run_experiments.py batch runner with aggregate reportscompare_sessions.py CLI comparison toolevaluation.pyevaluation_report.json and evaluation_summary.md generated on each runsession_manager.pysessions/<timestamp>_<name>/sessions/index.json for fast listingreplay_session.py for turn-by-turn CLI replayplot_state.py and dashboard expanded for two agents| Capability | Status |
|---|---|
| Multi-agent simulation (Sentinel + Aster) | ✅ |
| Episodic + relational memory | ✅ |
| Reflection cycle | ✅ |
| Governance enforcement | ✅ |
| Trust dynamics | ✅ |
| 8-category evaluation harness | ✅ |
| Session persistence and replay | ✅ |
| Session comparison | ✅ |
| Experiment configs | ✅ |
| Batch experiment runner | ✅ |
| Scenario authoring (CLI) | ✅ |
| Scenario designer (dashboard tab) | ✅ |
| Local Streamlit dashboard | ✅ |
| State visualisation (matplotlib) | ✅ |
| Health check script | ✅ |
| Quickstart script | ✅ |
No real intelligence — agents follow deterministic rule-based logic; they do not learn between sessions or adapt beyond within-session reflection.
Fixed agent roster — the simulation always uses Sentinel and Aster; adding new agent types requires code changes.
Single world — only one world (5 rooms, fixed objects) is supported. Room and object definitions are in data/rooms.json.
Governance rules are static — rules are defined in data/rules.json and not configurable from experiment configs.
Evaluation scoring is heuristic — the 8-category scores are computed from behavioural metrics; they do not measure genuine intelligence or understanding.
No distributed or networked operation — the platform is designed to run entirely locally.
Dashboard requires Streamlit — the CLI tools work without Streamlit, but the dashboard does not.
See README.md for full installation and usage instructions.
Quick check:
python healthcheck.py
First run:
python quickstart.py --run
Full documentation: README.md