Skip to content
Nate LomaxMar 31, 2026

DevIQ Symphony: Building Autonomous AI Developers at Enterprise Scale (Part 2)

A 3-Part Thought Leadership Series by Nate Lomax

Part 2

In Part 1 we explored the leap from coding copilots to autonomous agents and delved into the architecture and challenges of building a platform that integrates AI into enterprise workflows seamlessly.

Continuing the series, we dig into the adapter-based architecture and tenant orchestrator that lets Symphony integrate safely across diverse enterprise toolchains via MCP-powered, context-aware feedback loops.

The Architecture That Makes Agentic AI Practical

Symphony’s most important architectural decision wasn’t about models or prompts. It was about abstraction.

We realized early that enterprise teams don’t share a single stack. Some use Azure DevOps. Others GitHub. Some Jira. Some Linear. AI agents evolve even faster.

So we designed Symphony around three independent adapter types:

  • Agent adapters – abstract Claude, Codex, OpenCode, and future agents
  • Repo adapters – abstract GitHub, Azure Repos, Bitbucket
  • Work manager adapters – abstract Azure Boards, Jira, Linear

Symphony Adapters for Agents, Repo and Work Manager diagram

Each adapter implements a clean interface. None of them know about each other. The only place they come together is inside the Tenant Orchestrator.

The Tenant Orchestrator

The orchestrator wires together the correct adapters per tenant and coordinates workflows across them. When an agent finishes coding, the orchestrator then instigates a cycle.Orchestrator's Workflow Cycle: Pull, PR, Assign, Update, TransitionEach adapter stays focused on its domain. The orchestrator handles the choreography. This design gives us combinatorial flexibility:

  • Add a new AI agent? Implement one adapter.
  • Add GitHub? Implement repo + work manager adapters.
  • Everything else stays untouched.

That’s how Symphony becomes a platform – not a point solution.

MCP: Giving Agents Hands

Agents don’t natively know how to interact with DevOps platforms. So we built an MCP (Model Context Protocol) server that exposes tools like:

  • get-work-item
  • submit-changes
  • add-pull-request-comment
  • update-work-item

Agents simply call tools. MCP handles authentication, platform APIs, reviewers, and linking work items.

MCP: Authentication, Platform APIs, Reviewers, Linking Work Items

The agent focuses on code. The platform handles operations.

Context-Aware Feedback Loops

Symphony also preserves full context across iterations. When reviewers leave comments, the next agent run includes:

  • Original requirements
  • Previous PR
  • Reviewer feedback

The agent picks up where it left off – just like a human developer. 

agentic shared coding human and machine

You can even @mention the agent directly on pull requests.

It joins the conversation.

By this point, we had autonomous agents working across platforms.

But real-world production brought harder challenges: multi-tenancy, credential isolation, lightweight automations, and unexpected use cases.

In Part 3, we’ll cover what we learned building Symphony in the wild — and where it’s headed next.

avatar
Nate Lomax
Nate is passionate about building technology that makes a difference over his nearly 20 years of experience as a software engineer. Beyond the office, he's a family-first enthusiast who enjoys exploring new destinations, dining at great restaurants, gaming, and tinkering with tech just for the fun of it.