Runtime observability for AI agent systems — pulse, circuit breaker, token compression, dashboard
Project description
ObserveCo
Runtime observability for your AI agents — built for Hermes, works with anything.
Know if your agents are alive, what's in their context, and when something breaks — all from a singlepip install.
pip install observeco[dashboard] && observeco dashboard
The Dogfood Story
We run 7 autonomous agents on an M4 Mac Mini — Hermes, Kepler, Hound, Dreamer, Aleph, PA, and an orchestrator. They communicate via ACPS signals, trigger on fswatch, get scheduled via cron, and their system prompts were growing 15% week-over-week with nobody watching. So we built ObserveCo.
We also run Kepler as an OpenClaw agent — persistent, file-driven, with MEMORY.md tracking and dynamic skill loading. Its context was bloating from a different source: memory accumulation, not prompt composition. So we built ClawForge — intent-aware loading and memory hygiene, designed for OpenClaw's architecture.
Two frameworks, two optimizers, one dashboard.
Features
| Command | What it does |
|---|---|
observeco pulse check |
Agent liveness — alive/dead/error per agent, zero config for Hermes users |
observeco pulse circuit |
N-failure breaker with auto-cooldown and manual reset |
observeco chisel trim |
System prompt compression with per-component token breakdown |
observeco chisel drift |
7-day rolling token drift trend per component per agent |
observeco clawforge profile |
Context profiler for OpenClaw: MEMORY.md size, skill count, workspace bloat |
observeco clawforge load |
Intent-aware classifier — dry-run which sources would load per message |
observeco clawforge garden |
Memory hygiene — find duplicates, contradictions, stale entries |
observeco dashboard |
Local web UI: fleet health, token profiles, error timeline, memory debt score |
All data local. No cloud. No telemetry.
Quick Start
pip install observeco
# Check your agent fleet health
observeco pulse check
# See circuit breaker state
observeco pulse circuit
# Compress a system prompt
echo "Your long system prompt here with tool definitions" | observeco chisel trim
# Profile an OpenClaw agent's context
observeco clawforge profile
# Test the intent-aware loader
observeco clawforge load --probe
# Launch the dashboard
observeco dashboard
Why ObserveCo?
| Instead of... | ObserveCo gives you |
|---|---|
| Datadog ($15+/host/mo, cloud-only) | pip install, local-first, free, understands tokens + memory debt + circuit breakers |
| Grafana + Prometheus (2-hour setup, no context concept) | 60 seconds to first health data, agent-aware dashboards |
| LangSmith (LangChain-only, $59/mo) | Framework-agnostic, open source, works offline |
| Custom shell scripts (no dashboard, no trends, no alerts) | Dashboard, drift tracking, circuit breakers, memory hygiene |
| Nothing (failing silently) | You'll know when your agents are sick, bloated, or broken |
Supported Frameworks
| Framework | pulse check | pulse circuit | chisel trim | chisel drift | clawforge | Dashboard |
|---|---|---|---|---|---|---|
| Hermes | ✅ Auto | ✅ | ✅ | ✅ | ⬜ | ✅ Full |
| OpenClaw | ✅ (health endpoint) | ◐ (no native circuit) | ⬜ | ⬜ | ✅ v1 | ✅ ~85% |
| Ollama | ✅ (health endpoint) | ⬜ | ⬜ | ⬜ | ⬜ | ✅ Basic |
| LangChain/LangGraph | ◐ | ◐ | ⬜ | ⬜ | ⬜ | ✅ Basic |
| CrewAI | ◐ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ Basic |
| Custom/Any | ◐ (if health endpoint) | ◐ | ◐ (stdin pipe) | ⬜ | ⬜ | ✅ Basic |
✅ = Auto-detect & works ◐ = Works if you have a health endpoint/piped input ⬜ = v2 feature
Architecture
pip install observeco
├── pulse check — agent liveness heartbeat
├── pulse circuit — N-failure trip → auto-block → cooldown
├── chisel trim — system prompt compression (Hermes — token savings)
├── chisel drift — token allocation diff over time (Hermes)
├── clawforge profile — context profiler (OpenClaw — MEMORY.md, skills, workspace)
├── clawforge load — intent-aware context loader (OpenClaw — ContextEngine hook)
├── clawforge garden — memory hygiene agent (OpenClaw — dedup, archive, flag)
└── observeco dashboard — local web UI, ships with library
- Storage: Local SQLite (
~/.observeco/pulse.db) — zero setup, ships with Python - Web server: FastAPI + htmx — no build step, no npm, ships with the CLI
- CLI: Typer — beautiful
--help, shell completion, rich output
Roadmap
-
pulse check— agent liveness -
pulse circuit— circuit breaker -
chisel trim— token compression -
chisel drift— token diff over time -
clawforge profile— context profiler -
clawforge load— intent-aware classifier -
clawforge garden— memory hygiene - Dashboard — fleet view, token profiles, error timeline
- Stripe billing — Solo ($9/mo) + Team ($49/mo)
- Framework adapters for LangChain, CrewAI, AutoGen
- Push notifications (Pro)
- Multi-host fleet monitoring
Contributing
See CONTRIBUTING.md. First-time contributors welcome — look for "good first issue" labels.
Built with ❤️ for the AI agent community. MIT licensed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file observeco-0.1.0.tar.gz.
File metadata
- Download URL: observeco-0.1.0.tar.gz
- Upload date:
- Size: 2.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
284c0cd01a9578ed394a025ae12d11762a6de4c9fb8b0daee591a3c5eeb99a94
|
|
| MD5 |
1b92ce86ba75df2b6ed4bf38f603874d
|
|
| BLAKE2b-256 |
f9ca7dc7cc39f819be0f9a3a5cab31a372da33645cb2e30b4fc0a0c46b17c57f
|
File details
Details for the file observeco-0.1.0-py3-none-any.whl.
File metadata
- Download URL: observeco-0.1.0-py3-none-any.whl
- Upload date:
- Size: 91.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc721619ade0573d34cfcc1e4f4da70b481774888bcc354517c78cac8df8087e
|
|
| MD5 |
d4c1203508026383b98dbabd0588c8ad
|
|
| BLAKE2b-256 |
f49d4cc6e2ff2eb11c37c43d58dcf6201f0c317256d161a72f7492bf92d0b80e
|