AWF is a professional ecosystem designed to give engineers full control over their AI integration.
From local orchestration to global production.
Chapter 01 — The Ecosystem
Three binaries, one ecosystem
AWF CLI orchestrates your AI workflows. ZPM gives your agents a memory they can reason over. ztick fires them at the precise moment you decide. Use one, use all three — they're designed to work together.
01 — The Orchestrator
CLI
Go-powered, provider-agnostic, YAML-native. Define workflows once, run them from your terminal, wire them into CI. The foundation everyone builds on.
Multi-provider: OpenAI, Claude, Gemini, Ollama
Streaming outputs, retries, deterministic replays
Single static binary — zero runtime dependencies
02 — The Reasoner
ZPM
Zig + Prolog. Give your LLMs deterministic logical reasoning. 22 MCP tools for facts, rules, queries, proofs, and truth maintenance — usable as MCP server or direct CLI.
Prolog inference with embedded Trealla engine
Truth Maintenance with assumption tracking
Durable storage: write-ahead journal & snapshots
03 — The Trigger
ztick
Zig-powered, push-driven scheduler. Cron in reverse: your apps send SET over TCP at the moment they decide, ztick fires at the requested time — into shells, webhooks, AMQP, Redis, or AWF workflows.
Native TCP protocol with TLS 1.3 + REST/OpenAPI 3.1.1
Multi-runner dispatch incl. AWF workflows
Append-only log, OpenTelemetry, single binary
Chapter 02 — The Pillars
The Three Pillars of AWF
01
Open by Design
Vendor-agnostic at the orchestration layer — OpenAI, Claude, Gemini, Ollama — and protocol-open at the reasoning layer via MCP. Zero lock-in, OSS end-to-end.
02
Deterministic AI
CLI workflows replay identically on the same inputs; ZPM deductions are provable through Prolog inference chains. AI becomes as predictable as the rest of your stack.
03
Production-Grade
Go and Zig, static binaries, zero runtime dependencies. Structured logs, audit trails, and proof explanations across both products. Built for enterprise, not demos.
Chapter 03 — Why It Matters
What you actually get
Concrete problems the ecosystem solves, in plain terms.
01
Ship in days, not months
Workflows in YAML, one static binary, zero SDK sprawl. Install, write, run — today.
02
Your AI bill stops being opaque
Every token tracked per step, per workflow, per run. Audit spend line by line — catch runaway agents before they run away.
03
Swap providers without a rewrite
OpenAI raising prices? Switch to Claude. Need privacy? Drop in Ollama. Edit one line of YAML — your workflows don't care.
04
Explain every AI decision to audit
CLI workflows replay identically. ZPM proves each conclusion through explicit inference chains. "Why did the AI say X?" finally has an answer.
05
Stop your agents from making stuff up
Give LLMs a knowledge base that reasons. Facts persist, rules apply, contradictions surface. "The AI hallucinated" becomes "the assumption was wrong".
06
Run in prod without a DevOps team
Two static binaries, zero runtime dependencies. Docker if you want, bare metal if you prefer. Any CI, any server, any laptop.
…or, let's be honest
The reasons you'll actually end up installing it tonight.
Your engineers were tired yesterday and prompted worse.
You read a wild thread on Reddit last Friday at 1 a.m.
Your last AI demo segfaulted in front of the CEO.
Accounting cried at the last vendor invoice.
Your prompt is now 4,000 lines and nobody owns it.
“ChatGPT said so” is not an architecture diagram.
The all-hands deck has the word agentic on slide 3.
Chapter 04 — The CLI
AWF CLI
The foundation of the ecosystem. A lightweight, powerful tool to build and run AI workflows from your terminal.
01
Lightning Fast
Written in Go for blazing performance. Every millisecond counts in production.
02
Provider Agnostic
Switch between OpenAI, Anthropic, or local LLMs without changing a line of code.
03
YAML Native
Define workflows in simple, version-controllable files. Human readable, machine precise.
04
Production Ready
Built-in validation and error handling for mission-critical deployments.
Define your entire workflow in a single YAML file. Human-readable, version-controllable, and production-ready.
Loops
For-each & while
Iterate over arrays, file lists, or API results with full workflow context inside each iteration.
type: foreach
Conversations
Multi-turn agents
Native session resume on Claude, Codex, Gemini, OpenCode. Token tracking and context injection across turns.
type: conversation
Resume
Pick up where it crashed
Every run has an ID. Interrupt it, fix it, resume from the failed step — no need to start over.
awf resume <id>
Sub-workflows
Compose like functions
Call one workflow from another with typed input/output mapping. Build libraries of reusable pipelines.
type: call_workflow
Parallel
Fan out without fan-pain
Run multiple steps concurrently with configurable strategies — all, any, race. Collect results in one place.
type: parallel
Retry
Backoff, baked in
Exponential, linear, or constant backoff per step. Flaky APIs and rate limits stop waking you up at 3 a.m.
retry: {strategy: exponential}
Diagrams
Export the state machine
Generate Graphviz DOT for any workflow. Render it, ship it to architecture docs, impress the auditor.
awf diagram <workflow>
Audit trail
JSONL, secrets masked
Paired start/end entries per step, atomic writes, secret redaction, replayable history. Compliance happy.
awf history
See it in action
Execute your workflows with a single command. AWF provides detailed logging, step tracking, and clear completion status with workflow IDs for reproducibility.
# Assert facts about your system$ zpm remember-fact "service(api, healthy)"$ zpm remember-fact "service(db, healthy)"$ zpm remember-fact "depends_on(api, db)"# Define a rule$ zpm define-rule "operational(X)""service(X, healthy)"# Query the knowledge base$ zpm query-logic "operational(X)" --format json
# Explain the proof chain$ zpm explain-why "operational(api)"# Snapshot state before a risky change$ zpm save-snapshot "before-deploy"
Give your LLM a memory that reasons. ZPM exposes the same 22 tools over the MCP protocol and as direct CLI subcommands — use it from Claude Code, Cursor, or straight from your shell.
Get Started with ZPM
The reasoning engine of the AWF ecosystem. One binary, zero runtime dependencies.
curl -fsSL https://raw.githubusercontent.com/awf-project/zpm/main/scripts/install.sh | sh
git clone https://github.com/awf-project/zpm.git
cd zpm
make build
The triggering layer of the ecosystem. A Zig-powered, push-driven scheduler — cron in reverse. Apps schedule jobs at the moment they decide, ztick fires at the requested time.
01
Push-Driven
Your app sends SET over TCP at the moment it decides. ztick fires at the requested time. No polling, no fixed intervals, no drift.
02
Multi-Runner Dispatch
Shell, direct execve, HTTP webhook, AWF workflow, AMQP publisher, Redis command. One scheduler, every backend you already run.
03
TCP + REST + TLS
Native TCP protocol with TLS 1.3, plus REST/JSON HTTP API with embedded OpenAPI 3.1.1. Token AUTH, namespace-scoped authorization.
04
Durable & Observable
Append-only logfile with binary framing and background compression. OpenTelemetry traces and metrics over OTLP/HTTP. Zero runtime dependencies.
Schedule, dispatch, observe
# Authenticate with a namespace-scoped token$ echo "AUTH ops:s3cr3t" | nc 127.0.0.1 5678
# Define a rule: trigger an AWF workflow when the job fires$ echo "RULE SET deploy.daily awf run release-pipeline" | nc 127.0.0.1 5678
# Schedule a one-shot job at a precise nanosecond timestamp$ echo "SET deploy.daily $(date +%s%N -d 'tomorrow 03:00')" | nc 127.0.0.1 5678
# Inspect, list, remove$ echo "QUERY deploy.daily" | nc 127.0.0.1 5678
$ echo "LISTRULES" | nc 127.0.0.1 5678
$ echo "REMOVE deploy.daily" | nc 127.0.0.1 5678
A tight TCP protocol or a REST endpoint — pick your interface. ztick chains directly into AWF workflows, so you can trigger orchestrations on demand: no cron, no drift, no surprises.
Get Started with ztick
The triggering engine of the AWF ecosystem. One Zig binary, zero runtime dependencies.
curl -fsSL https://raw.githubusercontent.com/awf-project/ztick/main/scripts/install.sh | sh
git clone https://github.com/awf-project/ztick.git
cd ztick
make release
make install
ztick # listens on 127.0.0.1:5678
ztick -c /etc/ztick/ztick.toml # run with a TOML config
ztick dump ztick.log --follow # tail the persistence logfile