Persistent memory
Write, retrieve, dedupe across sessions.
Semantic search over an agent's lifetime via vector embeddings. Automatic extraction from interactions, conflict resolution, multi‑tenant isolation enforced at every layer.
ibexharness is an open-source runtime giving AI agents persistent memory, intelligent context assembly, and behavioral drift detection — engineered in the open, phase by phase.
Four failure modes the industry has quietly accepted. The harness exists to retire them.
Every session starts at zero. Conversation history evaporates the moment the process exits.
As context grows, recall degrades. Agents contradict themselves mid-conversation.
Identical prompts produce divergent outputs over time. No baseline, no alert.
Why did the agent do that? Nobody knows. There is no record of what it remembered.
A Go proxy guards a Python intelligence layer, fronted by SDKs, backed by tiered storage, with async workers handling extraction and drift detection off the hot path. Auth, rate limiting, and context injection happen inline; everything else runs in parallel.
Proxy authenticates, rate-limits, injects context, streams.
Token validation, per-tenant permission bitmap.
Context assembly, memory service, embeddings.
pgvector + RLS, hot cache, traces, archives.
Every capability designed to compose. The contracts between them are stable, observable, and documented from day one.
Write, retrieve, dedupe across sessions.
Semantic search over an agent's lifetime via vector embeddings. Automatic extraction from interactions, conflict resolution, multi‑tenant isolation enforced at every layer.
The right memories, every call.
A ranking pipeline that balances recency, relevance, and observed utility — fitted to your model's token budget. Target p95 under 50ms, measured end‑to‑end.
Detect drift before users do.
Statistical baselines per agent. Alerts when output distributions shift. Compare directive versions before they ever reach production traffic.
Inline. Fast. In your stack.
Go proxy authenticates requests, rate-limits per tenant, injects assembled context, and streams responses with sub-20ms overhead target. Permission bitmap from a dedicated auth service.
No framework rewrite. No vendor lock‑in on your prompts. The harness wraps your agent loop with three primitives: recall, llm, remember.
# planned · phase 02
from ibexharness import Harness
agent = Harness("kestrel") # attach the harness
@agent.task
def reply(message: str) -> str:
ctx = agent.recall(message, k=8) # target p95 · <50ms
out = agent.llm(message, ctx)
agent.remember(message, out) # async · non-blocking
return outNo signup. No waitlist. Clone, compose, run. Everything that exists today runs locally on your machine — the same way the maintainers run it.
Pull the monorepo. Phase 0 + 1 are in main; the proxy and auth service run locally via Docker Compose.
$ git clone github.com/Rick1330/ibex-harnessCompose brings up Postgres, Redis, ClickHouse stubs, and the OTel collector — the same topology CI runs against.
$ make dev # compose up + migrateThe Go proxy binds to :8080 and the auth service answers gRPC. Health, readiness, and Prometheus endpoints are live.
$ make run-proxy # then curl :8080/healthzPick a milestone from /docs/roadmap, open a discussion, or grab a good-first-issue. Phase 1.5 docs work is open right now.
$ gh issue list --label good-first-issueibexharness is in early development. Phase 0 and Phase 1 are implemented in the repository, the docs site (phase 1.5) is being built right now, and Phases 2 through 5 are actively designed with milestone-level READMEs in the monorepo. Track progress on GitHub.
active
Public documentation surface — architecture reference, ADRs, operator runbooks, quickstart guides. The first thing the world will read about ibexharness.
~2 weeks
shipped 2026-06-05
3–5 weeks
6–8 weeks
4–6 weeks
4–8 weeks
Phase 1.5 takes the canonical docs already living in /docs and ships them as a public site. Here is the table of contents — sections are already written; the rendering is what we're building.
Hot path, services, data plane, async surface — the system as one diagram.
Why Argon2id, why bitmap permissions, why ClickHouse for traces. Every yes and every no.
REST and gRPC surfaces, error envelopes, retry semantics, request-ID propagation.
Python, TypeScript, Go. Three primitives: recall, llm, remember.
ibexharness is being engineered in the open on GitHub. Stars help us reach more engineers facing the same agent-memory problems. Issues, RFCs, and pull requests are welcome — early contributors shape the public API.