h5i-dev/h5i-python
Python SDK for Programmable Multi-Agent Orchestration - h5i-dev/h5i-python
0 stars · 0 forks · Python Topics: multi-agent, codex, ai-orchestration, claude-code
README
h5i-python: Programmable Multi-Agent Orchestration
Claude Code, Codex, and other coding agents have different strengths. However, naive multi-agent orchestration such as simply launching several agents in parallel or allowing them to exchange messages does not define a reproducible development process. A real workflow must specify:
who implements; who reviews whom; when an agent must revise its work; which candidates are independently tested; how the winner is selected; and when the selected change is applied to the original branch.
h5i-python is the Python SDK for the h5i orchestra engine. This SDK lets you define and execute multi-agent coding workflows across Claude Code, Codex, and other runtimes as ordinary Python programs. Each agent works inside its own sandboxed Git worktree, so it cannot overwrite the original checkout or another agent's work. Agent turns produce Git-backed artifacts that can be reviewed, revised, neutrally verified, compared, selected, and applied as one auditable workflow. 1. Install Install the h5i engine: curl -fsSL https://raw.githubusercontent.com/h5i-dev/h5i/main/install.sh | sh
cargo install --git https://github.com/h5i-dev/h5i h5i-core
Install the Python SDK from GitHub: pip install h5i-orchestrapip install "git+https://github.com/h5i-dev/h5i-python.git"
2. Quickstart Create ensemble.py inside the Git repository the agents should modify. This workflow let Claude and Codex independently implement the same task, review and improve each other’s work, and then select the better result. from h5i.orchestra import Conductorasync def main(task): async with Conductor(repo=".", run="demo-task", launcher="resident") as c: claude = await c.hire("claude-agent", runtime="claude") codex = await c.hire("codex-agent", runtime="codex")
# Have both agents implement the task independently and in parallel claude_work, codex_work = await asyncio.gather(claude.work(task), codex.work(task))
await c.freeze() # Seal the round, ensuring that neither agent influenced the other beforehand
# Have each agent review the other's work await asyncio.gather(codex.review(claude_work), claude.review(codex_work))
# Verify each submission in a fresh, neutral sandbox await c.verify(claude_work, ["pytest", "--quiet"]) await c.verify(codex_work, ["pytest", "--quiet"])
verdict = await c.judge() # Select the smallest diff among the submissions that pass all tests print("winner:", verdict.selected_submission)
asyncio.run(main("implement quicksort in python with unit test")) Run it as a normal Python program: python ensemble.py With the default launcher="resident", h5i automatically starts the agent sessions through tmux.
3. Examples For example, you can program:
ask Claude and Codex to implement the same task independently, have them review and improve each other's work, and select the smallest candidate that passes the tests; let Claude Fable and Codex GPT-5.6 Sol iteratively refine a design, then hand the agreed design to Claude Opus for implementation; or repeat a Fable-design/Sol-review loop ten times, ask Opus to implement the result, and invoke Sol to repair the implementation only when Fable rejects it.
See examples/ for complete scores, including:
arena_score.py: independent arena ranking; ensemble_score.py: mutual-review ensembles; debate_then_build.py: architect-to-implementer pipelines; review_escalation.py: conditional review escalation; judge_panel_score.py: LLM judge panels; tournament.py: tournament brackets; and custom_control_flow.py: custom Python control flow.
4. License Apache-2.0
