Skip to content

Beyond the Basics: Agentic Software Engineering with Cloud Code

Original URL: https://m.youtube.com/watch?v=tuY2ChJIx48

This technical presentation by Daisy Holman, an engineer on the Cloud Code team, explores the transition from simple "agentic programming" to full-scale "agentic software engineering." The core premise is that for an AI agent to effectively assist in a professional software engineering environment—especially within large-scale monorepos—it must be customized to have the same access, knowledge, and tooling that a human engineer possesses.

The Thesis of Agentic Customization

The central argument is simple: If an agent cannot access everything a human engineer can, it cannot do the job. While "vanilla" agents work for "zero-to-one" projects, professional software engineering involves complex constraints, technical debt, and stakeholder concerns that are rarely captured in source code alone.

To bridge this gap, engineers must provide agents with three critical categories of support: * Access: Integration with team chats (Slack), CI/CD pipelines, dashboards, and internal design documents to understand the "why" behind tasks. * Knowledge: Institutional memory and internal APIs. Since fine-tuning is often cost-inefficient and can increase hallucinations, the focus shifts to In-Context Learning (ICL). * Tooling: Creating an "IDE for agents" that provides feedback loops similar to how syntax highlighting or LSPs (Language Server Protocols) nudge human developers.

Context Window Engineering

Managing the context window is the primary technical challenge in agentic harness design. With frontier models maintaining a relatively stable context window (around 1 million tokens), efficiency is paramount.

The "Arduino" Analogy

The speaker compares managing the context window to running NPM on an Arduino: memory is extremely limited, and you must be intentional about what is loaded to avoid wasting space.

The KV Cache Constraint

A critical technical detail is the KV (Key-Value) cache. Changes made early in a prompt can invalidate the cache for all subsequent tokens, making them significantly more expensive. To optimize: * Place stable, shared information at the front of the prompt. * Place volatile, task-specific information at the end.

Plugin Abstractions and Scalability

The talk evaluates four primary plugin primitives based on how they scale when dealing with tens of thousands of configurations in a monorepo.

Primitive Scalability Key Characteristic Verdict
MCP Low Transport agnostic, designed for chatbots. Overkill for internal CLI tools; better for public integrations.
Skills Medium "Lazy system prompts" via markdown files. Easy to set up, but descriptions still consume system prompt space.
Hooks High Event-driven scripts running outside the window. Zero-token cost until triggered; the most scalable abstraction.
Subagents Medium Separate contexts for specific tasks. Useful for splitting work, but parent prompt still tracks agent descriptions.

The "Red Squiggly" Concept

The speaker advocates for "tools that scale with intelligence." Instead of hard-blocking an agent from an action (which limits flexibility), developers should use post-tool use hooks to provide "red squigglies"—gentle reminders or warnings (e.g., "this is a generated file") that the agent can choose to heed or override.

Advanced Workflows and Future Directions

To maximize efficiency, the speaker suggests moving toward asynchrony and parallelism, shifting the engineer's role to that of a "Technical Lead" managing a team of agents.

  • Git Worktrees: Using separate checkouts of the same repository allows multiple agents to work on different tasks simultaneously without stepping on each other.
  • Agent Communication: The sendMessageTool allows agents to communicate, enabling one agent to explain a context or a decision to another.
  • The /loop Command: A "cron-like" tool that runs prompts at fixed intervals, ideal for babysitting PRs and fixing CI failures overnight.
  • Permissions Mode: The use of classifier agents to adversarially check tool calls, allowing for "auto mode" where agents can work autonomously without constant human approval.

Key Takeaways

  • Give it Access: Connect your agent to the communication channels where decisions are actually made (Slack, Email, Design Docs).
  • Mind the Box: Treat the context window as a constrained resource; avoid "paying" for tokens you don't use.
  • Pick Scalable Abstractions: Prioritize hooks and lazy-loading over static system prompts to ensure the system remains performant as the codebase grows.