qwenpaw 接入 ACP 后,我发现了 AI 编程的 5 种新玩法

qwenpaw 接入 ACP 协议后,从一个聊天助手变成了本地 AI 基础设施,支持 OpenCode 连接、多 Agent 协作、跨工具链整合等 5 种新玩法
2026-04-24
qwenpaw 接入 ACP 后,我发现了 AI 编程的 5 种新玩法
从"聊天机器人"到"本地 AI 基础设施",qwenpaw + ACP 正在改变我们使用 AI 的方式
前言
最近给 qwenpaw 接入了 ACP(Agent Client Protocol) 支持。
起初我以为这只是个"让外部工具能调用 qwenpaw"的功能。但真正深入使用后,我发现它彻底打通了 AI 编程的场景边界。
以前 qwenpaw 是个"聊天助手",现在它变成了本地 AI 基础设施。
今天复盘一下,接入 ACP 后,我发现了哪些有意思的玩法。
1. 核心概念:ACP 是什么?
在说玩法之前,先简单理解一下 ACP。
ACP 是 Zed 团队提出的 Agent Client Protocol,一套标准化的 JSON-RPC 协议,用于让编辑器、IDE 与 AI Agent 通信。
qwenpaw 接入 ACP 后,支持了两种互补模式:
| 模式 | 角色 | 说明 |
|---|---|---|
| ACP Server | qwenpaw 是服务端 | 外部客户端(OpenCode、Zed、Cursor 等)通过 ACP 协议连接 qwenpaw |
| ACP Client | qwenpaw 是客户端 | qwenpaw 作为调度中心,连接外部 ACP Runner(如 opencode、qwen_code) |
2. 玩法一:OpenCode 连接 qwenpaw —— 让 AI 拥有记忆与技能
场景
OpenCode 是个优秀的本地 AI 编程客户端,但它本身没有记忆、没有文件操作能力、没有多步任务编排。
接入 ACP 后,OpenCode 可以作为前端,qwenpaw 作为大脑:
# OpenCode 通过 ACP 连接 qwenpaw
opencode -m qwenpaw # 假设已配置 ACP 端点
效果
- OpenCode 负责代码编辑、Diff 展示、实时交互
- qwenpaw 负责记忆读取、技能调用、多步任务执行
- 两者各司其职,体验远超单一工具
我的实践
我在 OpenCode 中让 qwenpaw 帮我:
- 读取
MEMORY.md中的项目上下文 - 搜索历史会话中的技术决策
- 调用
foss3技能检查对象存储配置 - 生成代码并提交到 Git
整个过程在 OpenCode 的 UI 中完成,但背后调用了 qwenpaw 的全部能力。
3. 玩法二:qwenpaw 调度 opencode —— 让 AI 自己写代码
场景
qwenpaw 作为任务调度器,将编程任务委派给 opencode(作为 ACP Runner):
# qwenpaw 内部逻辑(伪代码)
def code_task(task: str):
runner = ACPRunner("opencode")
result = runner.run(task)
return result
效果
- qwenpaw 负责理解需求、拆解任务、结果校验
- opencode 负责编码、调试、文件修改
- 形成**"大脑 + 手脚"**的协作模式
我的实践
用户:帮我把 FOSS3 的 storage 模块重构一下
qwenpaw:
1. 分析代码结构
2. 拆解为 3 个子任务
3. 分别委托 opencode 执行
4. 合并结果,运行测试
5. 提交 PR
这种"AI 调度 AI"的模式,是目前最接近自动化的实现方式。
4. 玩法三:多 Agent 协作编程
场景
结合 qwenpaw 的多智能体协作能力,可以实现复杂的编程工作流:
用户:实现一个 S3 兼容的对象存储系统
↓
qwenpaw(主 Agent)
├─→ foss3_skill(FOSS3 项目专家)
│ 读取 FOSS3 API 文档,确定接口规范
├─→ code_agent(代码生成)
│ 根据规范生成 Python/Django 代码
├─→ test_agent(测试验证)
│ 编写单元测试,运行验证
└─→ review_agent(代码审查)
检查代码质量,提出改进建议
效果
- 每个 Agent 专注一个领域
- 通过 ACP 协议高效通信
- 最终产出经过验证的、高质量的代码
5. 玩法四:跨工具链整合
场景
ACP 协议让 qwenpaw 可以统一管理多种 AI 工具:
| 工具 | 角色 | ACP 能力 |
|---|---|---|
| opencode | 本地编程 | 代码生成、文件编辑 |
| qwen_code | 阿里编程助手 | 代码补全、解释 |
| Claude Code | Anthropic 编程 | 高级推理、长上下文 |
| Codex | OpenAI 编程 | 通用代码生成 |
效果
qwenpaw 可以根据任务类型自动选择最佳工具:
简单任务 → 本地 opencode(快速、免费)
复杂推理 → Claude Code(强推理能力)
代码补全 → qwen_code(阿里模型)
这就是"AI 的 AI"——qwenpaw 成为 AI 工具的编排层。
6. 玩法五:实时流式交互
场景
ACP 支持流式更新,qwenpaw 可以实时推送中间状态:
session_update:
- agent_thought_chunk: "正在分析代码..."
- tool_call: "读取 foss3-api-docs.md"
- tool_call_update: "读取完成,共 1200 行"
- agent_message_chunk: "发现 3 个需要修改的接口..."
效果
- 用户可以看到AI 的思考过程
- 可以中途干预(取消、修改指令)
- 调试更容易(知道 AI 卡在哪里)
7. 技术细节:我是怎么实现的
1. 启动 qwenpaw 作为 ACP Server
qwenpaw acp --workspace /path/to/workspace
2. 外部客户端连接
# ACP 客户端示例
import json
import subprocess
proc = subprocess.Popen(
["qwenpaw", "acp", "--workspace", WORKSPACE],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
text=True
)
# 初始化握手
resp = rpc("initialize", {
"protocolVersion": 20250326, # 注意:必须是整数
"clientInfo": {"name": "my-client", "version": "1.0"}
})
# 创建会话
resp = rpc("new_session")
session_id = resp["result"]["sessionId"]
# 发送 Prompt
resp = rpc("prompt", {"text": "帮我写个 Django 视图"})
3. 关键发现
protocolVersion必须是整数,不是字符串- 会话生命周期:
new_session→prompt→close_session - 流式更新通过
session_update事件推送
8. 我的思考
ACP 的价值
- 标准化:统一了 AI 工具的通信协议,不再需要为每个工具写适配器
- 可组合:不同工具可以像乐高一样拼装
- 可扩展:新工具只需实现 ACP 协议即可接入生态
qwenpaw 的定位变化
| 之前 | 之后 |
|---|---|
| 聊天机器人 | AI 基础设施 |
| 被动响应 | 主动调度 |
| 单一模型 | 多模型编排 |
| 独立工作 | 生态节点 |
未来展望
- 更多编辑器支持:Zed、VS Code、Neovim 等
- 更多 AI 工具接入:Cursor、Windsurf、Continue 等
- 云端协同:ACP over HTTP/WebSocket,实现远程协作
- 企业级场景:内部 AI 开发平台的核心协议
总结
qwenpaw 接入 ACP 后,从一个好用的 AI 助手,变成了一个可扩展的 AI 编排平台。
它不再是"回答问题的聊天机器人",而是:
- AI 工具的调度中心
- 编程任务的编排引擎
- 本地 AI 生态的连接器
这种变化带来的可玩性,远超我的预期。
推荐尝试:
- 安装 OpenCode,连接 qwenpaw
- 体验 ACP 流式交互
- 尝试多 Agent 协作编程
- 探索更多 ACP 客户端
参考链接
加加笔记 | AI 应用开发者 | 公众号主理人 关注我,一起探索 AI 的更多可能性 🚀