Fixes Gitea 500 error caused by invalid submodule reference. Converted antfarm from pseudo-submodule (missing .gitmodules) to regular directory with all source files. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
309 lines
15 KiB
HTML
309 lines
15 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Antfarm — Build your agent team with one command</title>
|
|
<meta name="description" content="Build your agent team in OpenClaw with one command. Deterministic multi-agent workflows defined in YAML. Zero infrastructure.">
|
|
|
|
<!-- Open Graph / Twitter Card -->
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://antfarm.cool">
|
|
<meta property="og:title" content="Antfarm — Build your agent team with one command">
|
|
<meta property="og:description" content="Multi-agent workflows for OpenClaw. Define a team of specialized AI agents in YAML. One install. Zero infrastructure.">
|
|
<meta property="og:image" content="https://antfarm.cool/og-image.png">
|
|
<meta property="og:image:width" content="1200">
|
|
<meta property="og:image:height" content="630">
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Antfarm — Build your agent team with one command">
|
|
<meta name="twitter:description" content="Multi-agent workflows for OpenClaw. Define a team of specialized AI agents in YAML. One install. Zero infrastructure.">
|
|
<meta name="twitter:image" content="https://antfarm.cool/og-image.png">
|
|
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<div class="topbar">
|
|
<div class="topbar-inner">
|
|
<a href="#" class="topbar-brand">
|
|
<span class="topbar-name">Antfarm</span>
|
|
</a>
|
|
<div class="topbar-links">
|
|
<a href="#workflows">Workflows</a>
|
|
<a href="#security">Security</a>
|
|
<a href="#commands">Commands</a>
|
|
<a href="https://github.com/snarktank/antfarm" class="topbar-gh">
|
|
<svg height="18" width="18" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<main class="container">
|
|
<!-- Hero -->
|
|
<section class="hero">
|
|
<div class="hero-row">
|
|
<img src="logo.jpeg" alt="Antfarm" class="hero-logo">
|
|
<h1>Build your agent team in <a href="https://docs.openclaw.ai">OpenClaw</a> with one command</h1>
|
|
</div>
|
|
<p class="hero-sub">You don't need to hire a dev team. You need to define one. Antfarm gives you a team of specialized AI agents — planner, developer, verifier, tester, reviewer — that work together in reliable, repeatable workflows. One install. Zero infrastructure.</p>
|
|
<div class="hero-actions">
|
|
<div class="install-cmd">
|
|
<code><span class="cmd-prompt">$</span> install github.com/snarktank/antfarm</code>
|
|
<button class="copy-btn" onclick="navigator.clipboard.writeText('install github.com/snarktank/antfarm').then(()=>{this.textContent='Copied!';setTimeout(()=>this.textContent='Copy',1500)})" title="Copy to clipboard">Copy</button>
|
|
</div>
|
|
<p class="install-hint">Tell your OpenClaw agent. That's it.</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- The problem -->
|
|
<section class="section problem-section">
|
|
<h2 class="problem-text">Antfarm gives you a team of agents that specialize, verify each other, and run the same playbook every time.</h2>
|
|
</section>
|
|
|
|
<!-- Bundled workflows -->
|
|
<section id="workflows" class="section">
|
|
<h2>What you get: Agent team workflows</h2>
|
|
<div class="workflow-grid">
|
|
<div class="wf-card">
|
|
<div class="wf-header">
|
|
<h3>feature-dev</h3>
|
|
<span class="wf-badge">7 agents</span>
|
|
</div>
|
|
<p>Drop in a feature request. Get back a tested PR. The planner decomposes your task into stories. Each story gets implemented, verified, and tested in isolation. Failures retry automatically. Nothing ships without a code review.</p>
|
|
<div class="wf-pipeline">
|
|
<span>plan</span><span class="wf-arrow">→</span>
|
|
<span>setup</span><span class="wf-arrow">→</span>
|
|
<span>implement</span><span class="wf-arrow">→</span>
|
|
<span>verify</span><span class="wf-arrow">→</span>
|
|
<span>test</span><span class="wf-arrow">→</span>
|
|
<span>PR</span><span class="wf-arrow">→</span>
|
|
<span>review</span>
|
|
</div>
|
|
</div>
|
|
<div class="wf-card">
|
|
<div class="wf-header">
|
|
<h3>security-audit</h3>
|
|
<span class="wf-badge">7 agents</span>
|
|
</div>
|
|
<p>Point it at a repo. Get back a security fix PR with regression tests. Scans for vulnerabilities, ranks by severity, patches each one, re-audits after all fixes are applied.</p>
|
|
<div class="wf-pipeline">
|
|
<span>scan</span><span class="wf-arrow">→</span>
|
|
<span>prioritize</span><span class="wf-arrow">→</span>
|
|
<span>setup</span><span class="wf-arrow">→</span>
|
|
<span>fix</span><span class="wf-arrow">→</span>
|
|
<span>verify</span><span class="wf-arrow">→</span>
|
|
<span>test</span><span class="wf-arrow">→</span>
|
|
<span>PR</span>
|
|
</div>
|
|
</div>
|
|
<div class="wf-card">
|
|
<div class="wf-header">
|
|
<h3>bug-fix</h3>
|
|
<span class="wf-badge">6 agents</span>
|
|
</div>
|
|
<p>Paste a bug report. Get back a fix with a regression test. Triager reproduces it, investigator finds root cause, fixer patches, verifier confirms. Zero babysitting.</p>
|
|
<div class="wf-pipeline">
|
|
<span>triage</span><span class="wf-arrow">→</span>
|
|
<span>investigate</span><span class="wf-arrow">→</span>
|
|
<span>setup</span><span class="wf-arrow">→</span>
|
|
<span>fix</span><span class="wf-arrow">→</span>
|
|
<span>verify</span><span class="wf-arrow">→</span>
|
|
<span>PR</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Why it works -->
|
|
<section class="section">
|
|
<h2>Why it works</h2>
|
|
<div class="steps-grid">
|
|
<div class="step-card">
|
|
<h3>Deterministic workflows</h3>
|
|
<p>Same workflow, same steps, same order. Not "hopefully the agent remembers to test."</p>
|
|
</div>
|
|
<div class="step-card">
|
|
<h3>Agents verify each other</h3>
|
|
<p>The developer doesn't mark their own homework. A separate verifier checks every story against acceptance criteria.</p>
|
|
</div>
|
|
<div class="step-card">
|
|
<h3>Fresh context, every step</h3>
|
|
<p>Each agent gets a clean session. No context window bloat. No hallucinated state from 50 messages ago.</p>
|
|
</div>
|
|
<div class="step-card">
|
|
<h3>Retry and escalate</h3>
|
|
<p>Failed steps retry automatically. If retries exhaust, it escalates to you. Nothing fails silently.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- How it works -->
|
|
<section class="section">
|
|
<h2>How it works</h2>
|
|
<div class="steps-grid">
|
|
<div class="step-card">
|
|
<div class="step-num">1</div>
|
|
<h3>Define</h3>
|
|
<p>Agents and steps in YAML. Each agent gets a persona, workspace, and strict acceptance criteria. No ambiguity about who does what.</p>
|
|
</div>
|
|
<div class="step-card">
|
|
<div class="step-num">2</div>
|
|
<h3>Install</h3>
|
|
<p>One command provisions everything: agent workspaces, cron polling, subagent permissions. No Docker, no queues, no external services.</p>
|
|
</div>
|
|
<div class="step-card">
|
|
<div class="step-num">3</div>
|
|
<h3>Run</h3>
|
|
<p>Agents poll for work independently. Claim a step, do the work, pass context to the next agent. SQLite tracks state. Cron keeps it moving.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Minimal by design -->
|
|
<section class="section minimal-section">
|
|
<h2>Minimal by design</h2>
|
|
<p class="section-desc">YAML + SQLite + cron. That's it. No Redis, no Kafka, no container orchestrator. Antfarm is a TypeScript CLI with zero external dependencies. It runs wherever OpenClaw runs.</p>
|
|
</section>
|
|
|
|
<!-- Ralph loop -->
|
|
<section class="section ralph-section">
|
|
<div class="ralph-row">
|
|
<img src="https://raw.githubusercontent.com/snarktank/ralph/main/ralph.webp" alt="Ralph" class="ralph-img">
|
|
<div>
|
|
<h3>Built on the Ralph loop</h3>
|
|
<p>Each agent runs in a fresh session with clean context. Memory persists through git history and progress files — the same autonomous loop pattern from <a href="https://github.com/snarktank/ralph">Ralph</a>, scaled to multi-agent workflows.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Quick example -->
|
|
<section class="section">
|
|
<h2>Quick example</h2>
|
|
<div class="code-block">
|
|
<div class="code-header">
|
|
<span class="code-tab active">Terminal</span>
|
|
</div>
|
|
<pre><code><span class="c-prompt">$</span> antfarm workflow install feature-dev
|
|
<span class="c-ok">✓</span> Installed workflow: feature-dev
|
|
|
|
<span class="c-prompt">$</span> antfarm workflow run feature-dev <span class="c-str">"Add user authentication with OAuth"</span>
|
|
<span class="c-dim">Run: a1fdf573</span>
|
|
<span class="c-dim">Workflow: feature-dev</span>
|
|
<span class="c-dim">Status: running</span>
|
|
|
|
<span class="c-prompt">$</span> antfarm workflow status <span class="c-str">"OAuth"</span>
|
|
<span class="c-dim">Run: a1fdf573</span>
|
|
<span class="c-dim">Workflow: feature-dev</span>
|
|
<span class="c-dim">Steps:</span>
|
|
<span class="c-ok">[done ]</span> plan (planner)
|
|
<span class="c-ok">[done ]</span> setup (setup)
|
|
<span class="c-run">[running]</span> implement (developer) <span class="c-dim">Stories: 3/7 done</span>
|
|
<span class="c-pend">[pending]</span> verify (verifier)
|
|
<span class="c-pend">[pending]</span> test (tester)
|
|
<span class="c-pend">[pending]</span> pr (developer)
|
|
<span class="c-pend">[pending]</span> review (reviewer)</code></pre>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Build your own -->
|
|
<section class="section">
|
|
<h2>Build your own</h2>
|
|
<p class="section-desc">The bundled workflows are starting points. Define your own agents, steps, retry logic, and verification gates in plain YAML and Markdown. If you can write a prompt, you can build a workflow.</p>
|
|
<div class="code-block">
|
|
<div class="code-header">
|
|
<span class="code-tab active">workflow.yml</span>
|
|
</div>
|
|
<pre><code><span class="c-key">id:</span> my-workflow
|
|
<span class="c-key">name:</span> My Custom Workflow
|
|
<span class="c-key">agents:</span>
|
|
- <span class="c-key">id:</span> researcher
|
|
<span class="c-key">name:</span> Researcher
|
|
<span class="c-key">workspace:</span>
|
|
<span class="c-key">files:</span>
|
|
<span class="c-key">AGENTS.md:</span> agents/researcher/AGENTS.md
|
|
|
|
<span class="c-key">steps:</span>
|
|
- <span class="c-key">id:</span> research
|
|
<span class="c-key">agent:</span> researcher
|
|
<span class="c-key">input:</span> <span class="c-str">|</span>
|
|
<span class="c-str">Research {{task}} and report findings.</span>
|
|
<span class="c-str">Reply with STATUS: done and FINDINGS: ...</span>
|
|
<span class="c-key">expects:</span> <span class="c-str">"STATUS: done"</span></code></pre>
|
|
</div>
|
|
<p class="section-link">Full guide: <a href="https://github.com/snarktank/antfarm/blob/main/docs/creating-workflows.md">docs/creating-workflows.md</a></p>
|
|
</section>
|
|
|
|
<!-- Security -->
|
|
<section id="security" class="section">
|
|
<h2>Security</h2>
|
|
<p class="section-desc">You're installing agent teams that run code on your machine. We take that seriously.</p>
|
|
<div class="security-grid">
|
|
<div class="security-item">
|
|
<h4>Curated repo only</h4>
|
|
<p>Antfarm only installs workflows from the official <a href="https://github.com/snarktank/antfarm">snarktank/antfarm</a> repository. No arbitrary remote sources.</p>
|
|
</div>
|
|
<div class="security-item">
|
|
<h4>Reviewed for prompt injection</h4>
|
|
<p>Every workflow is reviewed for prompt injection attacks and malicious agent files before merging.</p>
|
|
</div>
|
|
<div class="security-item">
|
|
<h4>Community contributions welcome</h4>
|
|
<p>Want to add a workflow? Submit a PR. All submissions go through careful security review before they ship.</p>
|
|
</div>
|
|
<div class="security-item">
|
|
<h4>Transparent by default</h4>
|
|
<p>Every workflow is plain YAML and Markdown. You can read exactly what each agent will do before you install it.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Dashboard -->
|
|
<section class="section">
|
|
<h2>Dashboard</h2>
|
|
<p class="section-desc">Monitor runs, track step progress, and view agent output in real time.</p>
|
|
<div class="dashboard-frame">
|
|
<img src="dashboard-screenshot.png" alt="Antfarm dashboard showing workflow runs and step status">
|
|
</div>
|
|
<div class="dashboard-frame" style="margin-top:16px">
|
|
<img src="dashboard-detail-screenshot.png" alt="Antfarm dashboard showing run detail with stories">
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Commands -->
|
|
<section id="commands" class="section">
|
|
<h2>Commands</h2>
|
|
<div class="cmd-grid">
|
|
<div class="cmd-group">
|
|
<h4>Lifecycle</h4>
|
|
<div class="cmd-row"><code>antfarm install</code><span>Install all bundled workflows</span></div>
|
|
<div class="cmd-row"><code>antfarm uninstall</code><span>Full teardown (agents, crons, DB)</span></div>
|
|
</div>
|
|
<div class="cmd-group">
|
|
<h4>Workflows</h4>
|
|
<div class="cmd-row"><code>antfarm workflow run <id> <task></code><span>Start a run</span></div>
|
|
<div class="cmd-row"><code>antfarm workflow status <query></code><span>Check run status</span></div>
|
|
<div class="cmd-row"><code>antfarm workflow runs</code><span>List all runs</span></div>
|
|
<div class="cmd-row"><code>antfarm workflow resume <run-id></code><span>Resume a failed run</span></div>
|
|
</div>
|
|
<div class="cmd-group">
|
|
<h4>Management</h4>
|
|
<div class="cmd-row"><code>antfarm workflow list</code><span>List available workflows</span></div>
|
|
<div class="cmd-row"><code>antfarm workflow install <id></code><span>Install a single workflow</span></div>
|
|
<div class="cmd-row"><code>antfarm workflow uninstall <id></code><span>Remove a single workflow</span></div>
|
|
<div class="cmd-row"><code>antfarm dashboard</code><span>Start the web dashboard</span></div>
|
|
<div class="cmd-row"><code>antfarm logs</code><span>View recent log entries</span></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<footer class="footer">
|
|
<div class="footer-inner">
|
|
<p>Part of the <a href="https://docs.openclaw.ai">OpenClaw</a> ecosystem</p>
|
|
<p>Built by <a href="https://ryancarson.com">Ryan Carson</a></p>
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|