导读:本文详细介绍如何在 OpenClaw 中配置 ACP 协议,通过 Qwen Code CLI 开发 C# 项目,从环境配置到项目实战,一站式掌握 AI 辅助编程全流程。


🤖 什么是 ACP 协议

定义

ACP 协议(Agent Communication Protocol,代理通信协议)是 OpenClaw 中用于 AI 助手之间通信和协作的标准协议。它允许一个 AI 助手(如当前对话中的OpenClaw)调用另一个专门的 AI 助手(如 Qwen Code、Claude Code 等)来完成特定任务。

核心概念

概念

说明

Agent

AI 代理,如 Qwen Code(代码开发)、Claude Code(代码审查)、Codex(代码生成)

Runtime

运行环境,runtime="acp" 表示使用 ACP 协议

Session

会话,每次 ACP 调用会创建一个独立的会话

Task

任务描述,告诉 Agent 要做什么

工作原理

用户 → OpenClaw → ACP 协议 → Qwen Code → 执行任务 → 返回结果 → OpenClaw → 用户
  1. 用户向OpenClaw发出请求

  2. OpenClaw通过 sessions_spawn 调用 ACP 协议

  3. ACP 协议启动指定的 Agent(如 Qwen Code)

  4. Agent 执行任务(如编写代码、审查代码)

  5. 执行结果返回给 OpenClaw

  6. OpenClaw向用户反馈

使用场景

✅ 适合使用 ACP 协议的场景:

  • 需要专门 AI 能力(如代码开发、代码审查)

  • 任务需要较长时间执行

  • 需要在独立环境中运行(隔离的工作目录)

  • 需要持久会话(多轮对话)

❌ 不适合的场景:

  • 简单问题(直接问OpenClaw即可)

  • 需要即时响应的任务

  • 不需要专门 AI 能力的任务

与其他调用方式的区别

方式

说明

适用场景

ACP 协议

调用专门的 AI Agent

代码开发、复杂任务

直接对话

与当前OpenClaw对话

简单问题、咨询

后台进程

执行 shell 命令

系统操作、脚本执行

子代理

spawn 子任务

并行任务、独立会话

优势

  1. 专业化 - 每个 Agent 专注于特定领域(如 Qwen Code 专注代码开发)

  2. 隔离性 - 每个任务在独立会话中运行,互不干扰

  3. 可追踪 - 可以查看任务执行日志和进度

  4. 灵活性 - 支持一次性任务和持久会话两种模式


🛠️ 前置准备

1. 安装必要工具

# 安装 Qwen Code CLI
npm install -g @qwen-code/qwen-code@latest

# 验证安装
qwen --version

# 安装 .NET SDK(C# 开发环境)
# macOS
brew install --cask dotnet-sdk

# 验证 .NET 安装
dotnet --version

2. Qwen Code 认证

方式 A:OAuth 登录(推荐)

qwen auth login

这会打开浏览器进行 OAuth 认证,适合个人开发者。

方式 B:API Key

# 获取 API Key:https://dashscope.console.aliyun.com/
export DASHSCOPE_API_KEY="sk-xxx"

# 添加到 ~/.zshrc 永久生效
echo 'export DASHSCOPE_API_KEY="sk-xxx"' >> ~/.zshrc
source ~/.zshrc

🔧 配置 ACP 协议

1. 创建 ACP 配置文件

编辑或创建 ~/.openclaw/config/gateway.json

{
  "acp":{
    "defaultAgent":"qwen-code",
    "allowedAgents":[
      "qwen-code",
      "main",
      "claude-code",
      "codex"
    ]
}
}

配置说明:

  • defaultAgent: 默认使用的 AI Agent

  • allowedAgents: 允许使用的 Agent 列表

2. 验证配置

# 检查配置文件
cat ~/.openclaw/config/gateway.json

# 重启 OpenClaw Gateway(如需要)
openclaw gateway restart

✅ 验证 Qwen Code 连接

1. 测试基础连接

qwen "测试 Qwen Code 连接,只需回复'连接成功'即可"

预期输出:

连接成功

2. 检查认证状态

qwen config show

检查项:

  • ✅ 认证状态正常

  • ✅ Coding Plan 已激活

  • ✅ 模型可用


🚀 实战:通过 ACP 协议让 Qwen Code 创建 C# Hello World

实际案例演示

场景:用户想要创建一个 C# Hello World 项目,通过 ACP 协议指挥 Qwen Code 完成。


步骤 1:用户发出指令

用户在飞书对话中输入:

帮我写个 C# 的 hello world

步骤 2:OpenClaw理解意图

OpenClaw分析用户需求:

  • ✅ 需要使用 ACP 协议

  • ✅ 调用 Qwen Code 执行任务

  • ✅ 创建 C# 项目

  • ✅ 实现 Hello World 功能


步骤 3:通过 sessions_spawn 调用 ACP 协议

OpenClaw执行以下命令(后台自动执行,用户无需手动输入):

sessions_spawn runtime="acp" agentId="qwen-code" task="创建一个 C# Hello World 项目,包含完整的代码和项目文件" cwd="/Volumes/SSD/Source/csharp-hello"

参数说明:

  • runtime="acp": 使用 ACP 协议运行时

  • agentId="qwen-code": 指定使用 Qwen Code Agent

  • task="...": 具体任务描述

  • cwd="...": 工作目录


步骤 4:Qwen Code 执行任务

Qwen Code 接收到任务后,自动执行以下操作:

  1. 创建项目目录

    mkdir -p /Volumes/SSD/Source/csharp-hello
  2. 生成代码文件HelloWorld.cs

    using System;
    
    namespaceHelloWorld
    {
        classProgram
        {
            staticvoidMain(string[] args)
            {
                Console.WriteLine("Hello, World!");
                // ... 更多代码
            }
        }
    }
  3. 生成项目文件HelloWorld.csproj

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
      </PropertyGroup>
    </Project>

步骤 5:OpenClaw反馈结果

OpenClaw向用户回复:

✅ 完成!已创建 C# Hello World 项目。

📁 项目位置:/Volumes/SSD/Source/csharp-hello/

📄 创建的文件:
- HelloWorld.cs - 主程序代码
- HelloWorld.csproj - .NET 项目文件

🚀 运行方法:
cd /Volumes/SSD/Source/csharp-hello
dotnet run

步骤 6:用户验证运行

用户执行:

cd /Volumes/SSD/Source/csharp-hello
dotnet run

输出结果:

Hello, World!

=== 格式化输出 ===
Hello, 用户!欢迎使用 C#

=== 带时间戳 ===
[2026-03-14 09:38:44] Hello from C#!

=== 多语言问候 ===
中文:你好,世界!
English: Hello, World!
日本語:こんにちは、世界!
한국어: 안녕하세요, 세계!

[程序执行完成]

关键提示词技巧

✅ 好的提示词:

"帮我写个 C# 的 hello world"
"创建一个 C# 控制台应用,输出 Hello World"
"使用 ACP 协议让 Qwen Code 创建 C# 项目"

❌ 模糊的提示词:

"写个程序"(没说语言和平台)
"做个 hello world"(没说用什么技术栈)

提示词公式:

[动作] + [技术栈] + [具体功能] + [可选:输出位置]

示例:
"创建" + "C#" + "Hello World 项目" + "保存到 /Volumes/SSD/Source/"

🎯 使用 ACP 协议开发项目

方式 1:在对话中直接使用

在 OpenClaw 对话中输入:

使用 ACP 协议让 Qwen Code 帮我创建一个 C# Web API 项目

系统会自动执行:

sessions_spawn runtime="acp" agentId="qwen-code" task="创建一个 C# Web API 项目" cwd="/Volumes/SSD/Source/my-api"

方式 2:手动调用 sessions_spawn

# 创建控制台应用
sessions_spawn runtime="acp" task="创建一个 C# 控制台应用,实现计算器功能" cwd="/Volumes/SSD/Source/calc-app"

# 创建 Web API
sessions_spawn runtime="acp" task="创建 ASP.NET Core Web API,包含用户 CRUD 接口" cwd="/Volumes/SSD/Source/webapi"

# 代码审查
sessions_spawn runtime="acp" task="审查 /Volumes/SSD/Source/my-project 的代码,找出潜在问题"

方式 3:配置定时任务

编辑 ~/.openclaw/cron/jobs.json,添加自动化任务:

{
  "name":"每日代码审查",
"schedule":"0 10 * * 1-5",
"payload":{
    "kind":"agentTurn",
    "message":"使用 ACP 协议运行 Qwen Code 审查 /Volumes/SSD/Source/my-project 的代码"
},
"delivery":{
    "mode":"announce"
}
}

📝 常用任务示例

1. 创建项目

使用 ACP 协议让 Qwen Code 创建:
- React + TypeScript 前端项目
- ASP.NET Core Web API 后端项目
- Blazor Web 应用
- MAUI 跨平台应用

2. 代码开发

使用 ACP 协议让 Qwen Code:
- 实现用户登录功能(JWT 认证)
- 添加数据库上下文和 Entity Framework 配置
- 创建 RESTful API 接口
- 编写单元测试

3. 代码审查

使用 ACP 协议让 Qwen Code:
- 审查代码质量和潜在 bug
- 检查代码规范和最佳实践
- 分析性能瓶颈
- 提供重构建议

4. 重构优化

使用 ACP 协议让 Qwen Code:
- 将同步代码改为异步
- 应用设计模式重构
- 优化数据库查询
- 添加缓存机制

⚠️ 常见问题排查

问题 1:Qwen Code 未找到

错误信息:

qwen: command not found

解决方案:

npm install -g @qwen-code/qwen-code@latest

问题 2:认证失败

错误信息:

Authentication required. Please run: qwen auth login

解决方案:

qwen auth login
# 或设置 API Key
export DASHSCOPE_API_KEY="sk-xxx"

问题 3:ACP 配置未生效

检查步骤:

# 1. 验证配置文件
cat ~/.openclaw/config/gateway.json

# 2. 重启 Gateway
openclaw gateway restart

# 3. 检查日志
openclaw gateway logs

问题 4:dotnet 命令未找到

解决方案:

# macOS
brew install --cask dotnet-sdk

# 验证安装
dotnet --version

问题 5:程序运行时控制台输入错误

错误信息:

System.InvalidOperationException: Cannot read keys when either application does not have a console

解决方案:在代码中添加检查:

if (Console.IsInputRedirected == false)
{
    Console.ReadKey();
}

🎯 最佳实践

1. 明确任务描述

✅ 好:"创建 ASP.NET Core Web API,包含用户 CRUD 操作,使用 EF Core 和 SQL Server"
❌ 差:"做个 API"

2. 指定工作目录

✅ 总是指定 cwd: "/Volumes/SSD/Source/具体项目"
❌ 避免:不指定目录

3. 选择合适模式

# 一次性任务(默认)
runtime="acp" mode="run"

# 持久会话(多轮对话)
runtime="acp" mode="session"

4. 设置合理超时

# 简单任务:300 秒
timeoutSeconds=300

# 复杂项目:1800 秒
timeoutSeconds=1800

📚 相关资源

官方文档

  • Qwen Code 官方文档(https://qwenlm.github.io/qwen-code-docs/zh/)

  • .NET 官方文档(https://docs.microsoft.com/zh-cn/dotnet/)

  • OpenClaw 文档(https://docs.openclaw.ai)

学习资源

  • C# 编程语言指南(https://docs.microsoft.com/zh-cn/dotnet/csharp/)

  • ASP.NET Core 教程(https://docs.microsoft.com/zh-cn/aspnet/core/)

  • .NET 下载(https://dotnet.microsoft.com/download)


📊 总结

通过本文,你学会了:

  1. ✅ 配置 ACP 协议和 Qwen Code

  2. ✅ 验证环境和认证状态

  3. ✅ 创建 C# Hello World 项目

  4. ✅ 使用 ACP 协议开发项目

  5. ✅ 排查常见问题

下一步: 尝试使用 ACP 协议让 Qwen Code 帮你开发一个完整的 C# 项目!

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐