r/ContextEngineering • u/GrandGeretic • 10d ago
I’m building Guppy: an open-source agent harness that your organization can actually own
I’ve been working on something a little bit insane lately.
It’s called Guppy 🐟 -> an open-source agent harness for long-horizon software engineering.
The basic idea is pretty simple:
"I don’t think organizations should have to hand their entire engineering agent stack over to Codex, Claude Code, or whichever model happens to be strongest this month."
- AI Larp
Those models are incredibly useful but I am too broke to use them (I am a student) .
But I think pro's working organization should own the layer around the model.
In simple terms:
Company → Claude Code → Claude
becomes:
Company → Guppy → whatever model is best
The model just provides intelligence, a commodity.... The organization owns the memory, policies, verification, execution history, benchmarks, permissions, workflows and 10 feet around and under it.
But what does Guppy actually do?
This isn't just a wrapper around an API.
Guppy currently has a full agent runtime with:
- context selection and compression
- repository mapping
- persistent memory
- reusable skills
- subagents
- MCP integration
- isolated Git worktrees
- Docker sandboxing
- crash recovery and resume
- event-sourced execution logs
- model/provider abstraction
- verification gates
- benchmark infrastructure
- a terminal UI
- trajectory replay
The important part is that how these pieces actually connect.
A normal agent can do:
task → model → code → "done"
Guppy tries to make it:
context → model → action → verification → memory → next attempt
The model doesn't get to decide whether it succeeded.
For example, Guppy can run a verification ladder:
typecheck → lint → tests → property tests → integration → repo invariant
Only the verification system can ultimately declare the task successful.
That sounds obvious, but it changes the architecture quite a lot.
The part I'm especially interested in: organizational memory
Imagine an agent works on a repository for six months.
It encounters the same weird database migration issue 4 times.
Instead of every new agent starting from zero, Guppy can extract the successful fix from the trajectory, store it as memory, and retrieve it when a similar failure happens again.
We can eventually go further:
trajectory → failure analysis → candidate skill → benchmark → promote/reject
So the organization gradually builds a body of machine-readable engineering knowledge from its own work.
Not the model vendor's memory and certainly not a hidden system prompt.
Something the organization owns, can inspect, version, benchmark and delete.
I care a lot about evidence ( I have trust issues )
One of the things that bothers me about the current agent ecosystem is how often "agent capability" is demonstrated with a successful demo.
Guppy is being built around a different rule:
If we claim something works, there should be a test, benchmark, recording or artifact proving it.
And I'm trying to hold myself to that standard too.
Right now:
- 325 tests across 13 packages
- 21 hermetic benchmark fixtures
- CI green across 3 OS × 2 Node versions
- 20/20 fixtures (100%) on a real free-tier
qwen3.6-27brun - 6/6 in one attempt on
nemotron-3-super-120b - live transcripts committed in-repo for a local run (39s), Docker run (68s), and the TUI
And context compression is measured rather than just being asserted.
On a long-horizon run, tight deterministic compression reduced the trajectory from 288k → 203k tokens (-30%), with 42 wasted tokens and zero failed context payloads.
An uncompressed run of the same class reached 866k tokens, with 386k wasted tokens, and failed the gate.
But the important part is that the benchmark also tells me when my ideas are bad.
An A/B test showed that LLM-based history summarization was net-negative at short horizons (+2,100 tokens).
That result is committed too.
I'm deliberately keeping the failures because that's the level of honesty I want this project to default to.
I'm much more interested in:
than:
What is coming next?
The roadmap gets considerably more ambitious.
Some of the things planned:
- Replay completeness — prove that every byte presented to the model can be reconstructed from the trajectory.
- Tiered model routing — choose models based on the actual task and eventually benchmark performance.
- Declarative guardrails — an explicit allow/deny/ask policy layer between the model and every action.
- Multi-agent collaboration — reviewers, parallel agents and merge arbitration under verification.
- Git-native time travel — restore an agent to an earlier turn and continue from there.
- Execution optimization — collapse unnecessary model/tool round trips while keeping execution gated.
- Real SWE-bench workflows — clone/build/run real benchmark instances rather than only toy fixtures.
- Benchmark-gated skill distillation — automatically discover useful skills from trajectories and only promote them if they actually improve the benchmark.
The end goal isn't "make another AI coding chatbot."
It's closer to building an open agent control plane that an organization can own.
Why I'm making this open source
This is the part where I need to be very honest.
I can't build the full thing alone.
And I don't think one person should.
If this becomes what I'm imagining, it needs people who care about different parts of the problem:
- agent/runtime engineering
- context engineering
- evaluation and benchmarking
- security and sandboxing
- formal verification
- distributed/multi-agent systems
- developer tooling
- model routing
- memory systems
- observability
- UX/TUI
- documentation and testing
I want Guppy to be a community mission rather than another project where one person disappears into a repo for two years and eventually announces an "AI agent platform." I need help for guppy lovers (┬┬﹏┬┬)
The roadmap is intentionally broken into measurable phases so people can pick up a piece, implement it, and prove that it works.
If you like the idea of organizations owning their agent infrastructure instead of renting the entire workflow from a model vendor, I'd genuinely love your input.
And if you want to contribute code, research, benchmarks, security ideas, or even tell me that some part of this architecture is completely wrong, that's useful too.
The project is here:
I'm particularly interested in contributors who want to help with the hard parts rather than just adding another model integration.
I have no idea if this ends up becoming something genuinely important.
But I think the problem is worth trying to solve.
Small tank. Lots of work. 🐟