The agent framework where nothing is done until a grader returns a verdict — verification + grounded perception (AgentVision eyes), compounding memory, a fleet, agent-built tooling, and agent-run CI/CD.
Project description
Verel — Verified Agents 👁️🧠
Problem: AI agents declare work “done” on their own say-so — shipping broken UIs, failing tests and unverified claims they can’t actually check. Result: Verel makes “done” a verdict, not an opinion — every action is graded by real senses (including eyes, via AgentVision), and only verified work compounds into the fleet’s shared memory.
Verel is an agent framework built on the idea that every agent action is a hypothesis:
write → perceive → gate (verdict bus) → fix → re-render → pass (self-computed)
One verdict bus unifies vision + tests + lint + types into a single pass / warn / fail,
so progress, “done”, and what compounds are all decided in one place — with grader
attestation so a hollow check can’t mint green.
The 60-second pitch
pip install verel
verel doctor # check your environment
verel heal --repo . # self-healing CI: failing tests → agent fixes → green
from verel.ci import inner_loop_stage, self_heal
result = self_heal(".", inner_loop_stage(".", with_lint=False)) # tests fail → agent patches → pass
print(result.healed, result.terminated_on)
Default LLM is Ollama Cloud (~/.config/ollama/key, model qwen3-coder:480b); set
VEREL_LLM_PROVIDER=openai to switch. Claude is one branch away in agents/llm.py.
The five organs
| Organ | Module | What it does |
|---|---|---|
| 🧠 Brain | verel.memory |
Memory that compounds — trust + provenance, consolidation, and a held-out, attested promotion gate. Only verified facts/skills graduate. Lifecycle controls (pin / volatile-until-confirmed / TTL / correction chains) keep it from becoming a junk drawer. Backends: zero-dep LocalMemory or rented mem0; semantic recall via embeddings. |
| 👁️ Eyes | verel.senses |
AgentVision as a perception organ (DOM/contrast/OCR grounded) feeding both the verdict bus and the brain as one of many senses. |
| ⚖️ Verdict bus | verel.verdict |
One schema for every sense, with an advisory ceiling clamp, grader attestation, scrubbed fingerprints, and strict-subset stuck/progress detection. |
| 🚁 Fleet | verel.fleet |
Agents managing agents — an LLM manager fans out, a single-writer scheduler runs workers in isolated git worktrees under budget, each gated by the bus. |
| 🔧 Tool-smith | verel.toolsmith |
Agents build their own tools: detect → scaffold → test → register → reuse, sandboxed (bwrap), admitted only on a passing attested eval. |
| ♻️ Agent-run CI/CD | verel.ci |
Self-healing pipeline (inner-loop → pre-commit → pre-merge → canary) with a deterministic rollback engine that never acts on advisory evidence. |
What makes it trustworthy
- Grader attestation — a required grader must present a signed
run_receiptproving it ran the frozen suite over the changed files. A hollowPASS, issues=[]fails the gate. - Precise vs advisory — per-issue trust keys off the source (DOM/CV/OCR/test = precise;
vision/LLM-judge = advisory, clamped to
warn). Destructive actions (rollback) never depend on advisory evidence. - Only verified work compounds — a consolidated rule starts
inferredand reachesverifiedonly by passing a held-out, agent-inaccessible eval (with a leakage canary). - Dogfooded — Verel gates its own development with its own verdict bus (CI runs the
pre-merge gate over Verel and asserts
pass). The infographic above was rendered and verified by the eyes Verel ships.
Many faces, one core
| Surface | For |
|---|---|
Library (import verel) |
Python apps & custom harnesses |
CLI (verel …) |
doctor · loop · fleet · heal · ci |
CI CLI / git hook (verel-ci, python -m verel.ci) |
agent-run CI, pre-commit gates |
MCP server (verel-mcp) |
Cursor, Claude, any MCP host |
Try the demos
python examples/demo_selfheal.py # failing tests → agent patches code → green
python examples/demo_overflow_loop.py # fix a UI until AgentVision returns pass
python examples/demo_fleet_worktrees.py # LLM manager fans out → isolated-worktree workers
python examples/demo_h2_moat.py # measure cross-tenant skill transfer → moat decision
python examples/demo_canary_rollback.py # bad merge fails canary → safe auto git-revert
Honesty (what we do not claim)
- The in-process tool guard is a guardrail, not a sandbox — real isolation is the
bwrapcontainer runner (isolation="container"); full network/seccomp containment is the production §7.7 runner. - The moat (a public verified-skill registry) is a bet, not a given —
verel.registryships the H2 experiment to measure whether skills transfer across tenants before you build it. - Advisory (vision/LLM) findings are advisory; they inform, they don’t gate destructive acts.
Documentation
License
MIT © Amit Patole · eyes by AgentVision
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 verel-0.4.2.tar.gz.
File metadata
- Download URL: verel-0.4.2.tar.gz
- Upload date:
- Size: 157.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Rocky Linux","version":"9.5","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02178aebe6dd7bad348092cb3e27ac870788b2f78f689e01179c904b7c811286
|
|
| MD5 |
8cb5a60e7a5a5a4033132dd42bd4a1e9
|
|
| BLAKE2b-256 |
db7ecef1765c9a61454c24227ce780e2dfdd1408713de6b2c630d881ec3ade26
|
File details
Details for the file verel-0.4.2-py3-none-any.whl.
File metadata
- Download URL: verel-0.4.2-py3-none-any.whl
- Upload date:
- Size: 95.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Rocky Linux","version":"9.5","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af656936d1a98fd2436636bdab62b3ad106ed2b324cc82b57a651eb00e4e27a1
|
|
| MD5 |
3c59955978f873361a38f38cd3c3dd27
|
|
| BLAKE2b-256 |
eab96d64c08f819ef52b948c7df26f7d3096ca05e45ce70bbc42e38afe6c67a6
|