From Black Boxto InspectableAI Agents
Stop guessing why your agents failed. Restore memory state to the exact millisecond of failure — inspect variables, check objects, and debug like you're in a Jupyter notebook at the moment of crash.
Why We Built BlickState
The story behind a new approach to agent debugging
We've all been told that LLMops is about 'Observability.' But lately, observability has become a synonym for just 'Logging.' We log the inputs and the outputs. But when you are building agentic workflows in a sandboxed tool execution environment, logs aren't enough.
BlickState changes the fundamental unit of agent tool call tracing. Instead of just logging text, we capture the entire memory of the agent tool execution. We run these tools on Firecracker VMs, allowing us to take low-overhead checkpoints of the entire system state. 'Blick' is German for view.
As you see in the above technical-preview demo, when an agent fails, you don't just get an error log. You can actually restore the memory state to the exact millisecond of the failure. You can inspect the Python objects, check the variables, and interact with the environment similar to a Jupyter notebook or REPL environment.
LLMs are a known black box. Agent tool execution via a sandboxed environment is another black box. BlickState is the glass box for Agent tool calling, enabling you to inspect memory state for faster debugging when tool execution fails or when context passing between agents goes astray.
Works with your favorite agent frameworks
How It Works
Four simple steps to time-travel debugging
Add @tool decorator
Mark functions that should run in BlickState's secure environment
Code runs in secure VMs
Your functions execute in isolated Firecracker microVMs with automatic checkpointing
Crash happens
When something goes wrong, your state is preserved — not lost
Open the Environment Pane
See all variables like in Jupyter Notebook. Click to inspect DataFrames. Run any Python code.
The Key Difference from LLMOps Tools
LangSmith and Arize capture what you anticipate logging. BlickState captures everything without anticipation. When your LLM generates Python code dynamically, you don't know which variable names it will choose — but you can inspect them all in the Environment Pane.
Simple API, Powerful Results
Add a decorator. Get time-travel debugging.
from blickstate import tool, BlickState
sdk = BlickState(api_key="sk_live_xxx")
@tool(checkpoint_after=True)
def process_data(df):
"""This runs in BlickState's secure VM"""
# Your processing logic here
result = df.groupby('category').sum()
return result
# Execute remotely with automatic checkpointing
result = process_data(my_dataframe)
# If crash happens later, time-travel back:
sdk.list_checkpoints()
sdk.inspect("20231224_143052") # Opens REPLZero Config
One decorator, instant checkpointing
Secure Isolation
Firecracker microVMs for each execution
< 1s Snapshots
Near-instant state capture
Get Early Access
Be first in line when we launch. Early users get priority onboarding, founding member pricing, and direct access to the team.