跳到主要内容

文档索引

在以下地址获取完整的文档索引:https://docs.langchain.org.cn/llms.txt

在进一步探索之前,请使用此文件发现所有可用页面。

代理客户端协议 (ACP) 标准化了编码代理与代码编辑器或 IDE 之间的通信。使用 ACP 协议,您可以将自定义深度代理与任何兼容 ACP 的客户端结合使用,使您的代码编辑器能够提供项目上下文并接收丰富的更新。
ACP 专为代理与编辑器的集成而设计。如果您希望代理调用由外部服务器托管的工具,请参阅 模型上下文协议 (MCP)

快速入门

安装 ACP 集成包
npm install deepagents-acp
然后通过 ACP 暴露深度代理。 这会以 stdio 模式启动 ACP 服务器(它从 stdin 读取请求并向 stdout 写入响应)。实际上,您通常将其作为由 ACP 客户端(例如您的编辑器)启动的命令来运行,该客户端随后通过 stdio 与服务器通信。
import { startServer } from "deepagents-acp";

await startServer({
  agents: {
    name: "coding-assistant",
    description: "AI coding assistant with filesystem access",
  },
  workspaceRoot: process.cwd(),
});
您也可以在不编写任何代码的情况下使用 CLI
npx deepagents-acp

npm 上的 DeepAgents ACP

deepagents-acp 包提供了用于通过 ACP 暴露深度代理的 CLI 和编程 API。

客户端

深度代理可以在任何可以运行 ACP 代理服务器的地方工作。一些值得注意的 ACP 客户端包括:

Zed

通过将深度代理添加到 Zed 设置中(Linux 上为 ~/.config/zed/settings.json,macOS 上为 ~/Library/Application Support/Zed/settings.json),在 Zed 中注册您的深度代理: 简单设置(无需代码):
{
  "agent": {
    "profiles": {
      "deepagents": {
        "name": "DeepAgents",
        "command": "npx",
        "args": ["deepagents-acp"],
        "env": {
          "ANTHROPIC_API_KEY": "sk-ant-..."
        }
      }
    }
  }
}
使用 CLI 选项
{
  "agent": {
    "profiles": {
      "deepagents": {
        "name": "DeepAgents",
        "command": "npx",
        "args": [
          "deepagents-acp",
          "--name", "my-assistant",
          "--skills", "./skills",
          "--debug"
        ],
        "env": {
          "ANTHROPIC_API_KEY": "sk-ant-..."
        }
      }
    }
  }
}
自定义服务器脚本: 为了获得更多控制权,请创建一个 TypeScript 服务器脚本:
// server.ts
import { startServer } from "deepagents-acp";

await startServer({
  agents: {
    name: "my-agent",
    description: "My custom coding agent",
    skills: ["./skills/"],
  },
});
然后将其指向 Zed
{
  "agent": {
    "profiles": {
      "my-agent": {
        "name": "My Agent",
        "command": "npx",
        "args": ["tsx", "./server.ts"]
      }
    }
  }
}
打开 Zed 的“代理”(Agents) 面板并启动一个 DeepAgents 线程。

ACP 注册表

DeepAgents 可在 ACP 代理注册表 中找到,支持在 Zed 和 JetBrains IDE 中一键安装。当 ACP 客户端支持该注册表时,用户无需任何手动配置即可发现并安装深度代理。

CLI 参考

CLI 是启动 ACP 服务器的最快方式。它不需要代码——只需运行 npx deepagents-acp 并连接您的编辑器即可。
npx deepagents-acp [options]
选项简写描述
--name <name>-n代理名称(默认:"deepagents"
--description <desc>-d代理描述
--model <model>-mLLM 模型(默认:"claude-sonnet-4-5-20250929"
--workspace <path>-w工作区根目录(默认:当前工作目录)
--skills <paths>-s逗号分隔的技能路径
--memory <paths>逗号分隔的 AGENTS.md 路径
--debug启用 stderr 的调试日志记录
--help-h显示帮助信息
--version-v显示版本

环境变量

变量描述
ANTHROPIC_API_KEYAnthropic/Claude 模型的 API 密钥(必需)
OPENAI_API_KEYOpenAI 模型的 API 密钥
DEBUG设置为 "true" 以启用调试日志记录
WORKSPACE_ROOT--workspace 标志的替代方案

编程 API

startServer

在一次调用中创建并启动服务器的便捷函数
import { startServer } from "deepagents-acp";

const server = await startServer({
  agents: {
    name: "coding-assistant",
    description: "AI coding assistant with filesystem access",
  },
  workspaceRoot: process.cwd(),
});

DeepAgentsServer

如需完全控制,请直接使用 DeepAgentsServer
import { DeepAgentsServer } from "deepagents-acp";

const server = new DeepAgentsServer({
  agents: [
    {
      name: "code-agent",
      description: "Full-featured coding assistant",
      model: "claude-sonnet-4-5-20250929",
      skills: ["./skills/"],
      memory: ["./.deepagents/AGENTS.md"],
    },
    {
      name: "reviewer",
      description: "Code review specialist",
      systemPrompt: "You are a code review expert...",
    },
  ],
  serverName: "my-deepagents-acp",
  serverVersion: "1.0.0",
  workspaceRoot: process.cwd(),
  debug: true,
});

await server.start();

服务器选项

选项类型默认描述
agentsDeepAgentConfig | DeepAgentConfig[]必填代理配置
serverName字符串"deepagents-acp"ACP 的服务器名称
serverVersion字符串"0.0.1"服务器版本
workspaceRoot字符串process.cwd()工作区根目录
调试布尔值false启用调试日志记录

代理配置

选项类型描述
名称字符串唯一代理名称(必需)
description字符串代理描述
model字符串LLM 模型(默认:"claude-sonnet-4-5-20250929"
toolsStructuredTool[]自定义 LangChain 工具
systemPrompt字符串自定义系统提示词
middlewareAgentMiddleware[]自定义中间件
backendAnyBackendProtocol文件系统后端
skills字符串[]技能源路径
memory字符串[]记忆源路径 (AGENTS.md)
interruptOnRecord<string, boolean | InterruptOnConfig>需要用户批准的工具 (HITL)
commandsArray<{ name, description, input? }>自定义斜杠命令

自定义

多个代理

您可以从单个服务器暴露多个代理。ACP 客户端在创建会话时选择要使用的代理。
const server = new DeepAgentsServer({
  agents: [
    { name: "code-agent", description: "General coding" },
    { name: "reviewer", description: "Code reviews" },
  ],
});
一些 ACP 客户端(如 Zed)目前不提供用于在代理之间进行选择的 UI。在这种情况下,请考虑运行多个独立的服务器实例,每个实例仅包含一个代理。

斜杠命令

服务器向 IDE 注册了内置的斜杠命令:/plan/agent/ask/clear/status。您还可以为每个代理定义自定义命令。
const server = new DeepAgentsServer({
  agents: {
    name: "my-agent",
    commands: [
      { name: "test", description: "Run the project's test suite" },
      { name: "lint", description: "Run linter and fix issues" },
      {
        name: "deploy",
        description: "Deploy to staging",
        input: { hint: "environment (staging or production)" },
      },
    ],
  },
});

人工干预

使用 interruptOn 要求在代理运行敏感工具之前,在 IDE 中获得用户批准。
const server = new DeepAgentsServer({
  agents: {
    name: "careful-agent",
    interruptOn: {
      execute: { allowedDecisions: ["approve", "edit", "reject"] },
      write_file: true,
    },
  },
});
当代理调用受保护的工具时,IDE 会提示用户允许或拒绝该操作,并提供在当前会话中记住该决策的选项。

自定义工具

import { DeepAgentsServer } from "deepagents-acp";
import { tool } from "@langchain/core/tools";
import { z } from "zod";

const searchTool = tool(
  async ({ query }) => {
    return `Results for: ${query}`;
  },
  {
    name: "search",
    description: "Search the codebase",
    schema: z.object({ query: z.string() }),
  },
);

const server = new DeepAgentsServer({
  agents: {
    name: "search-agent",
    tools: [searchTool],
  },
});

await server.start();

自定义后端

import { DeepAgentsServer } from "deepagents-acp";
import { CompositeBackend, FilesystemBackend, StateBackend } from "deepagents";

const server = new DeepAgentsServer({
  agents: {
    name: "custom-agent",
    backend: new CompositeBackend({
      routes: [
        {
          prefix: "/workspace",
          backend: new FilesystemBackend({ rootDir: "./workspace" }),
        },
        { prefix: "/", backend: new StateBackend() },
      ],
    }),
  },
});

await server.start();

技能与记忆

import { startServer } from "deepagents-acp";

await startServer({
  agents: {
    name: "project-agent",
    description: "Agent with project-specific knowledge",
    skills: ["./skills/", "~/.deepagents/skills/"],
    memory: ["./.deepagents/AGENTS.md"],
  },
  workspaceRoot: process.cwd(),
});
有关协议详细信息和编辑器支持,请参阅上游 ACP 文档。

© . This site is unofficial and not affiliated with LangChain, Inc.