The Agentic Workflow Framework
To manage cognitive load, developers should categorize tasks based on the required level of human intervention. Instead of expecting a single agent to solve complex problems in one shot, use a multi-agent approach within VS Code to parallelize work:
- Local Agents (High Oversight): Best for tasks requiring deep context and human-in-the-loop iteration, such as writing and debugging unit tests. These run locally, allowing for immediate feedback and fine-grained control.
- Background Agents (Medium Oversight): Ideal for arduous, time-consuming tasks like UI generation. By utilizing git worktrees—which map branches to isolated subdirectories—developers can let agents work on a separate feature branch without disrupting their current workspace. This allows for a "50/50" collaboration model where the developer checks in periodically.
- Cloud Agents (Low Oversight): Best for tasks where the process matters less than the output, such as generating documentation or making a repository open-source friendly. These run in isolated environments like GitHub Actions, ensuring they remain secure and restricted from modifying main branches.
VS Code as a Unified Control Plane
VS Code serves as the central hub for these disparate agent types, providing a consistent interface for managing third-party models (like Claude), custom agents, and built-in Copilot features.
- Configuration: The settings modal in the Copilot chat pane allows developers to manage custom instructions, prompt files, and agent skills in one place.
- Model Context Protocol (MCP): MCP servers enable agents to interact with external tools and data sources (e.g., Playwright for UI testing, or documentation APIs) securely. By using MCP, agents gain extended capabilities while remaining constrained by whitelisted network firewalls and authentication layers.
- Autopilot Patterns: When using agents in "autopilot" mode, developers can define a plan and allow the agent to execute multiple tool calls. A best practice is to instruct the agent to pause before creating a pull request, allowing the developer to verify the work locally before it is merged.