尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
A coding agent that runs as three cooperating actors over one append-only event log, in a single Go binary
翻译准备中
正在加载完整 README。
查看完整 README ↗A coding agent that runs as three cooperating actors over one append-only event log, in a single binary.
$ eagent -p "Read INSTRUCTIONS.md and build it."
eagent session 1788745982263
orchestrator GLM-5.3 · task GLM-5.3-Flash · narrator DeepSeek-V4-Flash-0731
▸ t1 delegated: Build "Neon Brickles" — complete modern breakout game
✓ t1 completed after 31 calls
✎ Game complete and verified; served locally on port 8000 …
│ The game is done. Files are in index.html, css/, and js/ (vanilla ES modules, no
│ dependencies) …
Given the one-paragraph, dictated brief for "a modern take on Breakout" in INSTRUCTIONS.md and the prompt "Read INSTRUCTIONS.md and relentlessly build it until you're confident that it's fully and completely implemented to the highest possible standard you can manage", a batch session with the default models did this, unattended:
| Wall clock | 29 minutes |
| Orchestrator | 55 calls, 1.5M input tokens (93% served from cache), 52k output |
| Task worker | 2 tasks, 120 calls, 6.0M input (85% cached), 134k output |
| Narrator | 25 wakes, 3 messages sent |
| Cost | about $1.20 at Together's list prices |
| Result | 17 files, ~3,000 lines of dependency-free JavaScript; 74 unit tests and 9 headless smoke tests, all passing; zero console errors in a real browser |
The orchestrator wrote a 9,000-token spec for the worker (architecture contract, file layout, ten brick types, test plan), the worker ran out of its call budget mid-debug and was reported as failed with its last message attached, the orchestrator verified what was on disk (unit tests green, one smoke assertion failing, no README), delegated a precise follow-up, then found and fixed a dead config value the worker had flagged, re-ran everything, and only then declared the work done. The narrator spoke three times: when the first task failed, when the follow-up finished, and a final report with paths, commands, verification results, and the one late fix.
The same brief was run three more times to check consistency, once with SIGINT sent 200 seconds in and the session resumed with eagent -c. All four produced a working game with its own passing test suite. The resumed run split the build into six parallel tasks, then during its own integration pass found and fixed six bugs the workers' tests had missed (an audio-module crash, a broken tap-to-start, an unbounded multiplier), and finished with 59 rule tests, 12 physics tests, and a 26-scenario real-Chromium end-to-end suite green. A separate run with the same brief but a 20k-token rollover threshold rolled its context over ten times and still finished.
The same brief was then run on sixteen presets at once — fourteen plus two xhigh heroes — from a $0.04 eleven-minute build to a $78.11 two-hour one: ~$242 of runs all in at a ~92% cache-hit rate, with four interrupted runs resumed and re-judged (one black-canvas failure fixed into a second perfect score) — and the sixteen results were measured, played and judged side by side: docs/breakout-grid.md has the full grid — the cost and quality tables, the rubric with evidence, screenshots of every build, the two heroes and the redemption, and what profiling the sixteen runs changed in the harness.
Most agents are one model in a loop. eagent splits the job three ways because the three jobs pull in different directions:
| Actor | Job | Context | Default model |
|---|---|---|---|
| Orchestrator | Decides what happens: plans, delegates, verifies, decides when the work is done. | Continuous | zai-org/GLM-5.3 |
| Task worker | Does one self-contained task well and fast, then reports. | Fresh per task | zai-org/GLM-5.3-Flash |
| Narrator | The only actor that talks to you. Watches everything and decides what is worth saying, and when. | Continuous | deepseek-ai/DeepSeek-V4-Flash-0731 |
All three write to the same JSONL log in your project directory. Replaying that log rebuilds the whole session, so a crash never loses work: eagent -c picks up where it stopped.
go install github.com/ericflo/eagent/cmd/eagent@latest
or clone and go build -o eagent ./cmd/eagent. No runtime dependencies beyond bash.
Set one key for the default models:
export TOGETHER_API_KEY=...
eagent doctor --live # makes one tiny call per actor
eagent "add a Makefile with build and test targets" # interactive
eagent -p "fix the failing test in pkg/store" # batch: exits when done
eagent -c # continue the latest session here
eagent sessions # what has run in this project
eagent show 1788745982263 # human transcript
eagent replay 1788745982263 # rebuild state from the log
In an interactive session, type to talk to the agent (even while it is working; your message is delivered at the next model call), /status to see what is running, /quit to stop. Ctrl-C stops the session cleanly; everything is on disk and eagent -c resumes it. Resuming replays the log, closes whatever the crash left open (a tool call without a result, a running task, a process), tells the orchestrator what was lost, and continues.
Batch mode exits 0 when the orchestrator declares the work done, 2 when it stopped to ask you something (answer with eagent -c --answer "..."), 130 on Ctrl-C.
eagent # in a project: http://127.0.0.1:7331 (same as eagent serve)
eagent -p --serve 127.0.0.1:7331 "…" # also serve while a terminal session runs
It listens on this machine only: the page can start sessions that run shell commands, so it refuses anything but local requests. Ctrl-C stops it in a few seconds (a second Ctrl-C quits at once); sessions it hosts resume when you write to them again.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗