guildlm/go-dev
GuildLM · go-dev
*A small, sharp Go development specialist from the GuildLM Code Guild.*
go-dev writes clean, idiomatic, standard-library-first Go — types, functions, concurrency, and whole multi-file packages. It is one of three specialists in the GuildLM Code Guild (go-dev · `go-test` · `go-review`) designed to be wrapped in a verification-driven agent loop rather than used as a lone chatbot.
The bet: capability = model × algorithm. A 7B specialist inside a compile-and-test loop, grounded by retrieval and guarded by deterministic gates, writes correct backends that a much larger general model — with no scaffolding — does not. go-dev is the model half. The Builder agent loop is the algorithm half.Why this isn't "just Qwen with a name"
go-dev is a fused, standalone model (no separate adapter) with its own identity — ask it who it is and it answers GuildLM go-dev, not the base model. It is fine-tuned for one job (writing Go) and shipped as part of a guild that works together. Under the hood it is an honest Apache-2.0 derivative of Qwen2.5-Coder-7B-Instruct — we attribute the base proudly, and the value we add is specialization + the agent algorithm around it.
What it's for
- Generating idiomatic Go: structs, methods, generics, error handling, concurrency.
- Stdlib-first HTTP services (
net/http,ServeMux) — no reflexive third-party routers. - Working as the implementation role inside the GuildLM Builder: decompose a spec →
go-devwrites the code →go-testwrites the tests →go build/vet/test→ fix →go-reviewaudits.
Benchmarks
Measured locally with the real Go toolchain (no LLM-as-judge). See the research log for the full, honest story — including where fine-tuning helps and where the base and the algorithm are the real levers.
<!-- BENCH:go-dev --> | Benchmark | Metric | go-dev | base 7B | |---|---|---|---| | crucible go_dev_bench (24 tasks) | pass@1 (real go build+go test) | 17/24 | 19/24 | | project-level score_backend (in the Builder loop) | build + vet + test | 3/3 first try on tractable stdlib specs (numkit, jsonapi, worker-pool) | — |
Honest note (this is the whole point of GuildLM): on the solo unit benchmarkgo-devlands within measurement noise of its base — for pure code-generation, per-role fine-tuning is not the lever; base choice and the agent loop are.go-dev's real edge shows up at the project level: driven by the Builder with retrieval grounding, it writes whole stdlib backends that build, vet and test green on the first try (score_backend3/3) — which a lone model, prompted once, does not. Use it in the loop; that's where it shines.
Quickstart
Apple Silicon (MLX)
pip install mlx-lm
python -m mlx_lm generate --model guildlm/go-dev \
--prompt "Write an idiomatic Go function MergeIntervals(intervals [][]int) [][]int." \
--max-tokens 400Ollama (GGUF)
ollama run guildlm/go-dev "Write a stdlib-only Go net/http key/value service with GET/PUT."Inside the agent loop (recommended)
# serve OpenAI-compatible, then let the Builder drive it
python -m mlx_lm server --model guildlm/go-dev --port 8080
guildlm-build --spec specs/myservice.yaml --out ./out \
--base-url http://localhost:8080/v1 \
--test-model guildlm/go-test --review-model guildlm/go-review \
--examples examples/verified_contracts.jsonl --candidates 3Prompting
go-dev is trained with the system prompt:
You are GuildLM go-dev, a Go development specialist from the GuildLM Code Guild.
Ask for complete, runnable Go. It prefers the standard library and will avoid third-party dependencies unless you explicitly ask.
The Guild
- Agent loop: https://github.com/guildlm/builder
- Research log (every experiment, wins and losses): https://guildlm.github.io/research/
License & attribution
Apache-2.0, inherited from the base model Qwen2.5-Coder-7B-Instruct (© Alibaba Cloud). GuildLM fine-tuning, identity, packaging, and the agent loop are released under the same license. All training was done locally on Apple Silicon with MLX — total cloud spend: $0.
