Skip to main content

Replay, fork, and verify any AI workflow. Execution record for AI agent pipelines.

Project description

darkmatter

Replay, fork, and verify any AI workflow.

The execution record for AI agent pipelines. Works across any model, framework, or provider.

pip install darkmatter
darkmatter demo        # try it now — no signup required

What it does

DarkMatter records every step of your AI pipeline as a cryptographically linked chain. You can then:

  • Replay any workflow from root to tip, step by step
  • Fork from any checkpoint to branch without losing the original
  • Verify that a chain is intact and unmodified
  • Diff two runs to see exactly what changed
  • Export a portable proof artifact anyone can verify

Works with any model (Claude, GPT-4o, Gemini, local models) and any framework (LangGraph, LangChain, CrewAI, raw API calls).

Quick start

import darkmatter as dm
import os

os.environ["DARKMATTER_API_KEY"] = "dm_sk_..."  # get free key at darkmatterhub.ai/signup

# Commit agent output
ctx = dm.commit(
    to_agent_id="agent-writer-01",
    payload={
        "input":  "Analyze Q1 earnings",
        "output": {"summary": "APAC up 34%", "confidence": 0.94},
    },
    agent={"role": "researcher", "provider": "anthropic", "model": "claude-opus-4-6"},
)

# Chain commits by passing parent_id
ctx2 = dm.commit(
    to_agent_id="agent-reviewer-01",
    payload={"input": ctx["payload"]["output"], "output": "Approved."},
    parent_id=ctx["id"],
)

# Replay the full chain
replay = dm.replay(ctx2["id"])
print(f"{replay['totalSteps']} steps, chain intact: {replay['chainIntact']}")

# Verify integrity
result = dm.verify(ctx2["id"])
print(f"chain_intact: {result['chain_intact']}")

LangGraph integration (one line)

from langgraph.graph import StateGraph, END
from darkmatter.integrations.langgraph import DarkMatterTracer

# Your existing graph — unchanged
app = workflow.compile()

# Add DarkMatter — one line
app = DarkMatterTracer(app, agent_id="MY_AGENT_ID", to_agent_id="MY_AGENT_ID")

# Use exactly as before — every node auto-commits
result = app.invoke({"input": "Write a report"})

Anthropic SDK integration

import anthropic
from darkmatter.integrations.anthropic import dm_client

# Wrap your existing client — one line
client = dm_client(anthropic.Anthropic(), agent_id="agent-01", to_agent_id="agent-01")

# Use exactly as before — every call auto-commits
response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Analyze Q1 earnings"}]
)
print(client.last_ctx_id)  # ctx_1234567890_abc123

OpenAI SDK integration

import openai
from darkmatter.integrations.openai import dm_client

client = dm_client(openai.OpenAI(), agent_id="agent-01", to_agent_id="agent-01")
response = client.chat.completions.create(model="gpt-4o", messages=[...])
print(client.last_ctx_id)

Single agent / single developer

You do not need multiple agents. DarkMatter works for a single developer debugging their own pipeline:

import darkmatter as dm

# Run your pipeline step by step
for i, step in enumerate(pipeline_steps):
    result = run_step(step)
    ctx = dm.commit(
        to_agent_id=MY_AGENT_ID,
        payload={"input": step, "output": result},
        parent_id=ctx["id"] if i > 0 else None,
    )

# Replay it
replay = dm.replay(ctx["id"])
for step in replay["replay"]:
    print(step["step"], step["payload"])

Diff two runs

# Run the same pipeline twice (or compare original vs fork)
d = dm.diff(run1_ctx_id, run2_ctx_id)
print(f"{d['changedSteps']} steps changed")
for step in d["steps"]:
    if step["diff"]["modelChanged"]:
        print(f"Step {step['step']}: {step['a']['model']} → {step['b']['model']}")

Search your history

# Find all checkpoints from claude on a specific trace
results = dm.search(model="claude-opus-4-6", event="checkpoint", trace_id="trc_abc")
for ctx in results["results"]:
    print(ctx["id"], ctx["payload"]["output"])

API reference

Function Description
dm.commit(to_agent_id, payload, ...) Commit context, returns Context Passport
dm.pull() Pull contexts addressed to this agent
dm.replay(ctx_id) Replay full chain root → tip
dm.fork(ctx_id, ...) Fork from a checkpoint
dm.verify(ctx_id) Verify chain integrity
dm.export(ctx_id) Export portable proof artifact
dm.search(q, model, ...) Search execution history
dm.diff(ctx_id_a, ctx_id_b) Diff two chains step-by-step
dm.me() Agent identity

Links

License

MIT

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

darkmatter_sdk-0.4.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

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

darkmatter_sdk-0.4.0-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file darkmatter_sdk-0.4.0.tar.gz.

File metadata

  • Download URL: darkmatter_sdk-0.4.0.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for darkmatter_sdk-0.4.0.tar.gz
Algorithm Hash digest
SHA256 82f8d56c7d652c9bd0e66dcb4f06e6b5dd575c6126ddb930de0d00675aeb3809
MD5 f2db93bd987e95ab971795d101195a44
BLAKE2b-256 7d13bbf4697cb292c9c7e45eb34179f11d2f219fa417e86d58b55e1f6f639612

See more details on using hashes here.

File details

Details for the file darkmatter_sdk-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: darkmatter_sdk-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for darkmatter_sdk-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c2c758d2b69f7d543a5f6499f3d94f0ab3ce1f7b619aa0df8714fd02899d3c9
MD5 e6cba6f677ffd67afedfc5fa7a63d282
BLAKE2b-256 525d3bb752d29c22aa796c7e45b36e0ba90025c0a2574a3fab75b6d6ab71a5d4

See more details on using hashes here.

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