DEV Community

Ramu Narasinga
Ramu Narasinga

Posted on

What is Agent Client Protocol?

In this article, we review what ACP is. You will learn:

  1. What is Agent Client Protocol?

  2. ACP in DeepAgents codebase.

Press enter or click to view image in full size

What is Agent Client Protocol?

The Agent Client Protocol (ACP) standardizes communication between code editors/IDEs and coding agents and is suitable for both local and remote scenarios.

Why ACP?

AI coding agents and editors are tightly coupled but interoperability isn’t the default. Each editor must build custom integrations for every agent they want to support, and agents must implement editor-specific APIs to reach users. This creates several problems:

  • Integration overhead: Every new agent-editor combination requires custom work

  • Limited compatibility: Agents work with only a subset of available editors

  • Developer lock-in: Choosing an agent often means accepting their available interfaces

ACP solves this by providing a standardized protocol for agent-editor communication, similar to how the Language Server Protocol (LSP) standardized language server integration.Agents that implement ACP work with any compatible editor. Editors that support ACP gain access to the entire ecosystem of ACP-compatible agents. This decoupling allows both sides to innovate independently while giving developers the freedom to choose the best tools for their workflow.

Learn more about Agent Client Protocol.

ACP in DeepAgents codebase.

ACP is defined as a folder in libs/acp. There is a mention of Zed in its README. I checked the zed website and you should too. Zed is a minimal code editor crafted for speed and collaboration with humans and AI.

deepagents-mcp usage from their README:

// ~/.config/zed/settings.json
{
  "agent": {
    "profiles": {
      "deepagents": {
        "name": "DeepAgents",
        "command": "npx",
        "args": ["deepagents-acp"]
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Below is another example for programmatic usage:

import { startServer } from "deepagents-acp";

await startServer({
  agents: {
    name: "coding-assistant",
    description: "AI coding assistant with filesystem access",
  },
  workspaceRoot: process.cwd(),
});
Enter fullscreen mode Exit fullscreen mode

I checked the DeepAgents docs to find some proper usecase and found the below examples:

  • Handle complex, multi-step tasks that require planning and decomposition

  • Manage large amounts of context through file system tools

  • Swap filesystem backends to use in-memory state, local disk, durable stores, sandboxes, or your own custom backend

  • Delegate work to specialized subagents for context isolation

  • Persist memory across conversations and threads

Learn more about Deep Agents.

About me:

Hey, my name is Ramu Narasinga. Email: ramu.narasinga@gmail.com

Tired of AI slop?

I spent 3+ years studying OSS codebases and wrote 350+ articles on what makes them production-grade. I built an open source tool that reviews your PR against your existing codebase patterns.

Your codebase. Your patterns. Enforced.

Get started for free — thinkthroo.com

References:

  1. langchain-ai/deepagentsjs/libs/acp/README.md

  2. agentclientprotocol.com/get-started/introduction

  3. langchain-ai/deepagentsjs/libs/acp

  4. zed.dev/

Top comments (0)