291 lines
12 KiB
Markdown
291 lines
12 KiB
Markdown
# 1
|
||
|
||
我在机器上还安装了Claude Code,那么:
|
||
|
||
你是否能调用起Cluade
|
||
Cluade下面我已经安装了一些用户级别的技能,有些是你也能用的,那么你用的话需要重新安装到Skills里么
|
||
你和Cluade的区别,我在使用时如何能将你和Claude Code结合起来发挥最大的优势
|
||
只需要回答问题,不需要做任何实际执行工作,比如增加技能这些。
|
||
|
||
---
|
||
|
||
好,三个问题分别回答:
|
||
|
||
---
|
||
|
||
**1. 我能否调用 Claude Code?**
|
||
|
||
可以。我内置了 `coding-agent` skill,直接通过 `bash` 命令调用:
|
||
```bash
|
||
claude --permission-mode bypassPermissions --print '任务描述'
|
||
```
|
||
Claude Code 的 CLI(`claude`)已安装,我可以在任何项目目录里唤起它执行任务。
|
||
|
||
---
|
||
|
||
**2. Claude Code 上安装的用户级技能,我需要重新安装到 Skills 里吗?**
|
||
|
||
**需要重新安装,但不等于是同一个东西。** 两者的 skill 系统是独立:
|
||
|
||
- **Claude Code** 的技能放在 `~/.claude/` 目录下(用户级配置)
|
||
- **OpenClaw** 的技能放在 `skills/` 目录下
|
||
|
||
我无法直接调用 Claude Code 的用户级技能。如果那些技能对应的功能你也想让我用,需要把相关文件或配置迁移到 OpenClaw 的 skills 目录里,具体看它的实现方式。
|
||
|
||
---
|
||
|
||
**3. 我和 Claude Code 的区别,以及如何结合使用?**
|
||
|
||
| | **我(OpenClaw Agent)** | **Claude Code** |
|
||
|---|---|---|
|
||
| **定位** | 通用助手 + 任务编排 | 专业编程 agent |
|
||
| **启动方式** | 对话式,随时响应 | 命令行任务执行 |
|
||
| **擅长** | 理解意图、规划、多工具协调 | 代码生成、重构、调试 |
|
||
| **代码能力** | 可以读、写、修改代码 | 更强,尤其在自主完成完整任务 |
|
||
| **上下文** | 跨工具、跨会话 | 单项目内深度迭代 |
|
||
|
||
**结合使用的最佳模式:**
|
||
|
||
- **我** 做决策者:理解你的需求,规划方案,判断用什么工具
|
||
- **Claude Code** 做执行者:处理具体的代码编写、重构、PR review 等开发任务
|
||
|
||
**典型流程:**
|
||
> 你跟我说"帮我做一个用户登录功能" → 我分析方案 → 派 Claude Code 去实现具体代码 → 完成后我来做整合测试或部署
|
||
|
||
也就是说,我在前面统筹,你不需要手动切换工具;Claude Code 在后面干活,你也不需要自己写代码。这样分工最省力。
|
||
|
||
# 2
|
||
|
||
Claude Code可以作为专业开发Agent,开发任务交给它,你来传递。那么它的一些确认工作的信息你是否可以传递上来。
|
||
Claude Code的工作路径`D:\ClaudeCode`,安装在`C:\Users\admin\.claude`
|
||
我还使用了飞书,并且已经打通OpenClaw。如果确认信息能传递上来,我在飞书中安排任务,收到信息后再去处理,不用盯着屏幕看了。
|
||
|
||
我们先讨论工作方式,不用进入执行。
|
||
你回答后,我可以根据情况进入飞书做一个简单测试。
|
||
|
||
完全可以。你的架构设计是合理的:
|
||
|
||
```
|
||
飞书 → OpenClaw(我)→ Claude Code → 结果/确认 → 飞书 → 你
|
||
```
|
||
|
||
---
|
||
|
||
**确认信息能否传递上来?**
|
||
|
||
能。Claude Code 运行在 PTY(伪终端)里,它的输出(包括 "Proceed? Y/N" 这类确认提示)我都能捕获到。通过 OpenClaw 的飞书 channel,我能把这些信息转发到飞书。
|
||
|
||
你回复飞书消息后,我再把输入传回给 Claude Code 的 stdin,让它继续执行。
|
||
|
||
---
|
||
|
||
**工作流程大致是这样:**
|
||
|
||
1. 你在**飞书**发任务给我
|
||
2. OpenClaw 路由到主 session,我接收并理解任务
|
||
3. 我唤起 Claude Code 在 `D:\ClaudeCode` 工作
|
||
4. Claude Code 执行中 → 输出/确认提示 → 我转发到**飞书**
|
||
5. 你在**飞书**回复确认或意见
|
||
6. 我通过 PTY stdin 把你的回复传给 Claude Code
|
||
7. 完成后我把最终结果发到**飞书**
|
||
|
||
---
|
||
|
||
**一个关键限制需要你知道:**
|
||
|
||
Claude Code 的确认提示本质上是写到 stdout 的文本。我转发给你后,你需要**精确回复**(比如 "y" 或 "n"),我来负责把它送到 Claude Code 的输入流。如果回复不准确或超时,Claude Code 可能会挂起等待。
|
||
|
||
---
|
||
|
||
**飞书那边的限制:**
|
||
|
||
飞书不支持原生斜杠命令菜单(`/reset` `/new` 这类),但普通文字命令可以用。另外注意飞书发消息有频率限制,大段输出我会分块发送。
|
||
|
||
---
|
||
|
||
准备工作已经就绪:飞书已接通、Claude Code 已安装、coding-agent skill 也有了。现在可以做一个小测试——你在飞书给 bot 发一条消息,看能不能传到我这边来。要试试吗?
|
||
|
||
# 3
|
||
|
||
## 说明
|
||
|
||
我们接下来做一个测试,按照之前的我们讨论的工作差异和流程(你的输出):
|
||
|
||
```md
|
||
|
||
我和 Claude Code 的区别,以及如何结合使用?**
|
||
|
||
| | **我(OpenClaw Agent)** | **Claude Code** |
|
||
|---|---|---|
|
||
| **定位** | 通用助手 + 任务编排 | 专业编程 agent |
|
||
| **启动方式** | 对话式,随时响应 | 命令行任务执行 |
|
||
| **擅长** | 理解意图、规划、多工具协调 | 代码生成、重构、调试 |
|
||
| **代码能力** | 可以读、写、修改代码 | 更强,尤其在自主完成完整任务 |
|
||
| **上下文** | 跨工具、跨会话 | 单项目内深度迭代 |
|
||
|
||
**结合使用的最佳模式:**
|
||
|
||
- **我** 做决策者:理解你的需求,规划方案,判断用什么工具
|
||
- **Claude Code** 做执行者:处理具体的代码编写、重构、PR review 等开发任务
|
||
|
||
|
||
**工作流程大致是这样:**
|
||
|
||
1. 你在**飞书**发任务给我
|
||
2. OpenClaw 路由到主 session,我接收并理解任务
|
||
3. 我唤起 Claude Code 在 `D:\ClaudeCode` 工作
|
||
4. Claude Code 执行中 → 输出/确认提示 → 我转发到**飞书**
|
||
5. 你在**飞书**回复确认或意见
|
||
6. 我通过 PTY stdin 把你的回复传给 Claude Code
|
||
7. 完成后我把最终结果发到**飞书**
|
||
```
|
||
|
||
## 测试任务
|
||
|
||
是做一个**在线抠图小工具**,可以一键抠图、变高清、缩图等。
|
||
|
||
```md
|
||
**提示词:**
|
||
|
||
在 `D:\ClaudeCode` 工作路径下创建一个文件夹叫 `picedit`,在这个文件夹里我要开发一个图片处理网站,包含前端和后端。
|
||
|
||
1. 前端使用 React (Vite), Tailwind CSS, 和 lucide-react图标库。需要实现响应式布局,包含文件上传区域、功能选择菜单(抠图、高清化、缩图)、参数设置和处理结果预览/下载。
|
||
2.后端使用 FastAPI (Python)。
|
||
3.抠图功能:要求下载BiRefNet-general模型,本地运行。
|
||
开启plan模式
|
||
```
|
||
|
||
## 说明
|
||
|
||
**提示词**,如果是我使用Claude Code,会直接发给它的;
|
||
现在若通过你中转,你看你做哪些,还是直接转发启用Claude Code。
|
||
|
||
明白了。我来梳理一下分工:
|
||
|
||
**我负责的:** 理解需求、规划方案、协调流程、最终确认结果
|
||
**Claude Code 负责的:** 具体的代码编写(前端 React + 后端 FastAPI + BiRefNet 抠图模型)
|
||
|
||
---
|
||
|
||
测试任务的关键点:
|
||
- 工作目录:`D:\ClaudeCode\picedit`
|
||
- 前端:React (Vite) + Tailwind CSS + lucide-react
|
||
- 后端:FastAPI
|
||
- 核心功能:抠图(BiRefNet-general 模型本地运行)、高清化、缩图
|
||
|
||
---
|
||
|
||
**我现在要做什么:**
|
||
|
||
1. **启用 Plan 模式**(你提到的),让 Claude Code 先规划再执行
|
||
2. 创建文件夹 `D:\ClaudeCode\picedit`
|
||
3. 启动 Claude Code 在该目录下干活
|
||
|
||
要我现在开始吗?确认后我就在后台唤起 Claude Code。
|
||
|
||
# 4
|
||
|
||
现在开始
|
||
|
||
Claude Code 的 Plan 方案已输出,内容如下:
|
||
|
||
---
|
||
|
||
## 📋 技术架构
|
||
|
||
**整体流程:**
|
||
```
|
||
用户上传图片 → 前端(Next.js) → API Gateway → AI模型服务 → 存储服务 → 结果返回预览/下载
|
||
```
|
||
|
||
**技术栈:**
|
||
- 前端:Next.js (App Router) + Tailwind CSS + lucide-react + Fabric.js 画布
|
||
- 后端:FastAPI (Python)
|
||
- 背景去除:RMBG-1.4 模型(而非用户指定的 BiRefNet-general)
|
||
- 图像增强:Real-ESRGAN(高清化)+ LAIGNI-2
|
||
- 缩图:智能缩放算法
|
||
|
||
**目录结构:**
|
||
```
|
||
picedit/
|
||
├── frontend/ # Next.js 前端
|
||
│ ├── app/ # App Router 页面
|
||
│ ├── components/ # 组件
|
||
│ ├── hooks/ # 自定义 Hooks
|
||
│ └── lib/ # 工具函数
|
||
├── backend/ # FastAPI 后端
|
||
│ ├── api/ # API 路由
|
||
│ ├── models/ # AI 模型调用
|
||
│ └── services/ # 业务逻辑
|
||
└── storage/ # 临时存储
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ 需要确认
|
||
|
||
1. **模型选择**:Claude Code 建议用 RMBG-1.4,而不是你指定的 BiRefNet-general。两者效果可能不同。是否坚持用 BiRefNet-general?
|
||
|
||
2. **前端框架**:Claude Code 建议用 Next.js 而不是纯 React (Vite)。Next.js 更适合需要 SSR 和路由管理的项目。
|
||
|
||
请确认是否接受这个方案,或者需要调整后我再通知 Claude Code 开始执行。
|
||
|
||
# 5
|
||
|
||
由于我们的主要工作是测试与Claude Code的协作,以开发这个小工具为测试。
|
||
根据前面的消息,你首先需要解决的是`Claude Code 每次启动似乎都是新会话,不维持上下文`
|
||
因为与Cluade Code协作不可能每次都从头开始,你需要先解决维持上下文这个问题。
|
||
|
||
需要你搜索看看,怎样解决这个问题。你测试上下文这个没问题了,才能进入后续的测试。
|
||
|
||
**✅ 问题找到了!**
|
||
|
||
Claude Code 维持上下文的机制:**基于 Git 历史**
|
||
|
||
- 只要文件 **commit 到 git**,新会话就能通过读取 git history 恢复上下文
|
||
- 同一会话内可以直接读文件
|
||
- 跨会话必须通过 git commit 才能传递上下文
|
||
|
||
**测试结果:**
|
||
- Session 1:创建 `session_test.txt`,commit
|
||
- Session 2:读取 git history,准确回答了项目现状和技术栈
|
||
|
||
---
|
||
|
||
## 📝 正确的协作流程
|
||
|
||
```
|
||
1. 我发任务给 Claude Code
|
||
2. Claude Code 执行 → 我及时 git commit(关键!)
|
||
3. 会话结束后,新会话通过 git history 恢复上下文
|
||
4. 循环往复
|
||
```
|
||
|
||
**现在可以继续测试了。** 要不要我基于这个发现,重新给 Claude Code 发任务,让它基于已有上下文开始真正写代码?
|
||
|
||
# 6
|
||
|
||
那么这个正确的写作流程是否可以留存下来,以便将来再次合作时可以复用?
|
||
或者等我们这次协作完成后,再提炼也可以。
|
||
|
||
之前这部分需要确认的:
|
||
|
||
1. **模型选择**:Claude Code 建议用 RMBG-1.4,而不是你指定的 BiRefNet-general。两者效果可能不同。是否坚持用 BiRefNet-general?
|
||
2. **前端框架**:Claude Code 建议用 Next.js 而不是纯 React (Vite)。Next.js 更适合需要 SSR 和路由管理的项目。
|
||
|
||
我对这些技术不太了解,它为什么会这样选择,你应该给我一个建议。
|
||
这样的配合方式,将来也需要保留下来。
|
||
|
||
|
||
|
||
我传了一张照片,点击处理后没有反应了。
|
||
|
||
现在有两个问题,
|
||
1. 前端界面相当不友好,需要优化。应该是两个框,上面的框用户上传原图,选择处理方式,下面的框呈现最终结果,可以下载。
|
||
2. 我放了一张照片在`C:\Users\admin\Pictures\人物形象.jpg`,可以作为测试用的原图,单独测试后台程序是否执行正确,可以将测试结果放到`D:\ClaudeCode\picedit`建一个`test-results`文件夹里。
|
||
|
||
我们这次的测试任务完成,完整的调用Claude Code开发出来了一个小系统工具,中间有环境准备、测试过程等等。
|
||
尽管准备工作有些“粗糙”,比如只想着用不同的模型而忽略了硬件环境,直接安装Python而不是考虑使用Conda环境,但是本次任务就是试验调用Claude Code,已经圆满结束。
|
||
|
||
需要对这个做一个总结,包括“谋定后动”——先想清楚再做,向我征询意见时需要有补充说明,以便后续还能使用这样的方式来配合。
|