OpenClaw 使用 ACP 协议指挥 Qwen Code 开发 C# 项目完整教程
它允许一个 AI 助手(如当前对话中的OpenClaw)调用另一个专门的 AI 助手(如 Qwen Code、Claude Code 等)来完成特定任务。ASP.NET Core 教程(https://docs.microsoft.com/zh-cn/aspnet/core/)Qwen Code 官方文档(https://qwenlm.github.io/qwen-code-docs/zh/)AI
导读:本文详细介绍如何在 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 |
运行环境, |
| Session |
会话,每次 ACP 调用会创建一个独立的会话 |
| Task |
任务描述,告诉 Agent 要做什么 |
工作原理
用户 → OpenClaw → ACP 协议 → Qwen Code → 执行任务 → 返回结果 → OpenClaw → 用户
-
用户向OpenClaw发出请求
-
OpenClaw通过
sessions_spawn调用 ACP 协议 -
ACP 协议启动指定的 Agent(如 Qwen Code)
-
Agent 执行任务(如编写代码、审查代码)
-
执行结果返回给 OpenClaw
-
OpenClaw向用户反馈
使用场景
✅ 适合使用 ACP 协议的场景:
-
需要专门 AI 能力(如代码开发、代码审查)
-
任务需要较长时间执行
-
需要在独立环境中运行(隔离的工作目录)
-
需要持久会话(多轮对话)
❌ 不适合的场景:
-
简单问题(直接问OpenClaw即可)
-
需要即时响应的任务
-
不需要专门 AI 能力的任务
与其他调用方式的区别
|
方式 |
说明 |
适用场景 |
|---|---|---|
| ACP 协议 |
调用专门的 AI Agent |
代码开发、复杂任务 |
| 直接对话 |
与当前OpenClaw对话 |
简单问题、咨询 |
| 后台进程 |
执行 shell 命令 |
系统操作、脚本执行 |
| 子代理 |
spawn 子任务 |
并行任务、独立会话 |
优势
-
专业化 - 每个 Agent 专注于特定领域(如 Qwen Code 专注代码开发)
-
隔离性 - 每个任务在独立会话中运行,互不干扰
-
可追踪 - 可以查看任务执行日志和进度
-
灵活性 - 支持一次性任务和持久会话两种模式
🛠️ 前置准备
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 接收到任务后,自动执行以下操作:
-
创建项目目录
mkdir -p /Volumes/SSD/Source/csharp-hello -
生成代码文件
HelloWorld.csusing System; namespaceHelloWorld { classProgram { staticvoidMain(string[] args) { Console.WriteLine("Hello, World!"); // ... 更多代码 } } } -
生成项目文件
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)
📊 总结
通过本文,你学会了:
-
✅ 配置 ACP 协议和 Qwen Code
-
✅ 验证环境和认证状态
-
✅ 创建 C# Hello World 项目
-
✅ 使用 ACP 协议开发项目
-
✅ 排查常见问题
下一步: 尝试使用 ACP 协议让 Qwen Code 帮你开发一个完整的 C# 项目!
更多推荐



所有评论(0)