Skip to main content

Agentic Workflow (awf)

license: MIT Python 3.10+ tests PyPI

Multi-agent pipeline orchestrator for opencode. Plan → build → verify → commit — through typed MCP tools, not bash.

The problem it solves

AI coding agents are powerful but chaotic. They jump straight to code without planning, skip review, leave bugs.

awf adds structure: a supervisor agent plans the work, worker agents execute through a pipeline you design (any roles, any depth — from a single worker to a multi-stage chain), and you approve each result before it commits. All through natural language — "start working on the backlog", "verify and approve", "reject — the DOMParser fix is missing".

You stay in control. The agent stays on rails.

Quick Start

# 1. Install
pip install awf agent-workflow-ui
# After install the `awf` console command is available (or `python -m awf`)

# 2. Configure opencode — add to ~/.config/opencode/opencode.json:
# {
#   "mcp": {
#     "agent-workflow-ui": {
#       "type": "local",
#       "command": ["python3", "-m", "agent_workflow_ui"],
#       "enabled": true,
#       "timeout": 600000
#     }
#   }
# }

# 3. Run — just talk to opencode:
# "Initialize awf in my project"
# "Develop the MVP based on the backlog"

Requirements

Component Requirement
Python 3.10+
opencode any recent version with MCP support
OS Linux (tested), macOS (should work), Windows (untested)
Models Model-agnostic. Tested with Qwen vLLM. Should work with Claude, GPT, or any opencode-supported provider.
Git Required (commit gate, baselines, rollback)

Timeouts: agent stages time out after 1 hour. Extend with AWF_SUPERVISOR_TIMEOUT=7200 (env) or awf start --timeout 7200 (USAGE.md → Troubleshooting).

Features

  • 🎯 State-Machine Orchestration (SMO) — awf guides the supervisor through phases: init → goal → form → normalize → brief → run → verify → done. Every tool returns a next_action hint — even weak models follow the full flow without getting lost.
  • 🔧 52 MCP tools — typed pipeline control: init, dispatch, start, approve, reject, rollback, dashboard, model validation, run-queue revision, service run. No bash, no manual file editing.
  • 📊 Live Dashboard — HTTP server with real-time polling. Chat-style agent handoffs, TODO content, TODO timeline, worker status, browser notifications. No page reloads.
  • 🧱 Custom pipelines — any roles, any depth. 1 stage or 10. You choose in the setup form.
  • ✅ Approve / Reject — symmetric verify tools. Approve commits and archives. Reject kills the pipeline and asks for fixes.
  • 🔍 Pre-dispatch check — before launching a pipeline, awf greps your codebase for keywords from the TODO. Warning if the task might already be done.
  • 🔄 Crash recovery — salvage path when workers don't signal, orphan TODO cleanup, state reconciliation on startup.
  • 📋 Increment planning — decomposition variants (vertical, horizontal, risk-first) presented as an HTML form for user choice.

Usage

Talk in natural language — the supervisor agent calls the right tools:

You say What happens
"Initialize awf in my project" Creates .agentic/, detects stack, asks for your goal
"Develop the MVP" Opens setup form → configures pipeline → plans first TODO
"Verify" Supervisor reads handoffs, checks git diff, approves or rejects
"Reject — the cache is missing" Pipeline killed, new TODO dispatched with fix instructions

See USAGE.md for full scenarios and tool reference.

SMO Flow

graph LR
    init --> goal --> form --> normalize --> brief --> run --> verify --> done

Phase-by-phase: USAGE.md → SMO phases.

Architecture

graph TD
    A[opencode supervisor LLM] -->|MCP stdio - 52 tools| B[agent-workflow-ui plugin]
    B -->|Python import| C[awf orchestrator]
    C -->|subprocess| D[opencode run - worker agents]
    C -->|HTTP daemon| E[Dashboard - live /api/state]

Two packages:

  • awf — Python core. Pipeline engine, phase state machine, signals, commit gate, dashboard server.
  • agent_workflow_ui — MCP plugin. Thin async wrappers + next_action guidance + HTML forms.

Comparison

awf Aider Claude Code Devin
Planning before code ✅ ❌ ⚠️ ✅
Human approve/reject ✅ ❌ ❌ ✅
Custom pipelines ✅ ❌ ❌ ❌
MCP-native ✅ ❌ ❌ ❌
Self-hosted / free ✅ ✅ ❌ ❌
Any LLM provider ✅ ✅ ❌ ❌

Real-world results

This repository is built on awf: a 31-unit stabilization program and the follow-up verification and documentation waves (13 more units) — plan, implement, review, verify, commit, with the supervisor approving every unit and the review stage catching defects before merge.

Roadmap

  • SMO escape hatches — manual phase jumps and interruptions (from real session edge cases)
  • PyPI — pip install awf agent-workflow-ui
  • Dashboard v3 — stage timing bars, session summary, sound notifications
  • Standalone mode — awf without opencode (API-only)

Full backlog: BACKLOG.md

Documentation

License

MIT — see LICENSE.

Metadata

Release files for awf 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awf 1.6.0
File Size Uploaded
awf-1.6.0.tar.gz 413.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for awf 1.6.0
File Interpreter ABI Platform
awf-1.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 877.2 kB

Release files / awf-1.6.0.tar.gz

Download URL awf-1.6.0.tar.gz
Size 413.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7a1ef16e7b7d207875cd4bf828dd2e9e5819862a41b7820ddcd1bd6a5c4a0a0f
BLAKE2b-256 checksum
How to use checksums
7a03a54bccd3c800e4788731c4442e77e037e1267eb4f925b7a3d11e88be8f7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / awf-1.6.0-py3-none-any.whl

Download URL awf-1.6.0-py3-none-any.whl
Size 463.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba937f36cc917b3e1de22a9b4a93319e303f17cd071187a026a9384829e7da80
BLAKE2b-256 checksum
How to use checksums
9911478f62d1a8ff1107ad9584c5410bb79aa119739fbc1e6812d066d7fdccc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

This release

1.6.0 This release

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page