Containing Agent Chaos — Solomon Hykes, Dagger

Introduction and Context 00:21

  • Solomon Hykes notes the significance of returning to the same stage as Docker Con 2015, reflecting on how much has changed in the industry
  • Sets out to discuss the challenges and chaos that arise when using coding agents, focusing on the platform engineering perspective

The Challenge of Platform Engineering and Coding Agents 01:06

  • Platform engineers are responsible for enabling developers, often without direct recognition
  • With the advent of coding agents, platform engineers now need to enable robots to ship software, shifting the focus from enabling humans to enabling agents
  • The full transition to teams of coding agents working automatically is not mainstream yet, but momentum and interest are growing

Current Approaches to Managing Agent Chaos 03:45

  • The common definition of an agent is an LLM performing repetitive tasks on your behalf, but prone to making mistakes and requiring close supervision
  • Two current options for scaling agents are outlined:
    • "YOLO mode": Running multiple agents in a shared environment, leading to high potential for chaos and interference
    • "All-in-one model": Hosted agent platforms that handle everything, but limit user flexibility and control
  • Each method has downsides, such as lack of scalability or limited customization

Desired Features for Next-Generation Agent Environments 06:02

  • Four key requirements for better agent environments:
    • Ability to do background work without constant supervision
    • Implementation of "rails" (constraints and guidance) for agents, such as coding styles, build/test steps, tool usage, and secret access
    • Efficient and seamless human intervention when necessary, beyond just code reviews
    • Optionality and openness, allowing users to choose components and avoid vendor lock-in

Role of Containers and Integration with Agents 08:25

  • Containers are highlighted as crucial, underutilized tech for providing isolated, customizable, multiplayer, and open environments for agents
  • Native integration of containers with agent tooling is proposed to solve current workflow problems and provide robust agent environments
  • The concept of "container use" is introduced, where agents develop entirely within containers, not just executing code in sandboxed environments

Demonstration of "Container Use" with Dagger 10:44

  • A live demo is conducted showing how the "container use" system works alongside coding agents and cloud tools
  • The setup allows agents to create portable, repeatable container environments that are agnostic of agent or tool choice
  • Environments are not tied to a local machine and remain isolated, maintaining workspace cleanliness and enabling development anywhere
  • State is persisted in Git using special objects, providing a log/history and clean collaboration loop
  • Users can open terminals within agent environments and inspect files, tools, and configurations set up by the agent

Collaboration, Experimentation, and Environment Management 15:16

  • Demo showcases merging working environments, running experiments in parallel with multiple agents, and cleanly discarding unwanted outcomes
  • Supports plugging in secrets securely from standard managers (e.g., 1Password), keeping secret handling out of agent/company domains
  • Environments and changes are managed with Git-like commands, enabling diffs, merges, and snapshotting as agents do their work

Infrastructure Flexibility and Scaling 20:01

  • Demonstrates running environments remotely (e.g., on a home server), supporting various infrastructure configurations and use cases like CI pipelines
  • The isolation includes not just files and configuration but also the runtime execution of services, enabling parallel development without conflicts

Closing and Open Sourcing 21:40

  • Hykes notes the tradition of open sourcing projects live at Docker Con and proceeds to make "container use" open source despite its unfinished state
  • Invites the community to participate and give feedback at github.com/dagger/containeruse