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

qwenpaw 接入 ACP 协议后,AI 编程新玩法

qwenpaw 接入 ACP 协议后,从一个聊天助手变成了本地 AI 基础设施,支持 OpenCode 连接、多 Agent 协作、跨工具链整合等 5 种新玩法

2026-04-24

qwenpawACPAI编程Agent本地AI

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 Serverqwenpaw 是服务端外部客户端(OpenCode、Zed、Cursor 等)通过 ACP 协议连接 qwenpaw
ACP Clientqwenpaw 是客户端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 帮我:

  1. 读取 MEMORY.md 中的项目上下文
  2. 搜索历史会话中的技术决策
  3. 调用 foss3 技能检查对象存储配置
  4. 生成代码并提交到 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 CodeAnthropic 编程高级推理、长上下文
CodexOpenAI 编程通用代码生成

效果

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_sessionpromptclose_session
  • 流式更新通过 session_update 事件推送

8. 我的思考

ACP 的价值

  1. 标准化:统一了 AI 工具的通信协议,不再需要为每个工具写适配器
  2. 可组合:不同工具可以像乐高一样拼装
  3. 可扩展:新工具只需实现 ACP 协议即可接入生态

qwenpaw 的定位变化

之前之后
聊天机器人AI 基础设施
被动响应主动调度
单一模型多模型编排
独立工作生态节点

未来展望

  • 更多编辑器支持:Zed、VS Code、Neovim 等
  • 更多 AI 工具接入:Cursor、Windsurf、Continue 等
  • 云端协同:ACP over HTTP/WebSocket,实现远程协作
  • 企业级场景:内部 AI 开发平台的核心协议

总结

qwenpaw 接入 ACP 后,从一个好用的 AI 助手,变成了一个可扩展的 AI 编排平台

它不再是"回答问题的聊天机器人",而是:

  • AI 工具的调度中心
  • 编程任务的编排引擎
  • 本地 AI 生态的连接器

这种变化带来的可玩性,远超我的预期。

推荐尝试:

  1. 安装 OpenCode,连接 qwenpaw
  2. 体验 ACP 流式交互
  3. 尝试多 Agent 协作编程
  4. 探索更多 ACP 客户端

参考链接


加加笔记 | AI 应用开发者 | 公众号主理人 关注我,一起探索 AI 的更多可能性 🚀