oneagentgraph
Compose agents into a graph over oneharness and onejudge, and merge their outputs into one NDJSON event stream.
One config file and one CLI call: the graph names an oneharness config per role
and side, and oneagentgraph prepares each member's launch, supervises liveness,
and emits every turn, tool call, fallback, and settle as an event you can pipe
into anything.
Install
pip install oneagentgraph-cli # prebuilt binary, no Rust toolchain
npm install -g oneagentgraph-cli # the same binary, via npm
cargo install oneagentgraph # from crates.io, compiled locally
To install a revision that has not been released yet, build it from the repository:
cargo install --git https://github.com/nickderobertis/oneagentgraph --locked
Prebuilt archives for Linux (x86-64, arm64), macOS (Intel, Apple silicon), and
Windows (x86-64) are attached to every release, with sha256 checksums.
onejudge is a library dependency, linked into this binary — there is
nothing to install for it. run, smoke, and interrupt drive the oneharness
CLI, so that has to be on PATH; health, validate, history, persona,
trigger, reset-timer, cancel, and sweep need nothing at all — health
reads oneharness's own identity sweep through its library, in this process.
ONEAGENTGRAPH_ONEHARNESS_BIN names a pinned install instead.
What it does
oneagentgraph run graph.yaml --task "add the retry" --output json
A graph is YAML — members, the oneharness config each side uses, personas, schedules, and dependencies:
version: 6
name: node-scope
members:
worker:
kind: onejudge
base_config: ./onejudge.base.yaml
agent: { oneharness_config: ./oneharness.toml }
judge: { oneharness_config: ./oneharness.judge.toml }
mode: bypass
run streams one envelope per line. Exit 0 means every member settled, 1
that one failed or died, 2 that the config is invalid.
A member may name a persona — the role delta it layers over its base config,
by built-in name (persona: engineer), by a name in the graph's own catalog, or
by path. A persona is a onejudge config fragment: it is written in onejudge's own
field names, and onejudge's schema decides what it may say. The persona
format documents it, including the agent: block
earlier versions defined, which is now refused with no compatibility path.
When a member's turn goes the wrong way, oneagentgraph interrupt RUN MEMBER --input "do this instead" redirects it in place instead of discarding it the way
cancel does. Exit 3 means there was no controllable turn in flight, and says
which — a fact, not an error.
Under disk pressure, oneagentgraph sweep --dry-run says what scratch exists,
what is reclaimable, and what it could not examine; without --dry-run it
reclaims what it proves is dead. What counts as proof is the liveness rules in
the contract, which is where they are stated.
oneagentgraph owns no harness, model, or fallback logic. oneharness keeps owning identity chains, fallback, model pins, and quota classification; onejudge keeps owning the two-party conversation. This composes them.
Develop
just bootstrap # from a clean clone; installs the oneharness CLI
just check # the deterministic gate: format, clippy, tests, coverage, docs
just gate # check + the LLM-judge tier; the pre-push bar
Licence
MIT. See LICENSE.
Release files for oneagentgraph-cli 0.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| oneagentgraph_cli-0.3.4-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| oneagentgraph_cli-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| oneagentgraph_cli-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| oneagentgraph_cli-0.3.4-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| oneagentgraph_cli-0.3.4-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 25.2 MB
Release files / oneagentgraph_cli-0.3.4-py3-none-win_amd64.whl
| Download URL | oneagentgraph_cli-0.3.4-py3-none-win_amd64.whl |
|---|---|
| Size | 5.3 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3c833d4b9e91c05a0ede5e243ed41f1df258d768cbd36a91d89345c17bed132c
|
|
BLAKE2b-256 checksum How to use checksums |
64eab8361c5233330f992e171fa01aff41e5ff37dfb3a68724e211383becaabb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / oneagentgraph_cli-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oneagentgraph_cli-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 5.2 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
845b5699284a72abb29a67fc51cf9ced42c44a352e4f19a739a521959bfe3dac
|
|
BLAKE2b-256 checksum How to use checksums |
1439b599bfb4b6a58b9253ec45a7752c1caeaeb3a7ad639ca37f9b989fab17df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / oneagentgraph_cli-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | oneagentgraph_cli-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 4.9 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
644c54127850bcaa52fa700c23b640035f44ab9ba438070cc479720c0b6ecaf9
|
|
BLAKE2b-256 checksum How to use checksums |
bc86e51fb0c3b3f86afe165c7fc676c491750ac157536941b3d1db1606190f7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / oneagentgraph_cli-0.3.4-py3-none-macosx_11_0_arm64.whl
| Download URL | oneagentgraph_cli-0.3.4-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7b6c958e3e05b79fed698db7a972aa8a9a9e97023e54f8f231a1c18c68d7e411
|
|
BLAKE2b-256 checksum How to use checksums |
effa65491ec1118ea4ccd2881429ed9b9de6f92203304fe40f7f97b28509725f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / oneagentgraph_cli-0.3.4-py3-none-macosx_10_12_x86_64.whl
| Download URL | oneagentgraph_cli-0.3.4-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
2c0b3f1ac61f2a9e480fe057ee76f69e08cc8b168ba5d987b2ae2e58c7f51f77
|
|
BLAKE2b-256 checksum How to use checksums |
321e75af359e2466918aa45005ba748ce3f48bbb436ba3ec29cd46e9c5487d6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|