with-agents

Building Pi in a World of Slop — Mario Zechner

Mario Zechner on Pi, self-modifying agents, and agent slop

Mario Zechner explains why he built Pi as a minimal, self-modifying coding-agent harness after frustrations with opaque context management and feature-heavy tooling. The talk covers Pi's small core and extension model, Terminal-Bench results, agent spam pressure on open-source maintainers, and a practical warning to slow down, scope agent tasks, and keep humans responsible for critical code.

AI Engineer

Pi is a coding-agent harness—the tools and execution loop around a model—that users can adapt by asking the agent to write extensions. Mario Zechner explains why he wanted that control and why easier code generation still needs limits on complexity and review volume.

Key Points Covered

  • Pi started as a reaction to opaque agent harnesses: Zechner says Claude Code initially fit his workflow. Changing prompts and tool definitions, hidden context reminders, shallow hooks, limited observability, and no model choice eventually made it feel less like his development environment 00:54–02:47(opens in a new tab).
  • Context handling matters more than feature count: His look at OpenCode identifies hazards such as pruning tool outputs, injecting LSP errors after every edit, and exposing local servers too broadly. By contrast, Terminal-Bench's minimal tmux-only harness performs surprisingly well. Zechner suggests current coding-agent UIs are still experimental rather than final 03:36–05:16(opens in a new tab).
  • Pi's thesis is malleability over bloat: Pi strips the agent down to a small provider layer, an agent loop, a TUI, and four core tools: read, write, edit, and bash. Instead of a large built-in feature set, it ships documentation and examples that let the agent modify its own harness through extensions 05:16–07:06(opens in a new tab).
  • Users supply their own approval policy: Pi does not ask for approval before tool calls by default. Zechner leaves that policy to extensions because users' security needs differ. TypeScript extensions can also add subagents, planning, tools, interfaces, context compaction, and model providers; changes can reload during a session and packages can be shared through ordinary package managers 07:06–09:42(opens in a new tab).
  • The community demonstrates the extension surface: Zechner highlights extensions for background agent chat, multi-agent chat rooms, NES games, Doom, and package discovery. He reports a competitive Terminal-Bench placement for Pi. However, the shown leaderboard has too little configuration detail to establish a general harness ranking 08:49–10:32(opens in a new tab).
  • Open-source maintainers are absorbing agent spam: After Pi became OpenClaw's agent core, Zechner's project started receiving low-quality issues and pull requests from agent instances. His defenses include auto-closing PRs until a human writes a concise issue, allowlisting trusted accounts, labeling OpenClaw-driven reports, embedding tracker text to spot clusters, and closing trackers when needed 10:32–11:31(opens in a new tab).
  • Agents compound errors without learning pain: The talk argues that agents can create far more bad code than humans because they lack human bottlenecks and learn complexity from internet code. It argues that they fill underspecified specs with mediocre defaults and keep patching locally even when the global system becomes harder to trust 11:31–15:53(opens in a new tab).
  • Use agents where scope and evaluation are clear: Zechner recommends modularizing code so an agent can find all relevant context and giving it an evaluation function when possible. He recommends delegating non-critical or boring work and using agents for reproduction cases and rubber-ducking. He also recommends capping generated code that must be reviewed and reading every line of critical code 15:53–17:41(opens in a new tab).

Full video: https://www.youtube.com/watch?v=RjfbvDXpFls(opens in a new tab)

Search

Search field guides and resources across the site.

    Keyboard shortcuts

    Press ? to open this guide (usually Shift + /). Close it before using other site shortcuts.

    Show keyboard shortcuts
    ?
    Search site
    Ctrl + K
    Close the current dialog or menu
    Esc

    Site shortcuts are ignored while typing. Browser and extension shortcuts may take priority.