The self-improvement loop, run locally.
A Go port of SIA (Hebbar et al. 2026, arXiv:2605.27276): a meta-agent seeds a target agent, the target runs and records a trajectory, a feedback agent rewrites it for the next generation.
Research port. The orchestration loop, filesystem layout, and prompt builders are ported faithfully; the prompts are verified byte-identical against fixtures from the Python reference. Agent execution and evaluation sit behind Go interfaces, so the loop runs without a Python runtime.
What it does- Three-agent loop — orchestrates meta, target, and feedback agents over
runs/run_{id}/gen_{n}/generations, matching the reference layout. - Golden-locked prompts — meta and feedback prompt builders reproduce the reference text exactly, verified in tests against generated fixtures.
- Trajectory handling — loads execution trajectories with the reference's single- vs multi-trajectory detection rules.
- Pluggable runners — the engine that runs each agent is an interface, the same seam the reference exposes; bring your own model or harness.
- Harness and weights modes — improvement can target the agent's code or, in weights mode, convert trajectories into token-level samples for local LoRA training.
mlx-go-sia is the agent-improvement corner of the family: where mlx-go-lm trains models and mlx-go-vibethinker reproduces a post-training recipe, sia closes the loop at the agent level — the system that runs the task is also the thing being improved, generation by generation, on hardware you hold. The Python ecosystem around the reference is deliberately not copied; the seams are Go interfaces so the loop composes with the rest of the stack.