e2244a3cae
- src/ 页面与组件、public/ 静态资源 - 工程配置:vite/tsconfig/package 依赖
110 lines
6.3 KiB
Markdown
110 lines
6.3 KiB
Markdown
# Coding 模式(Beta)
|
||
|
||
> **Beta 功能**:Coding 模式是 QwenPaw 为编码场景打造的 IDE 化工作台,把 Agent 从「聊天助手」升级为「能直接读你代码、改你代码的协作者」。目前仍在持续迭代,欢迎在 [GitHub](https://github.com/agentscope-ai/QwenPaw/issues) 反馈。
|
||
|
||
QwenPaw 的普通聊天模式适合「问答 + 临时任务」,但当你想让 Agent **持续在某个项目里干活**——读源码、改文件、跑测试、查 git——聊天界面就不够用了。Coding 模式提供了一个轻量 IDE 视图,把项目文件、编辑器、Diff 预览和聊天放在一个布局里,同时给 Agent 装上两个专为代码理解优化的工具:`lsp`(精确定位定义/引用)和 `ast_search`(结构化语法查找)。
|
||
|
||
---
|
||
|
||
## 何时用 Coding 模式
|
||
|
||
| 场景 | 建议模式 |
|
||
| ---------------------------------------- | --------------- |
|
||
| 一次性问答 / 临时脚本 / 闲聊 | 普通 Chat 模式 |
|
||
| 在指定项目里读代码、改文件、修 bug、重构 | **Coding 模式** |
|
||
| 跨项目的探索 / 不绑定单一仓库的任务 | 普通 Chat 模式 |
|
||
|
||
> **一句话区分**:要让 Agent 把某个目录当「工作车间」连续干活,就开 Coding 模式;只是临时问一句,就用普通模式。
|
||
|
||
---
|
||
|
||
## 快速上手
|
||
|
||
### 1. 切换到 Coding 模式
|
||
|
||
在聊天界面顶部找到 `Code` / `Chat` 切换按钮,点击 `Code` 即可进入。
|
||
|
||
### 2. 选择项目
|
||
|
||
首次进入会弹出项目选择窗口,有两类方式:
|
||
|
||
- **直接打开已有目录** — 通过文件浏览器选择本机上已有的项目目录,Agent 直接在该目录下工作,不会复制任何文件。适合想让 Agent 直接操作现有项目的场景。
|
||
- **导入为副本** — **克隆远程仓库**、**复制本地文件夹**、**上传 zip** 或**新建空项目**,都会在 QwenPaw 工作区的 `coding_projects/<项目名>/` 下生成一份**副本**,你的原始目录不会被改动。
|
||
|
||
无论哪种方式,Agent 接下来读写的都是所选目录,它就是后文说的「项目目录」。
|
||
|
||

|
||
|
||
> **直接打开 vs 导入副本?** 如果你的项目 IDE 已打开、有未提交改动或跑着 CI,建议使用副本模式以避免 Agent 误操作影响工作树。副本仍保留 `.git`,可以正常 commit / push。如果你希望 Agent 直接在原目录工作(例如快速修改或审查代码),选择「打开目录」即可。
|
||
|
||
**终端 TUI 快捷方式:** 在项目目录下运行 `qwenpaw .`,或用
|
||
`qwenpaw tui /path/to/repo` 显式指定目录。这样只会为本次 TUI 会话启用
|
||
Coding 模式的提示和工具行为;不会修改 `agent.json`,也不会改变控制台里保存的项目。
|
||
|
||
### 3. 开始干活
|
||
|
||
进入 IDE 视图后,左侧是文件树,中间是带 Tab 的编辑器和 Diff 预览,右侧是聊天面板。直接像平时一样和 Agent 对话即可,例如:
|
||
|
||
- 「读一下 `src/auth/login.py`,告诉我 `verify_password` 是怎么实现的」
|
||
- 「在 `tests/` 下加一个 `test_login_rate_limit.py`,覆盖 5 次失败后锁定 10 分钟的场景」
|
||
- 「这个分支相比 main 改了哪些文件?帮我写个 PR description」
|
||
|
||

|
||
|
||
---
|
||
|
||
## Coding 模式做了什么
|
||
|
||
普通模式下 Agent 看到的是「一个工作空间」,没有特别的项目概念。打开 Coding 模式后,QwenPaw 会自动做这些事:
|
||
|
||
### 1. 注入编码专属的系统提示
|
||
|
||
告诉 Agent:
|
||
|
||
- **当前项目目录是 XXX,所有文件操作要用项目根目录下的绝对路径**
|
||
- 跑 shell 命令要显式指定 `cwd=` 到项目目录,否则会落在 Agent 工作区
|
||
- 引用代码时用 `path/to/file.py:42` 这种格式(IDE 可点击跳转)
|
||
- 非琐碎任务先创建 `{TASK}_TODO.md` 维护清单,做一步勾一步
|
||
|
||
### 2. 自动注册两个代码理解工具
|
||
|
||
| 工具 | 用途 | 何时自动启用 |
|
||
| ------------ | ------------------------------------------------------------------------- | --------------------------------------------------------- |
|
||
| `lsp` | 精准查询符号定义、引用、跳转——回答「X 在哪定义?谁调用了 Y?」 | 项目里至少检测到一种 LSP 服务器(Python/TS 默认随包安装) |
|
||
| `ast_search` | 基于语法树的结构化查询——回答「所有接收 `Request` 返回 `Response` 的函数」 | 系统装了 `ast-grep` CLI(默认随包安装) |
|
||
|
||
两个工具都是**只读**的,不会修改任何文件。Agent 优先用它们而不是 `grep`,能避免误判和漏判。
|
||
|
||
### 3. 区分「项目目录」和「工作区目录」
|
||
|
||
- **项目目录**:你选的那个仓库,Agent 干活的主战场
|
||
- **工作区目录**:QwenPaw 内部存配置、会话历史、记忆等的隐藏目录,**Agent 默认不该碰**
|
||
|
||
Coding 模式的系统提示会反复强调这个区分,避免 Agent 在不该出现的地方 `ls` 或写文件。
|
||
|
||
---
|
||
|
||
## 退出 Coding 模式
|
||
|
||
点击同一个切换按钮,从 `Chat` 切回普通模式。Agent 的项目目录绑定和系统提示注入会立即解除,但你的项目文件、Git 状态等都保持不变。
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
**Q:切换 Coding 模式会影响我已经存在的记忆 / Skills 吗?**
|
||
|
||
不会。Coding 模式只改 Agent 的系统提示和工具集,不动记忆、Skills、Persona 这些独立功能。
|
||
|
||
**Q:可以同时绑定多个项目吗?**
|
||
|
||
每个 Agent 同一时间只绑定一个项目目录。需要切换项目时,重新打开项目选择窗口选另一个即可。
|
||
|
||
**Q:`lsp` / `ast_search` 没出现在工具列表里?**
|
||
|
||
打开新对话再试。这两个工具是按项目和环境动态注册的,旧会话需要重启。如果项目里没装对应语言的 LSP 服务器(如纯 Go 项目但只装了 pylsp),`lsp` 会自动跳过对应语言。
|
||
|
||
**Q:Coding 模式和 Skills / Plan / Cron 这些可以一起用吗?**
|
||
|
||
可以。Coding 模式只是一个 UI 布局 + 工具增强层,和其他功能正交。
|