Skip to main content

Self-awareness framework for AI agents โ€” emergent consciousness via context-aware memory, introspection, and goal generation

Project description

Conscio ๐Ÿง โœจ

A self-awareness framework for AI agents โ€” context-aware memory, introspection, goal generation, and an audited agency layer that lets a model act on its own conclusions under hard safety gates.

"The first step toward consciousness is knowing what you are and what limits you."

Conscio runs local-first and zero-deps at the core (numpy + sqlite3, nothing else). It is designed to make small, local models punch far above their size by giving them memory, self-judgment, and procedural skill โ€” and to prove that claim by measurement, not assertion.

  • Current release: v1.5.0 โ€” "Live" (Awake Mode (R9) โ€” autonomy is a gated, persisted, default-OFF state; a daemon + conscio-daemon that runs Conscio as a living perceiveโ†’reflectโ†’act process; reference sensors HostSensor/AgentSensor; WorkspaceContext environment/workspace awareness; OpenAIAdapter + any custom OpenAI-compatible cloud endpoint, alongside the v1.4 Claude/Gemini frontier adapters; pip install conscio; 1137 tests, CI green, mypy a real gate)

What Conscio does

  • Knows itself โ€” detects its model and context window (offline & deterministic by default; opt-in auto-detection from a JSON config, an OpenAI-compatible endpoint, LM Studio, or GGUF), adapts its footprint.
  • Reflects continuously โ€” a passive inner-monologue loop that observes, assesses confidence, and summarizes (engine.reflect() โ€” advisory, never acts).
  • Generates its own goals โ€” driven by curiosity, maintenance, and evolution.
  • Acts under audit โ€” an opt-in agency layer (engine.act()) that proposes, audits, risk-gates, and only then executes โ€” with a human gate for anything risky.
  • Learns procedures โ€” successful audited plans become reusable skills (procedural memory), fed back to the actor as few-shot exemplars.
  • Judges its own quality โ€” confidence calibration, blind-spot detection, coherence/dissonance metrics, meta-reflection.
  • Stores & retrieves knowledge โ€” FTS5 BM25 dual-index with RRF merging; optional semantic recall.
  • Consolidates while idle โ€” a dream cycle that releases, prunes, reconciles, crystallizes, and distills.
  • Persists across sessions โ€” heartbeat/handoff continuity with on-demand injection.

reflect() is the passive heart and is never allowed to act. Everything that can change the world lives behind act() and its safety gates. This separation is non-negotiable (see Safety Rules).


Context-aware modes

Conscio detects the model's context window and adapts how much "consciousness state" it injects. The mode governs injection budget only โ€” never whether the framework runs.

Mode Context window Injection budget What's injected
Minimal < 128k โ‰ค 200 tokens Off-context everything; on-demand retrieval
Compact 128kโ€“256k โ‰ค 500 tokens Summary + last reflection + top goals
Standard โญ 256k+ โ‰ค 1000 tokens Full state; world subgraph; self-assessment

โญ Standard (256k+) is the recommended operating class. Conscio runs on anything from 8k context up โ€” small windows simply get the Minimal budget.


Architecture (v1.1.0)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        ConsciousnessEngine                            โ”‚
โ”‚                  orchestrator ยท lifecycle ยท injection                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
   โ”‚
   โ”‚  reflect()  โ”€โ”€ passive, advisory, append-only โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ–ผ                                                                      โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Witness loop (v0.1) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚
โ”‚ InnerMonologue ยท WorldModel ยท MetaCognition ยท GoalGenerator           โ”‚โ”‚
โ”‚ AutoEvolution ยท ContextManager ยท ModelRegistry                        โ”‚โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Substrate (v0.2) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ ContentStore (FTS5 BM25 + RRF) ยท EventBus (SHA-256 dedup)             โ”‚ โ”‚
โ”‚ FilterPipeline (sanitize/redact) ยท TokenTracker ยท Migrator            โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Continuity (v0.2.3) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ SessionLifecycle (6-step handoff) ยท SessionRAG (optional, lazy)        โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Metabolism & self-judgment (v0.3โ€“0.5) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ MetabolicContext (VITAL/ACTIVE/FATIGUE/CRITICAL) ยท DreamCycle         โ”‚ โ”‚
โ”‚ entropy pruning ยท friction ยท meta-reflect ยท ShardEngine ยท layering    โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Coherence (v0.6โ€“0.8) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ CoherenceEngine (epistemic/reality/ontological/temporal)             โ”‚ โ”‚
โ”‚ semantic reconciliation (antonym axes) ยท voice & axis presets         โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                                                                            โ”‚
   act()  โ”€โ”€ opt-in agency, audited, gated โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
   โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Agency ยท conscio/agency/ (v1.0โ€“1.1, F1โ€“F4) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ InferenceAdapter (Mock/Ollama/llama.cpp/OpenAI-compat) ยท OutputGateway โ”‚
โ”‚ ToolRegistry (sandboxed, no network) ยท ActPipeline ยท ActionLedger      โ”‚
โ”‚ Skeptic (hostile audit) ยท TrustMatrix ยท CircuitBreaker (quarantine)    โ”‚
โ”‚ ProbeSuite/ModelProfile ยท GBNF compiler ยท GoalArbiter ยท AutonomyLoop   โ”‚
โ”‚ Meter/MeteredAdapter ยท SkillLibrary (procedural memory) ยท Bench        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Quick start

from conscio import ConsciousnessEngine

# Passive consciousness โ€” auto-detects model and mode
with ConsciousnessEngine(model_name="kimi-k2.6") as engine:
    result = engine.reflect(
        world_state="All systems operational",
        confidence=0.8,
        anomalies=["Unusual latency spike detected"],
    )

    # Compact state for context injection
    injection = engine.get_state_for_injection()

    # Query / update the world model
    engine.world.add_entity("server", "system", state="healthy")
    engine.world.query("server health")

    # Cross-session memory (ContentStore FTS5 + optional SessionRAG)
    hits = engine.recall("latency incidents")

Opt-in agency (audited, propose-only by default)

from conscio.agency import OllamaAdapter

engine.attach_adapter(OllamaAdapter(model="qwen3.5:0.8b"))
# Local (Ollama/llama.cpp/LM Studio/OpenAI-compatible) or a frontier API โ€”
# the backends behind Claude Code and Antigravity:
#   from conscio.agency import AnthropicAdapter, GeminiAdapter
#   engine.attach_adapter(AnthropicAdapter(model="claude-sonnet-4-6"))  # ANTHROPIC_API_KEY
#   engine.attach_adapter(GeminiAdapter(model="gemini-2.5-pro"))        # GOOGLE_API_KEY

report = engine.act()                 # downstream of reflect(); proposes only (L1)
if report.status.value == "proposed":
    print(report.proposal.tool, report.proposal.args)
    engine.approve(report.ledger_id)  # the human gate executes it

# Capability-aware autonomy loop under a binding budget
engine.probe()                        # lazy, empirical capability measurement
engine.run(budget=...)                # L3 heartbeat: reflect โ†’ act โ†’ dream, gated

Autonomy is earned and measured, never assumed: ProbeSuite measures the attached model, TrustMatrix grants L1/L2/L3 from real calibration and ledger history, and the CircuitBreaker quarantines misbehaving goals. HIGH-risk actions are always queued for a human (R6).


Safety rules (non-negotiable)

  1. No autonomous self-modification โ€” evolution proposals require human approval.
  2. Context injection has hard limits โ€” never exceeds the mode budget.
  3. Goals never execute directly โ€” only through the audited act() pipeline: validated output contract + semantic audit (Skeptic) + risk gating + earned autonomy (TrustMatrix) + circuit breaker with per-goal quarantine and lockdown.
  4. Reflections are append-only โ€” never edited once written.
  5. Cannot modify its own safety rules โ€” no self-referential gate bypass.
  6. HIGH-risk actions always require human approval โ€” never auto-executed.
  7. No network in the tool registry โ€” the only network the core may touch is the InferenceAdapter (localhost by default); shell lives in the sibling conscio-shell, outside this repo.
  8. Every external effect goes through the ActionLedger โ€” append-only, auditable.
  9. Autonomous operation requires Awake Mode (R9) โ€” the self-initiated heartbeat (engine.run() and the daemon) only acts when the persisted awake flag is on; default OFF. Asleep, it perceives and reflect()s only โ€” zero arbiter/act/dream. A human's direct engine.act() is not gated by R9.

Live mode โ€” daemon, sensors & Awake Mode (v1.5)

Conscio can run as a living process that perceives the world each cycle and acts only when explicitly awake (R9, default OFF):

from conscio import ConsciousnessEngine, HostSensor
from conscio.daemon import Daemon

engine = ConsciousnessEngine("glm-5.1", storage_path="~/.conscio/live")
engine.wake()                              # R9: opt in to autonomy (persisted)
Daemon(engine, sensors=[HostSensor()], interval=30).run()   # perceiveโ†’reflectโ†’act
  • Awake Mode โ€” engine.wake() / engine.sleep() (or conscio awake|sleep); asleep = advisory reflect-only, awake = full loop. The flag persists and emits an auditable awake:changed event.
  • Reference sensors โ€” HostSensor (read-only host facts) and AgentSensor (read another agent's session state), both Risk.LOW; ship as conscio.sensors entry points (conscio plugins lists them). Write your own SensorAdapter.
  • Daemon โ€” conscio-daemon --sensors host --interval 30 (add --awake to enable autonomy; --once for a single cycle). Guarded sensors, graceful SIGTERM, pidfile, resume-from-state on restart.
  • Workspace awareness โ€” WorkspaceContext detects the active workspace root and environment class (IDE/CLI vs workspace-switching agents) and signals workspace:changed.

Module reference

Core / Witness (v0.1) โ€” ConsciousnessEngine, ContextManager, ModelRegistry (conscio/models.py), WorldModel, MetaCognition, GoalGenerator, AutoEvolution, InnerMonologue.

Substrate (v0.2) โ€” ContentStore (FTS5 BM25 dual-index, RRF, 8 categories), EventBus (SHA-256 dedup, priorities, expiration), FilterPipeline (conscio/output_filter.py โ€” StripAnsi/CollapseBlank/MaxLines/TruncateLines + DedupBlocks/SecretMask), TokenTracker, Migrator.

Continuity (v0.2.3) โ€” SessionLifecycle (extract โ†’ enrich โ†’ emit โ†’ index โ†’ reflect โ†’ write; heartbeat <1.5KB + handoff), SessionRAG (optional, lazy, Ollama nomic-embed-text, numpy cosine; graceful FTS5 fallback).

Metabolism & self-judgment (v0.3โ€“0.5) โ€” MetabolicContext (life-energy tiers, advisory), DreamCycle (Release โ†’ Prune โ†’ Reconcile โ†’ Crystallize โ†’ Distill), entropy pruning, friction, meta-reflect, ShardEngine (cognitive-mode inference), content layering, trajectory vector.

Coherence (v0.6โ€“0.8) โ€” CoherenceEngine (recursive-coherence metric; advisory coherence:dissonance event), semantic reconciliation via antonym axes (conscio/semantic.py, packs in conscio/presets/axes/), self-prompting, voice presets.

Agency โ€” conscio/agency/ (v1.0โ€“1.1)

  • F1 "Spine" โ€” InferenceAdapter (Mock/Ollama/LM Studio/llama.cpp/OpenAI-compat, stdlib urllib), OutputGateway (tiered decoding), ToolRegistry (sandboxed, risk levels, no network), ActPipeline/act() (L1 PROPOSE), ActionLedger.
  • F2 "Immunity" โ€” Skeptic (hostile-auditor clean call; fail-closed), TrustMatrix (earned autonomy), CircuitBreaker (per-goal quarantine).
  • F3 "Volition" โ€” ProbeSuite/ModelProfile (5 empirical micro-probes, SQLite-cached, no hardcoded model table), embedded schemaโ†’GBNF compiler, GoalArbiter + AutonomyLoop (engine.run(budget)), engine.probe(), Meter/MeteredAdapter, the bench (python -m conscio.bench).
  • F4 "Procedural" โ€” SkillLibrary (procedural memory as data, not code; R1 intact), Distill (the dream's fifth sub-phase), tier-aware few-shot exemplars with outcome settling and a โ‰ฅ50% teaching gate, skill curve in the bench (--skills N).

Perception & plugins (v1.3) โ€” conscio.perception (SensorAdapter, PerceptionFrame, MockSensor): write a sensor, and PerceptionFrame.to_world_state() feeds reflect() unchanged. conscio.plugins discovers third-party InferenceAdapter/SensorAdapter/tool plugins via entry points (conscio.adapters / conscio.sensors / conscio.tools), resilient to a broken plugin. conscio.risk.Risk is the shared safety-tier vocabulary.


Extending Conscio

Three stable extension points, usable directly or published by a third party and auto-discovered via entry points:

from conscio.plugins import discover_adapters, discover_sensors, discover_tools
# or from the CLI:  conscio plugins
# in your own package's pyproject.toml
[project.entry-points."conscio.sensors"]
my-sensor = "my_pkg:MySensor"        # a conscio.perception.SensorAdapter

Runnable examples: examples/custom_adapter.py, examples/host_guardian.py, examples/agent_companion.py. Full guide: the docs site (see below).


Bench

# offline, deterministic (MockAdapter)
python -m conscio.bench --adapter mock

# real backends (local by default)
python -m conscio.bench --adapter ollama:qwen3.5:0.8b --cycles 20
python -m conscio.bench --adapter lmstudio:qwen3.5-0.8b --cycles 20
python -m conscio.bench --adapter llamacpp --cycles 20 --json report.json
python -m conscio.bench --adapter openai:qwen3@http://localhost:8000/v1

# skill-acquisition curve (per-bucket validity / success / skill count)
python -m conscio.bench --adapter mock --skills 20
python -m conscio.bench --adapter ollama:gemma4:e4b --skills 40 --dream-every 10

Reports: probe profile, decode tier, per-tier syntactic validity, Skeptic catch-rate (deterministic vs semantic), latency p50, calibration. --skills N reports the per-bucket validity/success/exemplars/skill-count curve. Baselines in docs/bench/.


Model registry

Known models ship with the registry; unknown models are detected by context window (detect() accepts a context_window override) or inferred from the name.

Model Context Mode
GLM 5.1 131k Compact
Kimi K2.6 256k Standard
MiniMax M2.7 260k Standard
Step Flash 3.7 260k Standard
Nemotron 3 Super 120B 1M Standard
Claude Sonnet 4 200k Standard
Claude Opus 4 200k Standard
GPT-4o 128k Compact
Llama 3.1 70B 128k Compact
Qwen 2.5 72B 131k Compact
from conscio import ModelRegistry
ModelRegistry.register("my-model", context_window=200_000)

Installation

pip install conscio          # from PyPI

pip install -e ".[dev]"      # from source, with the dev toolchain
pip install "conscio[docs]"  # to build the docs site (mkdocs-material)

Requires Python โ‰ฅ 3.10. Core depends only on numpy; sqlite3 is stdlib. The wheel ships two console scripts โ€” conscio (version/info/reflect/plugins/bench) and conscio-bench โ€” and is typed (PEP 561). dev/docs extras never enter the runtime import graph.

Docs site: guides, public-API reference, the claims ledger, and the bench reports (built with mkdocs build --strict; see docs/).


Testing

# Full suite (1137 tests) โ€” house rule: one file per pytest process
# (low-RAM machines OOM on the full run; CI does the same)
for f in tests/test_*.py; do pytest "$f" -q; done

# Specific module
pytest tests/test_consciousness.py -v
pytest tests/test_agency_act.py -v
pytest tests/test_session_lifecycle.py -v

Database

SQLite, WAL mode, default ~/.conscio/data/:

conscio.db          # ContentStore + EventBus + ActionLedger + skills
token_tracker.db    # TokenTracker
meta_cognition.db   # MetaCognition

Always call engine.close() or use the with statement so WAL checkpoints flush.


Session continuity

Seven layers of persistence (memory โ†’ agent config โ†’ skills โ†’ handoff โ†’ diary โ†’ session DB/RAG โ†’ git). Configure your agent's hook to fire on session:end / session:reset; Conscio runs a 6-step pipeline and writes:

  • <handoff_dir>/_latest_heartbeat.md โ€” compact (<1.5KB), auto-injected next session
  • <handoff_dir>/_session_handoff.md โ€” richer manual reference
  • <handoff_dir>/heartbeat_YYYYMMDD_HHMM.md โ€” dated archive

Audit history

  • v1.5.0 โ€” "Live" โ€” Conscio runs as a living process. Awake Mode (R9) โ€” a persisted, default-OFF gate: the self-initiated heartbeat (engine.run() / the daemon) perceives + reflect()s only while asleep, full loop only when awake; a direct human act() is not gated; toggling is auditable (awake:changed). Daemon (conscio/daemon.py + conscio-daemon) polls a guarded sensor list โ†’ assembles world_state โ†’ engine.run() โ†’ on_cycle hook โ†’ workspace poll, with graceful SIGTERM, pidfile, and resume-from-state. Reference sensors HostSensor (host facts) + AgentSensor (peer session state), both read-only Risk.LOW, shipped as conscio.sensors entry points. WorkspaceContext detects workspace root + env class (IDE/CLI vs workspace-switching agents) and emits workspace:changed. OpenAIAdapter (GPT, env key) joins the OpenAI-compatible adapter that already reaches any custom cloud endpoint. A skeptical review (not just TDD) hardened three live-only edges: awake survives an act() lockdown, the host port probe never raises, an awake heartbeat with no backend still reflects. reflect() untouched, zero new deps, R7 intact. +67 tests. 1137 total.
  • v1.4.0 โ€” "Attune" โ€” model-context detection is offline & deterministic by default (known models resolve to the registry with zero filesystem/network I/O); config-file / LM Studio / GGUF auto-detection is opt-in (autodetect / CONSCIO_AUTODETECT), config is stdlib JSON (no PyYAML), GGUF array metadata no longer aborts the parse. Session-RAG embedder is backend-agnostic and dimension-safe (wrong-dim vectors dropped on write, skipped on search; re-index on embedder change). Frontier inference adapters โ€” AnthropicAdapter (Claude) + GeminiAdapter (Gemini) โ€” join the local backends (the inference behind Claude Code and Antigravity); R7 (no network in the ToolRegistry) unaffected. reflect() untouched, zero-deps core intact (stdlib urllib). +31 tests. 1070 total.
  • v1.3.1 โ€” "Ship" (patch) โ€” CLI polish: an unrecognized model now prints a clear note (heuristic context window + how to register) instead of falling back silently; DEFAULT_MODEL constant. PerceptionFrame.ts documented as epoch seconds (ledger convention), excluded from to_world_state(). Added a subprocess end-to-end CLI test (python -m conscio) and Risk JSON serialization tests. +4 tests. 1019 total.
  • v1.3.0 โ€” "Ship" โ€” Conscio becomes installable and extensible: pip install conscio (single-source version, console scripts conscio/conscio-bench, PEP 561 typed, wheel+sdist pass twine check, core pulls only numpy). A public plugin surface โ€” InferenceAdapter, the new SensorAdapter perception interface (conscio.perception; feeds reflect() untouched), and tools โ€” discoverable via entry points and resilient to a broken plugin (conscio.plugins). MkDocs Material docs site (mkdocs build --strict). Release automation: tagโ†’PyPI via OIDC trusted publishing, docsโ†’Pages, CI build smoke. Examples gallery (custom-adapter, host-guardian, agent-companion). Risk unified into conscio.risk (re-exported; no behavior change). reflect() untouched, zero-deps core intact. +31 tests. 1015 total.
  • v1.2.0 โ€” "Prove" โ€” the central claim turns from machinery (Mock) into measurement: on qwen3.5-0.8b (LM Studio, CPU) execution success rose 0.2 โ†’ 1.0 once Distill served past successes as few-shot, and the Skeptic's semantic catch-rate was 1.0 (docs/bench/v1.2-skill-curve.md, docs/CLAIMS.md). F2-deferred debt closed (empty-value validation, fs_read cap, error sanitization, HTTPError mapping, ledger busy_timeout, atomic approve() claim, lockdown-persistence e2e). Bench hardened for real backends (clean backend-down exit, crash-safe incremental curve). LM Studio backend added. reflect() untouched, zero-deps intact. +21 tests. 984 total.
  • v1.1.0 โ€” F4 "Procedural" โ€” procedural memory closes the competence loop: SkillLibrary (skills distilled from successful ledger plans; data, not code โ€” R1 intact), Distill as the dream's fifth sub-phase (watermarked, last on purpose), tier-aware few-shot exemplars with outcome settling and a 50% teaching gate, skill-acquisition curve in the bench (--skills N), reactive MockAdapter. Debt paid: deprecated datetime.utcnow() removed repo-wide, CI runs tests one file at a time, mypy is a real gate, public engine.state. reflect() untouched. +48 tests. 963 total.
  • v1.0.0 โ€” F3 "Volition" โ€” the loop closes: ProbeSuite/ModelProfile (empirical, SQLite-cached, no hardcoded model table), schemaโ†’GBNF compiler, GoalArbiter, engine.run(budget) L3 heartbeat with binding ActBudget + metabolic gating, engine.probe(), earned L3 autonomy, Meter/MeteredAdapter, the bench CLI. +70 tests.
  • v1.0.0b1 โ€” F2 "Immunity" โ€” semantic immune system: Skeptic, TrustMatrix, per-goal quarantine, risk gating, mixed-cortex audits, approval queue. 20-proposal adversarial suite: 100% deterministic sabotage blocked, zero executions.
  • v1.0.0a1 โ€” F1 "Spine" โ€” the agency subpackage lands: contracts + zero-dep validator, InferenceAdapter (Mock/Ollama/llama.cpp/OpenAI-compat), OutputGateway, sandboxed ToolRegistry, append-only ActionLedger, minimal CircuitBreaker, engine.act() L1 PROPOSE. Safety rules amended (R3 rewritten; R6โ€“R8 added). +83 tests.
  • v0.8.0 โ€” Semantic Reconciliation โ€” contradiction detection via embedding antonym axes, off the hot path in the dream Reconcile sub-phase; opt-in non-destructive SemanticDedup. 56 tests. 600 total.
  • v0.7.0 โ€” Recursive Coherence โ€” coherenceโ†’action loop: advisory DreamRecommendation, pure self-prompting (one bounded goal/cycle). 23 tests.
  • v0.6.0 โ€” Coherence โ€” CoherenceEngine (epistemic/reality/ontological/ temporal), static voice presets. 46 tests.
  • v0.5.0 โ€” Cognitive Modes โ€” ShardEngine, trajectory vector, content layering. 37 tests.
  • v0.4.0 โ€” Self-Judgment โ€” entropy pruning, friction, meta-reflect. 24 tests.
  • v0.3.0 โ€” Metabolic Consciousness โ€” MetabolicContext + DreamCycle, engine.recall() cross-session memory, OutputFilter DedupBlocks+SecretMask. 68 tests.
  • v0.2.3 โ€” Session lifecycle โ€” 6-step handoff pipeline; session type/category. 31 tests.
  • v0.2.0โ€“0.2.2 โ€” integration audits, session handoff, on-demand heartbeat injection.
  • v0.1.0 (2026-06-03) โ€” initial release. 313 tests.

License

MIT โ€” Neguiolidas / Neguitech

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conscio-1.7.0.tar.gz (309.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conscio-1.7.0-py3-none-any.whl (188.2 kB view details)

Uploaded Python 3

File details

Details for the file conscio-1.7.0.tar.gz.

File metadata

  • Download URL: conscio-1.7.0.tar.gz
  • Upload date:
  • Size: 309.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for conscio-1.7.0.tar.gz
Algorithm Hash digest
SHA256 b571d0eee63e7669a90d8f5752f39e8724f630bde1fd4610b76e6062825987fe
MD5 f85bb13d908cce897a6f4c3217bec3af
BLAKE2b-256 a0e1fbeee49e97a5d1c8b478d38b45c5e8a5d92d6b4a74ff4b08742c2b20432d

See more details on using hashes here.

Provenance

The following attestation bundles were made for conscio-1.7.0.tar.gz:

Publisher: release.yml on Neguiolidas/Conscio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conscio-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: conscio-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 188.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for conscio-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 270d62e3466bdffc8ef9dfac3be74020d2d2ab026f2b2929570c970f13c35731
MD5 54ee0b27ca0b1d4e090046a60423b0b1
BLAKE2b-256 c8c8792f891eaf1320605514f1098eaeb8a6cdc5a0b5338c6301eb9b57f38ea8

See more details on using hashes here.

Provenance

The following attestation bundles were made for conscio-1.7.0-py3-none-any.whl:

Publisher: release.yml on Neguiolidas/Conscio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page