Skip to main content

A metacognitive runtime for Python agents: the Witness pattern.

Project description

Sakshi

Sakshi (साक्षी) is the Vedantic name for the consciousness that observes consciousness without acting.

A metacognitive runtime for Python agents: the Witness pattern. A watching process embedded in your agent that monitors plan execution, evaluates against expectations, and steers cognition without doing the cognition itself.

Status

0.2.0 alpha. First version verified end-to-end against a host integration. The public API may still change in 0.x minor releases. Approaching a 1.0 freeze; not yet recommended for unverified production use.

Install

Sakshi is published to PyPI under the distribution name pysakshi. The importable module is still sakshi:

pip install pysakshi
import sakshi

The bare name sakshi is reserved by an unrelated PyPI account with no releases; once that name is recovered, pysakshi will become an alias.

To install the latest unreleased commit from source:

pip install git+https://github.com/bionicbutterfly13/sakshi

Release process: see docs/release-checklist.md.

What it is

Sakshi exposes a small, opinionated set of seams a host application supplies:

  • An EventBus for emitting cycle and goal events.
  • A Clock for deterministic time.
  • A GoalStateStore for fetching world state and recording goal outcomes.
  • An optional BasinHook for hosts that maintain an attractor-basin field.
  • A WriteGuard for routing Sakshi-originated writes through the host's safety policy.

Around these protocols Sakshi assembles a generic six-phase cognitive cycle (PERCEIVE, INTERPRET, EVAL, INTEND, PLAN, ACT) and a meta-loop (MONITOR, ASSESS, CONTROL) framed as general metacognitive phases.

Quickstart

import asyncio

from sakshi.registries import PhaseRegistry
from sakshi.protocols import NoOpEventBus


async def main() -> None:
    registry = PhaseRegistry(event_bus=NoOpEventBus())

    await registry.start_cycle("cycle-001")
    await registry.record_phase_output("PERCEIVE", {"basins": ["attention"]})
    await registry.record_phase_output("INTERPRET", {"confidence": 0.82})
    trace = await registry.finalize_cycle()

    print(trace.cycle_id)
    print([phase.phase_name for phase in trace.phase_results])


asyncio.run(main())

Hosts that need production side effects implement the small protocols in sakshi.protocols and pass those implementations into Sakshi runtime classes.

Influences

Sakshi draws inspiration from MIDCA-style metacognitive control loops, active-inference monitoring, and production cognitive-runtime experience. See INSPIRATION.md for the full provenance.

Sakshi is not a MIDCA implementation, MIDCA-compatible, or a fork of any MIDCA codebase. The MIDCA reference architecture is one influence among several.

License

Apache-2.0. See LICENSE.

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

pysakshi-0.2.0.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

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

pysakshi-0.2.0-py3-none-any.whl (60.1 kB view details)

Uploaded Python 3

File details

Details for the file pysakshi-0.2.0.tar.gz.

File metadata

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

File hashes

Hashes for pysakshi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e0fbcffa7a6e384d9af22adebce922e4b5c9b797f64c99f80f9fb2cdfb735111
MD5 68b01c4516e49ff508bcd2755c79fde6
BLAKE2b-256 c379beb830e3114891781bf9ba39ada5ace6aa5559cc996e6d4f95326b147078

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysakshi-0.2.0.tar.gz:

Publisher: release.yml on bionicbutterfly13/sakshi

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

File details

Details for the file pysakshi-0.2.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for pysakshi-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a58ecac2d3e74b2bdb337fbbadcb2761b2b6e85367bedcd02e7345d5bb9a6de9
MD5 c3071f748c34c9665cfd88b44a476a95
BLAKE2b-256 5017c4695ddfeb1ebce38e7b982264e8ace8b9c4f65d01e5c4c419fc494d5e18

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysakshi-0.2.0-py3-none-any.whl:

Publisher: release.yml on bionicbutterfly13/sakshi

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