Skip to main content
Logo

AmritaSense

PyPI Version Python Version License Discord QQ Group

"Sense is all you need."

AmritaSense is a general-purpose workflow orchestration engine that replaces traditional graph-based models with an instruction set architecture—treating workflows not as nodes-and-edges diagrams, but as programmable execution streams driven by a lightweight virtual machine.

Why AmritaSense?

Most workflow engines force you into a graph mindset: define nodes, connect edges, manage state objects. AmritaSense takes a different path. You compose nodes and control flow just like writing ordinary code—the engine compiles them into a linear instruction sequence, then executes them step by step. The result: zero scheduling overhead, native interrupt support, and the expressive power of assembly-level control flow.

Core Features

  • Complete Instruction Set—IF/ELIF/ELSE, WHILE/DO-WHILE, GOTO/CALL, TRY/CATCH/THEN/FIN, NOP, INTERRUPT. All control flow is first-class, not simulated through graph routing.
  • VM-Style Execution—A program counter (PointerVector) and call stack drive execution. Jumps are integer operations, not graph traversals.
  • Native REPL Debugger—from amrita_sense.debugger import * gives you breakpoints, stepping, and state inspection. Sync API for interactive REPL use (step, cont); async API (step_async, cont_async) for scripted debugging. Built atop the engine's Panic/Recover mechanism and composite middleware injection.
  • Async-Native Suspend/Resume—Two Future callbacks enable full workflow interruption at any node boundary. Built for debuggers and human-in-the-loop systems.
  • Declarative Dependency Injection—Nodes declare dependencies via function signatures. The engine resolves them at runtime with type matching and concurrent resolution.
  • Ultra Lightweight— Compiles 100,000 nodes in ~200ms. Runs anywhere from Raspberry Pi to cloud.
  • Self-Compile Instructions—Extend the instruction set with SelfCompileInstruction. Compile-time expansion, zero runtime overhead.

Installation

pip install amrita-sense

Quick Look

import asyncio
from amrita_sense import Node, WorkflowInterpreter as WorkflowPC, IF


@Node()
def condition() -> bool:
    return True


@Node()
def action():
    print("Done")


@Node()
def end():
    print("End of workflow")


flow = IF(condition, action) >> end
pc = WorkflowPC(flow.render())

if __name__ == "__main__":
    asyncio.run(pc.run())

See more demos in demos/

Documentation

Full guides, concept explanations, and API reference at sense.amritabot.com.

Benchmarks

benchmark.py is a self-contained suite covering control flow, jump/call, interrupt, exception, event-dispatch, dependency-injection, composition, concurrency and memory scenarios.

uv run benchmark.py              # 5 measured runs per scenario, prints a table
uv run benchmark.py --runs 20    # more samples, tighter error bars
uv run benchmark.py --list       # list registered scenarios
uv run benchmark.py --no-json    # skip the JSON export

Each scenario is reported as mean ± 1 stdev, and the whole run is written to benchmark-results.json (raw samples plus host metadata), so two revisions can be diffed mechanically instead of eyeballed. CI runs the suite on every supported Python version and uploads the JSON as an artifact.

Contributing

Contributions are welcome. See CONTRIBUTING.md and our Code of Conduct.

License

Apache V2. See LICENSE.

AIGC Content Licensing Policy

AACLP V1. See POLICY_OF_AIGC (Official Link) for details.

Metadata

Release files for amrita-sense 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amrita-sense 1.1.1
File Size Uploaded
amrita_sense-1.1.1.tar.gz 145.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amrita-sense 1.1.1
File Interpreter ABI Platform
amrita_sense-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 273.6 kB

Release files / amrita_sense-1.1.1.tar.gz

Download URL amrita_sense-1.1.1.tar.gz
Size 145.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0bd2167669f612a7b8b241d96cc1b6c634b72a2e1e3e1cdec9d1a31670b8bdf2
BLAKE2b-256 checksum
How to use checksums
4f9b2fcc0266385026b9bbe86725b44f3d7c2e9c814ce1108a457f9517aea7f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / amrita_sense-1.1.1-py3-none-any.whl

Download URL amrita_sense-1.1.1-py3-none-any.whl
Size 128.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eacdc54f0ed1b95b5b5900ed91e8305ca8c43bbc473a47d8bc5c9eb13fbb9c88
BLAKE2b-256 checksum
How to use checksums
2e1f82df95010c2adaad1f28aaf579b64dc6e1f449084c1dace0979b24a6a3d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page