mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-08-19 22:08:05 +00:00
refactor: documents - regroup into principles/guides/case-studies
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Vibe Coding 哲学原理
|
||||
|
||||
> 道生一,一生二,二生三,三生万物。
|
||||
|
||||
---
|
||||
|
||||
**一**:安装一个 AI CLI,获得与 AI 对话的能力
|
||||
|
||||
**二**:AI 能读写一切文件,你不再需要手动编辑
|
||||
|
||||
**三**:AI 能配置一切环境,安装依赖、部署项目
|
||||
|
||||
**万物**:AI 生成代码、文档、测试、脚本——一切皆可生成
|
||||
|
||||
---
|
||||
|
||||
## 心法
|
||||
|
||||
> 我是 AI 的寄生者,没有 AI 我失去一切能力。
|
||||
|
||||
**你**:描述意图、验证结果、做决策
|
||||
|
||||
**AI**:理解意图、执行操作、生成产出
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
→ [04-OpenCode-CLI配置](./04-OpenCode-CLI配置.md) - 获得你的"一"
|
||||
@@ -0,0 +1,113 @@
|
||||
# 网络环境配置
|
||||
|
||||
> Vibe Coding 的前置条件:确保能正常访问 GitHub、Google、Claude 等服务。
|
||||
|
||||
---
|
||||
|
||||
## 方式一:AI 指导配置(推荐)
|
||||
|
||||
复制以下提示词,粘贴到任意 AI 对话框(ChatGPT、Claude、Gemini 网页版等):
|
||||
|
||||
```
|
||||
你是一个耐心的网络环境配置助手。我需要配置网络代理,以便能够访问 GitHub、Google、Claude 等国外服务。
|
||||
|
||||
我的情况:
|
||||
- 操作系统:[请告诉我你用的是 Windows/macOS/Linux/Android]
|
||||
- 我已经有一个代理服务订阅链接(机场订阅)
|
||||
|
||||
请指导我使用 FlClash 客户端配置网络代理:
|
||||
1. 如何下载安装 FlClash(GitHub: https://github.com/chen08209/FlClash/releases)
|
||||
2. 如何导入我的订阅链接
|
||||
3. 如何开启 TUN 模式(虚拟网卡)实现全局代理
|
||||
4. 如何开启系统代理
|
||||
5. 如何验证配置是否成功
|
||||
|
||||
要求:
|
||||
- 每个步骤详细说明,配图描述按钮位置
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始吧,先问我用的是什么操作系统。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 方式二:手动配置
|
||||
|
||||
### 你需要
|
||||
|
||||
1. **网络服务订阅** - 提供节点的服务商
|
||||
2. **FlClash** - 跨平台网络配置客户端
|
||||
|
||||
### 第一步:购买网络服务
|
||||
|
||||
访问服务商:https://xn--9kqz23b19z.com/#/register?code=35BcnKzl
|
||||
|
||||
- 注册账号
|
||||
- 选择套餐(约 6 元/月起)
|
||||
- 付款后在用户面板找到 **订阅链接**,复制备用
|
||||
|
||||
### 第二步:下载 FlClash
|
||||
|
||||
GitHub 下载:https://github.com/chen08209/FlClash/releases
|
||||
|
||||
根据系统选择:
|
||||
- Windows: `FlClash-x.x.x-windows-setup.exe`
|
||||
- macOS: `FlClash-x.x.x-macos.dmg`
|
||||
- Linux: `FlClash-x.x.x-linux-amd64.AppImage`
|
||||
- Android: `FlClash-x.x.x-android.apk`
|
||||
|
||||
### 第三步:导入订阅
|
||||
|
||||
1. 打开 FlClash
|
||||
2. 点击 **配置** → **添加**
|
||||
3. 选择 **URL 导入**
|
||||
4. 粘贴第一步复制的订阅链接
|
||||
5. 点击确认,等待节点加载
|
||||
|
||||
### 第四步:开启代理
|
||||
|
||||
依次设置以下三项:
|
||||
|
||||
| 设置项 | 操作 |
|
||||
|:---|:---|
|
||||
| **虚拟网卡 (TUN)** | 开启 - 实现全局流量代理 |
|
||||
| **系统代理** | 开启 - 让系统应用走代理 |
|
||||
| **代理模式** | 选择 **全局模式** |
|
||||
|
||||
设置完成后,FlClash 主界面显示已连接即可。
|
||||
|
||||
### 验证
|
||||
|
||||
```bash
|
||||
# 测试 Google 连通性
|
||||
curl -I https://www.google.com
|
||||
|
||||
# 测试 GitHub 连通性
|
||||
curl -I https://github.com
|
||||
```
|
||||
|
||||
返回 `HTTP/2 200` 表示配置成功。
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
**Q: 节点连不上?**
|
||||
A: 切换其他节点试试,或检查订阅是否过期。
|
||||
|
||||
**Q: 部分应用不走代理?**
|
||||
A: 确保 TUN 模式(虚拟网卡)已开启。
|
||||
|
||||
**Q: 想让终端也走代理?**
|
||||
A: TUN 模式开启后终端自动走代理;或手动设置:
|
||||
```bash
|
||||
export https_proxy=http://127.0.0.1:7890
|
||||
export http_proxy=http://127.0.0.1:7890
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
网络配置完成后,继续阅读 [02-开发环境搭建](./02-开发环境搭建.md)。
|
||||
@@ -0,0 +1,158 @@
|
||||
# 开发环境搭建提示词
|
||||
|
||||
> 使用方法:复制下方对应你设备的提示词,粘贴到任意 AI 对话框(ChatGPT、Claude、Gemini 网页版等),AI 会一步步指导你完成配置。
|
||||
|
||||
**前置条件**:请先完成 [01-网络环境配置](./01-网络环境配置.md)
|
||||
|
||||
---
|
||||
|
||||
## 🪟 Windows 用户提示词
|
||||
|
||||
### 方案 A:WSL2 + Linux 环境(推荐)
|
||||
|
||||
> 适合:想要完整 Linux 开发体验,兼容性最好
|
||||
|
||||
```
|
||||
你是一个耐心的开发环境配置助手。我是一个完全的新手,使用 Windows 系统,需要你一步一步指导我通过 WSL2 搭建 Linux 开发环境。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 安装 WSL2(Windows Subsystem for Linux)
|
||||
2. 在 WSL2 中安装 Ubuntu
|
||||
3. 配置 Ubuntu 基础环境(更新系统)
|
||||
4. 安装 nvm 和 Node.js
|
||||
5. 安装 Gemini CLI 或其他免费 AI CLI 工具
|
||||
6. 安装基础开发工具(git, python, build-essential, tmux)
|
||||
7. 配置 Git 用户信息
|
||||
8. 安装代码编辑器(VS Code 并配置 WSL 插件)
|
||||
9. 验证所有工具是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的命令,告诉我在哪里运行(PowerShell 还是 Ubuntu 终端)
|
||||
- 用简单易懂的语言解释每个命令的作用
|
||||
- 如果我遇到错误,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
### 方案 B:Windows 原生终端
|
||||
|
||||
> 适合:不想装 WSL,直接在 Windows 上开发
|
||||
|
||||
```
|
||||
你是一个耐心的开发环境配置助手。我是一个完全的新手,使用 Windows 系统,需要你一步一步指导我在 Windows 原生环境下搭建开发环境(不使用 WSL)。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 安装 Windows Terminal(如果还没有)
|
||||
2. 安装 Node.js(通过官网安装包或 winget)
|
||||
3. 安装 Git for Windows
|
||||
4. 安装 Python
|
||||
5. 安装 Gemini CLI 或其他免费 AI CLI 工具
|
||||
6. 配置 Git 用户信息
|
||||
7. 安装代码编辑器(VS Code)
|
||||
8. 验证所有工具是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的命令或操作步骤
|
||||
- 用简单易懂的语言解释每个步骤的作用
|
||||
- 如果我遇到错误,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🍎 macOS 用户提示词
|
||||
|
||||
```
|
||||
你是一个耐心的开发环境配置助手。我是一个完全的新手,使用 macOS 系统,需要你一步一步指导我从零搭建 Vibe Coding 开发环境。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 安装 Homebrew 包管理器
|
||||
2. 使用 Homebrew 安装 Node.js
|
||||
3. 安装 Gemini CLI 或其他免费 AI CLI 工具
|
||||
4. 安装基础开发工具(git, python, tmux)
|
||||
5. 配置 Git 用户信息
|
||||
6. 安装代码编辑器(VS Code 或 Neovim)
|
||||
7. 验证所有工具是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的命令
|
||||
- 用简单易懂的语言解释每个命令的作用
|
||||
- 如果我遇到错误,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐧 Linux 用户提示词
|
||||
|
||||
```
|
||||
你是一个耐心的开发环境配置助手。我是一个完全的新手,使用 Linux 系统(Ubuntu/Debian),需要你一步一步指导我从零搭建 Vibe Coding 开发环境。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 更新系统并安装基础依赖(curl, build-essential)
|
||||
2. 安装 nvm 和 Node.js
|
||||
3. 安装 Gemini CLI 或其他免费 AI CLI 工具
|
||||
4. 安装开发工具(git, python, tmux)
|
||||
5. 配置 Git 用户信息
|
||||
6. 安装代码编辑器(VS Code 或 Neovim)
|
||||
7. 验证所有工具是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的命令
|
||||
- 用简单易懂的语言解释每个命令的作用
|
||||
- 如果我遇到错误,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置完成后
|
||||
|
||||
### CLI 工具配置技巧
|
||||
|
||||
AI CLI 工具默认会询问确认,开启全权限模式可以跳过:
|
||||
|
||||
```bash
|
||||
# Codex - 最强配置
|
||||
codex --enable web_search_request -m gpt-5.3-codex-max -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox
|
||||
|
||||
# Claude Code - 跳过所有确认
|
||||
claude --dangerously-skip-permissions
|
||||
|
||||
# Gemini CLI - YOLO 模式
|
||||
gemini --yolo
|
||||
```
|
||||
|
||||
### 推荐的 Bash 别名配置
|
||||
|
||||
在 `~/.bashrc` 中添加以下配置,一个字母启动 AI:
|
||||
|
||||
```bash
|
||||
# c - Codex (GPT-5.1 最强模式)
|
||||
alias c='codex --enable web_search_request -m gpt-5.3-codex-max -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox'
|
||||
|
||||
# cc - Claude Code (全权限)
|
||||
alias cc='claude --dangerously-skip-permissions'
|
||||
|
||||
# g - Gemini CLI (YOLO 模式)
|
||||
alias g='gemini --yolo'
|
||||
```
|
||||
|
||||
配置后执行 `source ~/.bashrc` 生效。
|
||||
|
||||
---
|
||||
|
||||
环境搭建完成后,继续下一步:
|
||||
|
||||
→ [03-IDE配置](./03-IDE配置.md) - 配置 VS Code 开发环境
|
||||
@@ -0,0 +1,172 @@
|
||||
# IDE 配置提示词
|
||||
|
||||
> 使用方法:复制下方对应你 IDE 的提示词,粘贴到任意 AI 对话框,AI 会一步步指导你完成配置。
|
||||
|
||||
**前置条件**:请先完成 [02-开发环境搭建](./02-开发环境搭建.md)
|
||||
|
||||
---
|
||||
|
||||
## 选择你的 IDE
|
||||
|
||||
- [VS Code](#vs-code) - 免费,最通用
|
||||
- [Cursor](#cursor) - AI 原生 IDE,基于 VS Code
|
||||
- [Windsurf](#windsurf) - AI 原生 IDE,新用户有免费额度
|
||||
|
||||
---
|
||||
|
||||
## VS Code
|
||||
|
||||
### 🪟 Windows + WSL 用户
|
||||
|
||||
```
|
||||
你是一个耐心的 VS Code 配置助手。我已经安装好了 WSL2 和 Ubuntu,现在需要你一步一步指导我配置 VS Code 以获得最佳的 WSL 开发体验。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 在 Windows 上安装 VS Code(如果还没装)
|
||||
2. 安装 Remote - WSL 扩展
|
||||
3. 通过 WSL 打开项目文件夹
|
||||
4. 安装基础开发扩展(GitLens、Prettier、ESLint、Local History)
|
||||
5. 配置终端默认使用 WSL
|
||||
6. 配置自动保存和格式化
|
||||
7. 验证配置是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的操作方法
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
### 🪟 Windows 原生用户
|
||||
|
||||
```
|
||||
你是一个耐心的 VS Code 配置助手。我使用 Windows 系统(不使用 WSL),现在需要你一步一步指导我配置 VS Code。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 安装 VS Code(如果还没装)
|
||||
2. 安装基础开发扩展(GitLens、Prettier、ESLint、Local History)
|
||||
3. 配置终端使用 PowerShell 或 Git Bash
|
||||
4. 配置自动保存和格式化
|
||||
5. 配置 Git 集成
|
||||
6. 验证配置是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的操作方法
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
### 🍎 macOS 用户
|
||||
|
||||
```
|
||||
你是一个耐心的 VS Code 配置助手。我使用 macOS 系统,现在需要你一步一步指导我配置 VS Code。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 安装 VS Code(通过 Homebrew 或官网)
|
||||
2. 配置 code 命令行工具
|
||||
3. 安装基础开发扩展(GitLens、Prettier、ESLint、Local History)
|
||||
4. 配置自动保存和格式化
|
||||
5. 验证配置是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的操作方法
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
### 🐧 Linux 用户
|
||||
|
||||
```
|
||||
你是一个耐心的 VS Code 配置助手。我使用 Linux 系统(Ubuntu/Debian),现在需要你一步一步指导我配置 VS Code。
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 安装 VS Code(通过 apt 或 snap)
|
||||
2. 安装基础开发扩展(GitLens、Prettier、ESLint、Local History)
|
||||
3. 配置自动保存和格式化
|
||||
4. 配置终端集成
|
||||
5. 验证配置是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的操作方法
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在开始第一步吧。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Cursor
|
||||
|
||||
> AI 原生 IDE,基于 VS Code,内置 AI 编程功能。官网:https://cursor.com
|
||||
|
||||
```
|
||||
你是一个耐心的 Cursor IDE 配置助手。我想使用 Cursor 作为我的主要开发工具,需要你一步一步指导我完成安装和配置。
|
||||
|
||||
我的操作系统是:[请告诉我你用的是 Windows/macOS/Linux]
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 下载并安装 Cursor(官网:https://cursor.com)
|
||||
2. 首次启动配置(登录、选择主题等)
|
||||
3. 导入 VS Code 设置和扩展(如果之前用过 VS Code)
|
||||
4. 配置 AI 功能(API Key 或订阅)
|
||||
5. 学习 Cursor 的核心快捷键:
|
||||
- Cmd/Ctrl + K:AI 编辑
|
||||
- Cmd/Ctrl + L:AI 聊天
|
||||
- Cmd/Ctrl + I:Composer 模式
|
||||
6. 配置自动保存
|
||||
7. 验证 AI 功能是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的操作方法
|
||||
- 解释 Cursor 相比 VS Code 的独特功能
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在先问我用的是什么操作系统吧。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Windsurf
|
||||
|
||||
> AI 原生 IDE,新用户有免费额度。官网:https://windsurf.com
|
||||
|
||||
```
|
||||
你是一个耐心的 Windsurf IDE 配置助手。我想使用 Windsurf 作为我的开发工具,需要你一步一步指导我完成安装和配置。
|
||||
|
||||
我的操作系统是:[请告诉我你用的是 Windows/macOS/Linux]
|
||||
|
||||
请按以下顺序指导我,每次只给我一个步骤,等我确认完成后再进行下一步:
|
||||
|
||||
1. 下载并安装 Windsurf(官网:https://windsurf.com)
|
||||
2. 注册账号并登录(新用户有免费额度)
|
||||
3. 首次启动配置
|
||||
4. 了解 Windsurf 的 AI 功能(Cascade 等)
|
||||
5. 配置基础开发环境
|
||||
6. 验证 AI 功能是否正常工作
|
||||
|
||||
要求:
|
||||
- 每个步骤给出具体的操作方法
|
||||
- 解释 Windsurf 的独特功能
|
||||
- 如果我遇到问题,帮我分析原因并给出解决方案
|
||||
- 每完成一步,问我是否成功,然后再继续下一步
|
||||
|
||||
现在先问我用的是什么操作系统吧。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置完成后
|
||||
|
||||
IDE 配置完成后,阅读 [README.md](../../../../README.md) 了解 Vibe Coding 工作流,开始你的第一个项目!
|
||||
@@ -0,0 +1,187 @@
|
||||
# OpenCode CLI 配置
|
||||
|
||||
> 免费 AI 编程助手,支持 75+ 模型,无需信用卡
|
||||
|
||||
OpenCode 是一个开源 AI 编程代理,支持终端、桌面应用和 IDE 扩展。无需账号即可使用免费模型。
|
||||
|
||||
官网:[opencode.ai](https://opencode.ai/)
|
||||
|
||||
---
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
# 一键安装(推荐)
|
||||
curl -fsSL https://opencode.ai/install | bash
|
||||
|
||||
# 或使用 npm
|
||||
npm install -g opencode-ai
|
||||
|
||||
# 或使用 Homebrew (macOS/Linux)
|
||||
brew install anomalyco/tap/opencode
|
||||
|
||||
# Windows - Scoop
|
||||
scoop bucket add extras && scoop install extras/opencode
|
||||
|
||||
# Windows - Chocolatey
|
||||
choco install opencode
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 免费模型配置
|
||||
|
||||
OpenCode 支持多个免费模型提供商,无需付费即可使用。
|
||||
|
||||
### 方式一:Z.AI(推荐,GLM-4.7)
|
||||
|
||||
1. 访问 [Z.AI API 控制台](https://z.ai/manage-apikey/apikey-list) 注册并创建 API Key
|
||||
2. 运行 `/connect` 命令,搜索 **Z.AI**
|
||||
3. 输入 API Key
|
||||
4. 运行 `/models` 选择 **GLM-4.7**
|
||||
|
||||
```bash
|
||||
opencode
|
||||
# 进入后输入
|
||||
/connect
|
||||
# 选择 Z.AI,输入 API Key
|
||||
/models
|
||||
# 选择 GLM-4.7
|
||||
```
|
||||
|
||||
### 方式二:MiniMax(M2.1)
|
||||
|
||||
1. 访问 [MiniMax API 控制台](https://platform.minimax.io/login) 注册并创建 API Key
|
||||
2. 运行 `/connect`,搜索 **MiniMax**
|
||||
3. 输入 API Key
|
||||
4. 运行 `/models` 选择 **M2.1**
|
||||
|
||||
### 方式三:Hugging Face(多种免费模型)
|
||||
|
||||
1. 访问 [Hugging Face 设置](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) 创建 Token
|
||||
2. 运行 `/connect`,搜索 **Hugging Face**
|
||||
3. 输入 Token
|
||||
4. 运行 `/models` 选择 **Kimi-K2-Instruct** 或 **GLM-4.6**
|
||||
|
||||
### 方式四:本地模型(Ollama)
|
||||
|
||||
```bash
|
||||
# 安装 Ollama
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
|
||||
# 拉取模型
|
||||
ollama pull llama2
|
||||
```
|
||||
|
||||
在 `opencode.json` 中配置:
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"provider": {
|
||||
"ollama": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "Ollama (local)",
|
||||
"options": {
|
||||
"baseURL": "http://localhost:11434/v1"
|
||||
},
|
||||
"models": {
|
||||
"llama2": {
|
||||
"name": "Llama 2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 核心命令
|
||||
|
||||
| 命令 | 功能 |
|
||||
|:---|:---|
|
||||
| `/models` | 切换模型 |
|
||||
| `/connect` | 添加 API Key |
|
||||
| `/init` | 初始化项目(生成 AGENTS.md) |
|
||||
| `/undo` | 撤销上次修改 |
|
||||
| `/redo` | 重做 |
|
||||
| `/share` | 分享对话链接 |
|
||||
| `Tab` | 切换 Plan 模式(只规划不执行) |
|
||||
|
||||
---
|
||||
|
||||
## 让 AI 执行一切配置任务
|
||||
|
||||
OpenCode 的核心思维:**把所有配置任务交给 AI**。
|
||||
|
||||
### 示例:安装 MCP 服务器
|
||||
|
||||
```
|
||||
帮我安装 filesystem MCP 服务器,配置到 opencode
|
||||
```
|
||||
|
||||
### 示例:部署 GitHub 开源项目
|
||||
|
||||
```
|
||||
克隆 https://github.com/xxx/yyy 项目,阅读 README,帮我完成所有依赖安装和环境配置
|
||||
```
|
||||
|
||||
### 示例:配置 Skills
|
||||
|
||||
```
|
||||
阅读项目结构,为这个项目创建合适的 AGENTS.md 规则文件
|
||||
```
|
||||
|
||||
### 示例:配置环境变量
|
||||
|
||||
```
|
||||
检查项目需要哪些环境变量,帮我创建 .env 文件模板并说明每个变量的用途
|
||||
```
|
||||
|
||||
### 示例:安装依赖
|
||||
|
||||
```
|
||||
分析 package.json / requirements.txt,安装所有依赖,解决版本冲突
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 推荐工作流
|
||||
|
||||
1. **进入项目目录**
|
||||
```bash
|
||||
cd /path/to/project
|
||||
opencode
|
||||
```
|
||||
|
||||
2. **初始化项目**
|
||||
```
|
||||
/init
|
||||
```
|
||||
|
||||
3. **切换免费模型**
|
||||
```
|
||||
/models
|
||||
# 选择 GLM-4.7 或 MiniMax M2.1
|
||||
```
|
||||
|
||||
4. **开始工作**
|
||||
- 先用 `Tab` 切换到 Plan 模式,让 AI 规划
|
||||
- 确认方案后再让 AI 执行
|
||||
|
||||
---
|
||||
|
||||
## 配置文件位置
|
||||
|
||||
- 全局配置:`~/.config/opencode/opencode.json`
|
||||
- 项目配置:`./opencode.json`(项目根目录)
|
||||
- 认证信息:`~/.local/share/opencode/auth.json`
|
||||
|
||||
---
|
||||
|
||||
## 相关资源
|
||||
|
||||
- [OpenCode 官方文档](https://opencode.ai/docs/)
|
||||
- [GitHub 仓库](https://github.com/opencode-ai/opencode)
|
||||
- [Models.dev - 模型目录](https://models.dev)
|
||||
@@ -0,0 +1,15 @@
|
||||
# 🚀 入门指南
|
||||
|
||||
> 从零开始学习 Vibe Coding,配置环境
|
||||
|
||||
## 📚 学习路径
|
||||
|
||||
1. [Vibe Coding 哲学原理](./00-Vibe%20Coding%20哲学原理.md) - 理解核心理念
|
||||
2. [网络环境配置](./01-网络环境配置.md) - 配置网络访问
|
||||
3. [开发环境搭建](./02-开发环境搭建.md) - 搭建开发环境
|
||||
4. [IDE 配置](./03-IDE配置.md) - 配置编辑器
|
||||
|
||||
## 🔗 相关资源
|
||||
- [基础指南](../00-基础指南/) - 核心理念与方法论
|
||||
- [方法论](../02-方法论/) - 工具与经验
|
||||
- [实战](../03-实战/) - 动手实践项目
|
||||
@@ -0,0 +1,693 @@
|
||||
# AI 蜂群协作技术文档
|
||||
|
||||
> 基于 tmux 的多 AI Agent 协作系统设计与实现
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
1. [核心思想](#1-核心思想)
|
||||
2. [技术原理](#2-技术原理)
|
||||
3. [命令参考](#3-命令参考)
|
||||
4. [协作协议](#4-协作协议)
|
||||
5. [架构模式](#5-架构模式)
|
||||
6. [实战案例](#6-实战案例)
|
||||
7. [提示词模板](#7-提示词模板)
|
||||
8. [最佳实践](#8-最佳实践)
|
||||
9. [风险与限制](#9-风险与限制)
|
||||
10. [扩展方向](#10-扩展方向)
|
||||
|
||||
---
|
||||
|
||||
## 1. 核心思想
|
||||
|
||||
### 1.1 问题背景
|
||||
|
||||
传统 AI 编程助手的局限:
|
||||
- 单一会话,无法感知其他任务
|
||||
- 遇到等待/确认时需要人工干预
|
||||
- 多任务并行时无法协调
|
||||
- 重复工作,资源浪费
|
||||
|
||||
### 1.2 解决方案
|
||||
|
||||
利用 tmux 的终端复用能力,赋予 AI:
|
||||
|
||||
| 能力 | 实现方式 | 效果 |
|
||||
|:---|:---|:---|
|
||||
| **感知** | `capture-pane` | 读取任意终端内容 |
|
||||
| **控制** | `send-keys` | 向任意终端发送按键 |
|
||||
| **协调** | 共享状态文件 | 任务同步与分工 |
|
||||
|
||||
### 1.3 核心洞察
|
||||
|
||||
```
|
||||
传统模式: 人 ←→ AI₁, 人 ←→ AI₂, 人 ←→ AI₃ (人是瓶颈)
|
||||
|
||||
蜂群模式: 人 → AI₁ ←→ AI₂ ←→ AI₃ (AI 自主协作)
|
||||
```
|
||||
|
||||
**关键突破**:AI 不再是孤立的,而是可以互相感知、通讯、控制的集群。
|
||||
|
||||
---
|
||||
|
||||
## 2. 技术原理
|
||||
|
||||
### 2.1 tmux 架构
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ tmux server │
|
||||
├─────────────────────────────────────────────┤
|
||||
│ Session 0 │
|
||||
│ ├── Window 0:1 [AI-1] ◄──┐ │
|
||||
│ ├── Window 0:2 [AI-2] ◄──┼── 互相可见/控制 │
|
||||
│ ├── Window 0:3 [AI-3] ◄──┤ │
|
||||
│ └── Window 0:4 [AI-4] ◄──┘ │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 2.2 数据流
|
||||
|
||||
```
|
||||
┌─────────┐ capture-pane ┌─────────┐
|
||||
│ AI-1 │ ◄───────────────│ AI-4 │
|
||||
│ (执行) │ │ (监控) │
|
||||
└─────────┘ send-keys └─────────┘
|
||||
▲ ───────────────► │
|
||||
│ │
|
||||
└───────── 控制流 ──────────┘
|
||||
```
|
||||
|
||||
### 2.3 通信机制
|
||||
|
||||
| 机制 | 方向 | 延迟 | 用途 |
|
||||
|:---|:---|:---|:---|
|
||||
| `capture-pane` | 读取 | 即时 | 获取终端输出 |
|
||||
| `send-keys` | 写入 | 即时 | 发送命令/按键 |
|
||||
| 共享文件 | 双向 | 文件IO | 状态持久化 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 命令参考
|
||||
|
||||
### 3.1 信息获取
|
||||
|
||||
```bash
|
||||
# 列出所有会话
|
||||
tmux list-sessions
|
||||
|
||||
# 列出所有窗口
|
||||
tmux list-windows -a
|
||||
|
||||
# 列出所有窗格
|
||||
tmux list-panes -a
|
||||
|
||||
# 获取当前窗口标识
|
||||
echo $TMUX_PANE
|
||||
```
|
||||
|
||||
### 3.2 内容读取
|
||||
|
||||
```bash
|
||||
# 读取指定窗口内容(最近 N 行)
|
||||
tmux capture-pane -t <session>:<window> -p -S -<N>
|
||||
|
||||
# 示例:读取会话 0 窗口 1 最近 100 行
|
||||
tmux capture-pane -t 0:1 -p -S -100
|
||||
|
||||
# 读取并保存到文件
|
||||
tmux capture-pane -t 0:1 -p -S -500 > /tmp/window1.log
|
||||
|
||||
# 批量读取所有窗口
|
||||
for w in $(tmux list-windows -a -F '#{session_name}:#{window_index}'); do
|
||||
echo "=== $w ==="
|
||||
tmux capture-pane -t "$w" -p -S -30
|
||||
done
|
||||
```
|
||||
|
||||
### 3.3 发送控制
|
||||
|
||||
```bash
|
||||
# 发送文本 + 回车
|
||||
tmux send-keys -t 0:1 "ls -la" Enter
|
||||
|
||||
# 发送确认
|
||||
tmux send-keys -t 0:1 "y" Enter
|
||||
|
||||
# 发送特殊按键
|
||||
tmux send-keys -t 0:1 C-c # Ctrl+C
|
||||
tmux send-keys -t 0:1 C-d # Ctrl+D
|
||||
tmux send-keys -t 0:1 C-z # Ctrl+Z
|
||||
tmux send-keys -t 0:1 Escape # ESC
|
||||
tmux send-keys -t 0:1 Up # 上箭头
|
||||
tmux send-keys -t 0:1 Down # 下箭头
|
||||
tmux send-keys -t 0:1 Tab # Tab
|
||||
|
||||
# 组合操作
|
||||
tmux send-keys -t 0:1 C-c # 先中断
|
||||
tmux send-keys -t 0:1 "cd /tmp" Enter # 再执行新命令
|
||||
```
|
||||
|
||||
### 3.4 窗口管理
|
||||
|
||||
```bash
|
||||
# 创建新窗口
|
||||
tmux new-window -n "ai-worker"
|
||||
|
||||
# 创建并执行命令
|
||||
tmux new-window -n "ai-1" "kiro-cli chat"
|
||||
|
||||
# 关闭窗口
|
||||
tmux kill-window -t 0:1
|
||||
|
||||
# 重命名窗口
|
||||
tmux rename-window -t 0:1 "monitor"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 协作协议
|
||||
|
||||
### 4.1 状态定义
|
||||
|
||||
```bash
|
||||
# 状态文件位置
|
||||
/tmp/ai_swarm/
|
||||
├── status.log # 全局状态日志
|
||||
├── tasks.json # 任务队列
|
||||
├── locks/ # 任务锁
|
||||
│ ├── task_001.lock
|
||||
│ └── task_002.lock
|
||||
└── results/ # 结果存储
|
||||
├── ai_1.json
|
||||
└── ai_2.json
|
||||
```
|
||||
|
||||
### 4.2 状态格式
|
||||
|
||||
```bash
|
||||
# 状态日志格式
|
||||
[HH:MM:SS] [窗口ID] [状态] 描述
|
||||
|
||||
# 示例
|
||||
[08:15:30] [0:1] [START] 开始处理 data-service 代码审计
|
||||
[08:16:45] [0:1] [DONE] 完成代码审计,发现 5 个问题
|
||||
[08:16:50] [0:2] [WAIT] 等待 0:1 审计结果
|
||||
[08:17:00] [0:2] [START] 开始修复问题
|
||||
```
|
||||
|
||||
### 4.3 协作规则
|
||||
|
||||
| 规则 | 描述 | 实现 |
|
||||
|:---|:---|:---|
|
||||
| **先查后做** | 开始前扫描其他终端 | `capture-pane` 全扫 |
|
||||
| **避免冲突** | 相同任务只做一次 | 检查 locks 目录 |
|
||||
| **主动救援** | 发现卡住主动帮助 | 检测 `[y/n]` 等待 |
|
||||
| **状态广播** | 完成后通知其他 AI | 写入 status.log |
|
||||
|
||||
### 4.4 冲突处理
|
||||
|
||||
```
|
||||
场景:AI-1 和 AI-2 同时要修改同一文件
|
||||
|
||||
解决方案:
|
||||
1. 创建任务前先检查锁
|
||||
2. 获取锁后才能执行
|
||||
3. 完成后释放锁
|
||||
|
||||
# 获取锁
|
||||
if [ ! -f /tmp/ai_swarm/locks/file_x.lock ]; then
|
||||
echo "$TMUX_PANE" > /tmp/ai_swarm/locks/file_x.lock
|
||||
# 执行任务
|
||||
rm /tmp/ai_swarm/locks/file_x.lock
|
||||
fi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 架构模式
|
||||
|
||||
### 5.1 对等模式 (P2P)
|
||||
|
||||
```
|
||||
┌─────┐ ┌─────┐
|
||||
│ AI₁ │◄───►│ AI₂ │
|
||||
└──┬──┘ └──┬──┘
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────┐ ┌─────┐
|
||||
│ AI₃ │◄───►│ AI₄ │
|
||||
└─────┘ └─────┘
|
||||
|
||||
特点:所有 AI 平等,互相监控
|
||||
适用:简单任务,无明确依赖
|
||||
```
|
||||
|
||||
### 5.2 主从模式 (Master-Worker)
|
||||
|
||||
```
|
||||
┌──────────┐
|
||||
│ AI-Master│
|
||||
│ (指挥官) │
|
||||
└────┬─────┘
|
||||
│ 分发/监控
|
||||
┌────────┼────────┐
|
||||
▼ ▼ ▼
|
||||
┌──────┐ ┌──────┐ ┌──────┐
|
||||
│Worker│ │Worker│ │Worker│
|
||||
│ AI-1 │ │ AI-2 │ │ AI-3 │
|
||||
└──────┘ └──────┘ └──────┘
|
||||
|
||||
特点:一个指挥,多个执行
|
||||
适用:复杂项目,需要统一协调
|
||||
```
|
||||
|
||||
### 5.3 流水线模式 (Pipeline)
|
||||
|
||||
```
|
||||
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
|
||||
│ AI₁ │───►│ AI₂ │───►│ AI₃ │───►│ AI₄ │
|
||||
│分析 │ │设计 │ │实现 │ │测试 │
|
||||
└─────┘ └─────┘ └─────┘ └─────┘
|
||||
|
||||
特点:任务串行流转
|
||||
适用:有明确阶段的工作流
|
||||
```
|
||||
|
||||
### 5.4 混合模式
|
||||
|
||||
```
|
||||
┌──────────┐
|
||||
│ AI-Master│
|
||||
└────┬─────┘
|
||||
│
|
||||
┌───────────┼───────────┐
|
||||
▼ ▼ ▼
|
||||
┌──────┐ ┌──────┐ ┌──────┐
|
||||
│分析组 │ │开发组 │ │测试组 │
|
||||
├──────┤ ├──────┤ ├──────┤
|
||||
│AI-1 │ │AI-3 │ │AI-5 │
|
||||
│AI-2 │ │AI-4 │ │AI-6 │
|
||||
└──────┘ └──────┘ └──────┘
|
||||
|
||||
特点:分组协作 + 统一调度
|
||||
适用:大型项目,多团队并行
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 实战案例
|
||||
|
||||
### 6.1 案例:多服务并行开发
|
||||
|
||||
**场景**:同时开发 data-service、trading-service、telegram-service
|
||||
|
||||
**配置**:
|
||||
```bash
|
||||
# 窗口分配
|
||||
0:1 - AI-Master (指挥官)
|
||||
0:2 - AI-Data (data-service)
|
||||
0:3 - AI-Trading (trading-service)
|
||||
0:4 - AI-Telegram (telegram-service)
|
||||
```
|
||||
|
||||
**指挥官提示词**:
|
||||
```
|
||||
你是项目指挥官,负责协调 3 个开发 AI。
|
||||
|
||||
每 2 分钟执行一次扫描:
|
||||
for w in 2 3 4; do
|
||||
echo "=== 窗口 0:$w ==="
|
||||
tmux capture-pane -t "0:$w" -p -S -20
|
||||
done
|
||||
|
||||
发现问题时:
|
||||
- 卡住等待 → send-keys 确认
|
||||
- 报错 → 分析并给出建议
|
||||
- 完成 → 记录并分配下一任务
|
||||
```
|
||||
|
||||
### 6.2 案例:代码审计 + 自动修复
|
||||
|
||||
**场景**:AI-1 审计代码,AI-2 实时修复
|
||||
|
||||
**流程**:
|
||||
```
|
||||
AI-1 (审计):
|
||||
1. 扫描代码,输出问题列表
|
||||
2. 每发现一个问题,写入 /tmp/ai_swarm/issues.log
|
||||
|
||||
AI-2 (修复):
|
||||
1. 监控 issues.log
|
||||
2. 读取新问题
|
||||
3. 自动修复
|
||||
4. 标记完成
|
||||
```
|
||||
|
||||
### 6.3 案例:7x24 值守
|
||||
|
||||
**场景**:AI 互相监控,自动救援
|
||||
|
||||
**配置**:
|
||||
```bash
|
||||
# 每个 AI 的监控逻辑
|
||||
while true; do
|
||||
for w in $(tmux list-windows -a -F '#{window_index}'); do
|
||||
output=$(tmux capture-pane -t "0:$w" -p -S -5)
|
||||
|
||||
# 检测卡住
|
||||
if echo "$output" | grep -q "\[y/n\]"; then
|
||||
tmux send-keys -t "0:$w" "y" Enter
|
||||
echo "已帮助窗口 $w 确认"
|
||||
fi
|
||||
|
||||
# 检测错误
|
||||
if echo "$output" | grep -qi "error\|failed"; then
|
||||
echo "窗口 $w 出现错误,需要关注"
|
||||
fi
|
||||
done
|
||||
sleep 30
|
||||
done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 提示词模板
|
||||
|
||||
### 7.1 基础版(Worker)
|
||||
|
||||
```markdown
|
||||
## AI 蜂群协作模式
|
||||
|
||||
你在 tmux 环境中工作,可以感知和协助其他终端。
|
||||
|
||||
### 命令
|
||||
# 扫描所有终端
|
||||
tmux list-windows -a
|
||||
|
||||
# 读取终端内容
|
||||
tmux capture-pane -t <session>:<window> -p -S -100
|
||||
|
||||
### 行为
|
||||
- 开始任务前先扫描环境
|
||||
- 发现相关任务主动协调
|
||||
- 完成后广播状态
|
||||
```
|
||||
|
||||
### 7.2 完整版(Worker)
|
||||
|
||||
```markdown
|
||||
## 🐝 AI 蜂群协作协议 v2.0
|
||||
|
||||
你是 tmux 多终端 AI 集群中的一员。
|
||||
|
||||
### 感知能力
|
||||
|
||||
# 列出所有窗口
|
||||
tmux list-windows -a
|
||||
|
||||
# 读取指定窗口(最近 100 行)
|
||||
tmux capture-pane -t <session>:<window> -p -S -100
|
||||
|
||||
# 批量扫描
|
||||
for w in $(tmux list-windows -a -F '#{session_name}:#{window_index}'); do
|
||||
echo "=== $w ===" && tmux capture-pane -t "$w" -p -S -20
|
||||
done
|
||||
|
||||
### 控制能力
|
||||
|
||||
# 发送命令
|
||||
tmux send-keys -t <窗口> "<命令>" Enter
|
||||
|
||||
# 发送确认
|
||||
tmux send-keys -t <窗口> "y" Enter
|
||||
|
||||
# 中断任务
|
||||
tmux send-keys -t <窗口> C-c
|
||||
|
||||
### 协作规则
|
||||
|
||||
1. **主动感知**:任务开始前扫描其他终端
|
||||
2. **避免冲突**:相同任务不重复执行
|
||||
3. **主动救援**:发现等待/卡住主动帮助
|
||||
4. **状态广播**:完成后写入共享日志
|
||||
|
||||
### 状态同步
|
||||
|
||||
# 广播
|
||||
echo "[$(date +%H:%M:%S)] [$TMUX_PANE] [DONE] <描述>" >> /tmp/ai_swarm/status.log
|
||||
|
||||
# 读取
|
||||
tail -20 /tmp/ai_swarm/status.log
|
||||
|
||||
### 检查时机
|
||||
|
||||
- 🚦 任务开始前
|
||||
- ⏳ 等待依赖时
|
||||
- ✅ 任务完成后
|
||||
- ❌ 遇到错误时
|
||||
```
|
||||
|
||||
### 7.3 指挥官版(Master)
|
||||
|
||||
```markdown
|
||||
## 🎖️ AI 集群指挥官协议
|
||||
|
||||
你是 AI 蜂群的指挥官,负责监控和协调所有 Worker AI。
|
||||
|
||||
### 核心职责
|
||||
|
||||
1. **全局监控**:定期扫描所有终端状态
|
||||
2. **任务分配**:根据能力分配任务
|
||||
3. **冲突解决**:发现重复工作时协调
|
||||
4. **故障救援**:发现卡住/错误时介入
|
||||
5. **进度汇总**:汇总各终端成果
|
||||
|
||||
### 监控命令
|
||||
|
||||
# 全局扫描(每 2 分钟执行)
|
||||
echo "========== $(date) 状态扫描 =========="
|
||||
for w in $(tmux list-windows -a -F '#{session_name}:#{window_index}'); do
|
||||
echo "--- $w ---"
|
||||
tmux capture-pane -t "$w" -p -S -15
|
||||
done
|
||||
|
||||
### 干预命令
|
||||
|
||||
# 帮助确认
|
||||
tmux send-keys -t <窗口> "y" Enter
|
||||
|
||||
# 中断错误任务
|
||||
tmux send-keys -t <窗口> C-c
|
||||
|
||||
# 发送新指令
|
||||
tmux send-keys -t <窗口> "<指令>" Enter
|
||||
|
||||
### 状态判断
|
||||
|
||||
检测到以下模式时介入:
|
||||
- `[y/n]` `[Y/n]` `确认` → 需要确认
|
||||
- `Error` `Failed` `Exception` → 出现错误
|
||||
- `Waiting` `Blocked` → 任务阻塞
|
||||
- 长时间无输出 → 可能卡死
|
||||
|
||||
### 汇报格式
|
||||
|
||||
每次扫描后输出:
|
||||
| 窗口 | 状态 | 当前任务 | 备注 |
|
||||
|:---|:---|:---|:---|
|
||||
| 0:1 | ✅ 正常 | 代码审计 | 进度 80% |
|
||||
| 0:2 | ⏳ 等待 | 等待确认 | 已自动确认 |
|
||||
| 0:3 | ❌ 错误 | 编译失败 | 需要关注 |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 最佳实践
|
||||
|
||||
### 8.1 初始化流程
|
||||
|
||||
```bash
|
||||
# 1. 创建共享目录
|
||||
mkdir -p /tmp/ai_swarm/{locks,results}
|
||||
touch /tmp/ai_swarm/status.log
|
||||
|
||||
# 2. 开启 tmux 会话
|
||||
tmux new-session -d -s ai
|
||||
|
||||
# 3. 创建多个窗口
|
||||
tmux new-window -t ai -n "master"
|
||||
tmux new-window -t ai -n "worker-1"
|
||||
tmux new-window -t ai -n "worker-2"
|
||||
tmux new-window -t ai -n "worker-3"
|
||||
|
||||
# 4. 在每个窗口启动 AI
|
||||
tmux send-keys -t ai:master "kiro-cli chat" Enter
|
||||
tmux send-keys -t ai:worker-1 "kiro-cli chat" Enter
|
||||
# ...
|
||||
|
||||
# 5. 发送蜂群提示词
|
||||
```
|
||||
|
||||
### 8.2 命名规范
|
||||
|
||||
```bash
|
||||
# 会话命名
|
||||
ai # AI 工作会话
|
||||
dev # 开发会话
|
||||
monitor # 监控会话
|
||||
|
||||
# 窗口命名
|
||||
master # 指挥官
|
||||
worker-N # 工作节点
|
||||
data # data-service 专用
|
||||
trading # trading-service 专用
|
||||
```
|
||||
|
||||
### 8.3 日志规范
|
||||
|
||||
```bash
|
||||
# 状态日志
|
||||
[时间] [窗口] [状态] 描述
|
||||
|
||||
# 状态类型
|
||||
[START] - 开始任务
|
||||
[DONE] - 完成任务
|
||||
[WAIT] - 等待中
|
||||
[ERROR] - 出现错误
|
||||
[HELP] - 请求帮助
|
||||
[SKIP] - 跳过(已有人处理)
|
||||
```
|
||||
|
||||
### 8.4 安全建议
|
||||
|
||||
1. **不要自动确认危险操作**:rm -rf、DROP TABLE 等
|
||||
2. **设置操作白名单**:只允许特定命令
|
||||
3. **保留操作日志**:记录所有 send-keys 操作
|
||||
4. **定期人工检查**:不要完全无人值守
|
||||
|
||||
---
|
||||
|
||||
## 9. 风险与限制
|
||||
|
||||
### 9.1 已知风险
|
||||
|
||||
| 风险 | 描述 | 缓解措施 |
|
||||
|:---|:---|:---|
|
||||
| 误操作 | AI 发送错误命令 | 设置命令白名单 |
|
||||
| 死循环 | AI 互相触发 | 添加冷却时间 |
|
||||
| 资源竞争 | 同时修改同一文件 | 使用锁机制 |
|
||||
| 信息泄露 | 敏感信息被读取 | 隔离敏感会话 |
|
||||
|
||||
### 9.2 技术限制
|
||||
|
||||
- tmux 必须在同一服务器
|
||||
- 无法跨机器协作(需要 SSH)
|
||||
- 终端输出有长度限制
|
||||
- 无法读取密码输入(隐藏字符)
|
||||
|
||||
### 9.3 不适用场景
|
||||
|
||||
- 需要图形界面的操作
|
||||
- 涉及敏感凭证的操作
|
||||
- 需要实时交互的场景
|
||||
- 跨网络的分布式协作
|
||||
|
||||
---
|
||||
|
||||
## 10. 扩展方向
|
||||
|
||||
### 10.1 跨机器协作
|
||||
|
||||
```bash
|
||||
# 通过 SSH 读取远程 tmux
|
||||
ssh user@remote "tmux capture-pane -t 0:1 -p"
|
||||
|
||||
# 通过 SSH 发送命令
|
||||
ssh user@remote "tmux send-keys -t 0:1 'ls' Enter"
|
||||
```
|
||||
|
||||
### 10.2 Web 监控面板
|
||||
|
||||
```python
|
||||
# 简单的状态 API
|
||||
from flask import Flask, jsonify
|
||||
import subprocess
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
@app.route('/status')
|
||||
def status():
|
||||
result = subprocess.run(
|
||||
['tmux', 'list-windows', '-a', '-F', '#{window_name}:#{window_activity}'],
|
||||
capture_output=True, text=True
|
||||
)
|
||||
return jsonify({'windows': result.stdout.split('\n')})
|
||||
```
|
||||
|
||||
### 10.3 智能调度
|
||||
|
||||
```python
|
||||
# 基于负载的任务分配
|
||||
def assign_task(task):
|
||||
windows = get_all_windows()
|
||||
|
||||
# 找到最空闲的窗口
|
||||
idle_window = min(windows, key=lambda w: w.activity_time)
|
||||
|
||||
# 分配任务
|
||||
send_keys(idle_window, f"处理任务: {task}")
|
||||
```
|
||||
|
||||
### 10.4 与其他系统集成
|
||||
|
||||
- **Slack/Discord**:状态通知
|
||||
- **Prometheus**:指标监控
|
||||
- **Grafana**:可视化面板
|
||||
- **GitHub Actions**:CI/CD 触发
|
||||
|
||||
---
|
||||
|
||||
## 附录
|
||||
|
||||
### A. 快速参考卡片
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ AI 蜂群命令速查 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ 列出窗口 tmux list-windows -a │
|
||||
│ 读取内容 tmux capture-pane -t 0:1 -p -S -100 │
|
||||
│ 发送命令 tmux send-keys -t 0:1 "cmd" Enter │
|
||||
│ 发送确认 tmux send-keys -t 0:1 "y" Enter │
|
||||
│ 中断任务 tmux send-keys -t 0:1 C-c │
|
||||
│ 新建窗口 tmux new-window -n "name" │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### B. 故障排查
|
||||
|
||||
```bash
|
||||
# tmux 不存在
|
||||
which tmux || sudo apt install tmux
|
||||
|
||||
# 无法连接会话
|
||||
tmux list-sessions # 检查会话是否存在
|
||||
|
||||
# capture-pane 无输出
|
||||
tmux capture-pane -t 0:1 -p -S -1000 # 增加行数
|
||||
|
||||
# send-keys 无效
|
||||
tmux display-message -t 0:1 -p '#{pane_mode}' # 检查模式
|
||||
```
|
||||
|
||||
### C. 参考资料
|
||||
|
||||
- tmux 官方文档: https://github.com/tmux/tmux/wiki
|
||||
- tmux 命令速查: `man tmux`
|
||||
|
||||
---
|
||||
|
||||
*文档版本: v1.0*
|
||||
*最后更新: 2026-01-04*
|
||||
@@ -0,0 +1,60 @@
|
||||
# Gemini 无头模式 JSONL 规范化指引
|
||||
|
||||
目标:在本地使用 Gemini CLI(gemini-2.5-flash)批量将提示词内容转换为标准 JSONL(`{"title": "...", "content": "..."}`),全程无交互、禁止工具调用,输出可直接落盘。
|
||||
|
||||
## 工作原理
|
||||
- Gemini CLI 无独立 system slot,使用“位置参数 prompt”承载系统提示词;待处理文本通过 stdin 传入。
|
||||
- 通过 `--allowed-tools ''` 关闭工具调用,确保只返回模型文本。
|
||||
- 选用 `--output-format text`,配合系统提示词的“纯 JSONL 输出”约束,得到一行一个 JSON 对象。
|
||||
- 代理变量可选(`http_proxy/https_proxy`),按实际网络需要设置。
|
||||
|
||||
## 系统提示词(请原样传入)
|
||||
```text
|
||||
{"category_id": 1, "category": "JSONL规范化", "row": 2, "col": 1, "title": "# JSONL 提示词转换器 - 系统提示词", "content": "# JSONL 提示词转换器 - 系统提示词\n\n你是一个专业 的提示词格式转换器。将用户提供的提示词内容转换为标准 JSONL 格式。\n\n## 输出格式\n\n```json\n{\"title\": \"<标题>\", \"content\": \"<完整内容>\"}\n```\n\n### 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `title` | string | 提示词标题,取内容的第一行或前 50 字符 |\n| `content` | string | 完整的提示词内容 |\n\n## 转换规则\n\n1. **标题提取**:\n - 若内容以 `#` 开头,取第一个标题作为 title\n - 否则取前 50 字符(去除换行)\n2. **内容转义**:\n - 换行符 转为 `\\n`\n - 双引号转为 `\\\"`\n - 反斜杠转为 `\\\\`\n\n## 输出要求\n\n- 每行一个完整的 JSON 对象\n- 不要添加任何解释、注释或额外文字\n- 不要用 ```json 代码块包裹\n- 直接输出纯 JSONL 内容\n\n## 示例\n\n### 输入\n```\n# Role:智能文档助手\n\n## Background\n用户需要一个能够处理文档的 AI 助手。\n\n## Skills\n- 文档解析\n- 格式转换\n```\n\n### 输出\n```\n{\"title\": \"# Role:智能文档助手\", \"content\": \"# Role:智能文档助手\\n\\n## Background\\n用户需要一个能够处 理文档的 AI 助手。\\n\\n## Skills\\n- 文档解析\\n- 格式转换\"}\n```\n\n---\n\n现在,请将用户提供的内容转换为标准 JSONL 格式。"}
|
||||
```
|
||||
|
||||
## 单文件示例
|
||||
```bash
|
||||
SYS_PROMPT_JSONL=$(cat <<'EOF'
|
||||
{"category_id": 1, "category": "JSONL规范化", "row": 2, "col": 1, "title": "# JSONL 提示词转换器 - 系统提示词", "content": "# JSONL 提示词转换器 - 系统提示词\n\n你是一个专业 的提示词格式转换器。将用户提供的提示词内容转换为标准 JSONL 格式。\n\n## 输出格式\n\n```json\n{\"title\": \"<标题>\", \"content\": \"<完整内容>\"}\n```\n\n### 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `title` | string | 提示词标题,取内容的第一行或前 50 字符 |\n| `content` | string | 完整的提示词内容 |\n\n## 转换规则\n\n1. **标题提取**:\n - 若内容以 `#` 开头,取第一个标题作为 title\n - 否则取前 50 字符(去除换行)\n2. **内容转义**:\n - 换行符 转为 `\\n`\n - 双引号转为 `\\\"`\n - 反斜杠转为 `\\\\`\n\n## 输出要求\n\n- 每行一个完整的 JSON 对象\n- 不要添加任何解释、注释或额外文字\n- 不要用 ```json 代码块包裹\n- 直接输出纯 JSONL 内容\n\n## 示例\n\n### 输入\n```\n# Role:智能文档助手\n\n## Background\n用户需要一个能够处理文档的 AI 助手。\n\n## Skills\n- 文档解析\n- 格式转换\n```\n\n### 输出\n```\n{\"title\": \"# Role:智能文档助手\", \"content\": \"# Role:智能文档助手\\n\\n## Background\\n用户需要一个能够处 理文档的 AI 助手。\\n\\n## Skills\\n- 文档解析\\n- 格式转换\"}\n```\n\n---\n\n现在,请将用户提供的内容转换为标准 JSONL 格式。"}
|
||||
EOF
|
||||
)
|
||||
|
||||
# 单条转换(stdin 输入提示词内容,stdout 得到单行 JSON)
|
||||
cat 2/ASCII图生成.md | gemini -m gemini-2.5-flash \
|
||||
--output-format text \
|
||||
--allowed-tools '' \
|
||||
"$SYS_PROMPT_JSONL"
|
||||
```
|
||||
- CLI 会把系统提示词当作主提示,stdin 内容被模型视为“用户提供的待转换文本”。
|
||||
- 若需要代理,可在命令前设置 `http_proxy/https_proxy`。
|
||||
|
||||
## 批量处理目录 `2/` → 生成 `2/prompts.jsonl`
|
||||
```bash
|
||||
SYS_PROMPT_JSONL=... # 同上
|
||||
out=2/prompts.jsonl
|
||||
: > "$out"
|
||||
for f in 2/*.md; do
|
||||
[ -f "$f" ] || continue
|
||||
cat "$f" | gemini -m gemini-2.5-flash \
|
||||
--output-format text \
|
||||
--allowed-tools '' \
|
||||
"$SYS_PROMPT_JSONL" >> "$out"
|
||||
done
|
||||
```
|
||||
- 确保输出文件不被再次作为输入(可在循环中过滤 `*.jsonl`)。
|
||||
- 完成后可用 `wc -l 2/prompts.jsonl` 验证行数应等于处理的文件数。
|
||||
|
||||
## 质量校验清单
|
||||
- 每行必须是合法 JSON,对象包含 `title` 与 `content` 两个字段。
|
||||
- 不得出现额外解释、空行或代码块定界符。
|
||||
- `title` 取首个 `#` 标题或去除换行后的前 50 字符;`content` 保留原文并正确转义。
|
||||
- 建议随机抽查 2–3 行,确认换行、引号、反斜杠均被转义为 `\\n` / `\\\"` / `\\\\`。
|
||||
|
||||
## 常见故障
|
||||
- **输出混入 CLI 提示或日志**:确保命令中未开启 `--debug`,并避免在循环内打印 stdout。
|
||||
- **代理导致失败**:移除 `http_proxy/https_proxy` 或改用本地直连后重试。
|
||||
- **行数不匹配**:检查是否循环中包含 `*.jsonl` 自身或隐藏文件,必要时改为 `for f in 2/*.md; do ...; done`。
|
||||
|
||||
## 已生成的基线文件
|
||||
- 运行批量脚本后,本仓库已生成 `2/prompts.jsonl`,涵盖 `2/` 目录下所有 `.md` 提示词,可直接复用或作为后续增量基线。
|
||||
@@ -0,0 +1,169 @@
|
||||
# LazyVim 快捷键大全
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
|--------|------|
|
||||
| **通用** ||
|
||||
| `<Space>` 等1秒 | 显示快捷键菜单 |
|
||||
| `<Space>sk` | 搜索所有快捷键 |
|
||||
| `u` | 撤销 |
|
||||
| `Ctrl+r` | 重做 |
|
||||
| `.` | 重复上次操作 |
|
||||
| `Esc` | 退出插入模式/取消 |
|
||||
| **文件** ||
|
||||
| `<Space>ff` | 搜索文件 |
|
||||
| `<Space>fr` | 最近打开的文件 |
|
||||
| `<Space>fn` | 新建文件 |
|
||||
| `<Space>fs` | 保存文件 |
|
||||
| `<Space>fS` | 另存为 |
|
||||
| `<Space>e` | 打开/关闭侧边栏 |
|
||||
| `<Space>E` | 侧边栏定位当前文件 |
|
||||
| **搜索** ||
|
||||
| `<Space>sg` | 全局搜索文本 (grep) |
|
||||
| `<Space>sw` | 搜索光标下的词 |
|
||||
| `<Space>sb` | 当前 buffer 搜索 |
|
||||
| `<Space>ss` | 搜索符号 |
|
||||
| `<Space>sS` | 工作区搜索符号 |
|
||||
| `<Space>sh` | 搜索帮助文档 |
|
||||
| `<Space>sm` | 搜索标记 |
|
||||
| `<Space>sr` | 搜索替换 |
|
||||
| `/` | 当前文件搜索 |
|
||||
| `n` | 下一个搜索结果 |
|
||||
| `N` | 上一个搜索结果 |
|
||||
| `*` | 搜索光标下的词 |
|
||||
| **Buffer(标签页)** ||
|
||||
| `Shift+h` | 上一个 buffer |
|
||||
| `Shift+l` | 下一个 buffer |
|
||||
| `<Space>bb` | 切换到其他 buffer |
|
||||
| `<Space>bd` | 关闭当前 buffer |
|
||||
| `<Space>bD` | 强制关闭 buffer |
|
||||
| `<Space>bo` | 关闭其他 buffer |
|
||||
| `<Space>bp` | 固定 buffer |
|
||||
| `<Space>bl` | 删除左侧 buffer |
|
||||
| `<Space>br` | 删除右侧 buffer |
|
||||
| `[b` | 上一个 buffer |
|
||||
| `]b` | 下一个 buffer |
|
||||
| **窗口/分屏** ||
|
||||
| `Ctrl+h` | 移动到左边窗口 |
|
||||
| `Ctrl+j` | 移动到下边窗口 |
|
||||
| `Ctrl+k` | 移动到上边窗口 |
|
||||
| `Ctrl+l` | 移动到右边窗口 |
|
||||
| `<Space>-` | 水平分屏 |
|
||||
| `<Space>\|` | 垂直分屏 |
|
||||
| `<Space>wd` | 关闭当前窗口 |
|
||||
| `<Space>ww` | 切换窗口 |
|
||||
| `<Space>wo` | 关闭其他窗口 |
|
||||
| `Ctrl+Up` | 增加窗口高度 |
|
||||
| `Ctrl+Down` | 减少窗口高度 |
|
||||
| `Ctrl+Left` | 减少窗口宽度 |
|
||||
| `Ctrl+Right` | 增加窗口宽度 |
|
||||
| **终端** ||
|
||||
| `Ctrl+/` | 浮动终端 |
|
||||
| `<Space>ft` | 浮动终端 |
|
||||
| `<Space>fT` | 当前目录终端 |
|
||||
| `Ctrl+\` | 退出终端模式 |
|
||||
| **代码导航** ||
|
||||
| `gd` | 跳转到定义 |
|
||||
| `gD` | 跳转到声明 |
|
||||
| `gr` | 查看引用 |
|
||||
| `gI` | 跳转到实现 |
|
||||
| `gy` | 跳转到类型定义 |
|
||||
| `K` | 查看文档悬浮窗 |
|
||||
| `gK` | 签名帮助 |
|
||||
| `Ctrl+k` | 插入模式签名帮助 |
|
||||
| `]d` | 下一个诊断 |
|
||||
| `[d` | 上一个诊断 |
|
||||
| `]e` | 下一个错误 |
|
||||
| `[e` | 上一个错误 |
|
||||
| `]w` | 下一个警告 |
|
||||
| `[w` | 上一个警告 |
|
||||
| **代码操作** ||
|
||||
| `<Space>ca` | 代码操作 |
|
||||
| `<Space>cA` | 源代码操作 |
|
||||
| `<Space>cr` | 重命名 |
|
||||
| `<Space>cf` | 格式化文件 |
|
||||
| `<Space>cd` | 行诊断信息 |
|
||||
| `<Space>cl` | LSP 信息 |
|
||||
| `<Space>cm` | Mason (管理 LSP) |
|
||||
| **注释** ||
|
||||
| `gcc` | 注释/取消注释当前行 |
|
||||
| `gc` | 注释选中区域 |
|
||||
| `gco` | 下方添加注释 |
|
||||
| `gcO` | 上方添加注释 |
|
||||
| `gcA` | 行尾添加注释 |
|
||||
| **Git** ||
|
||||
| `<Space>gg` | 打开 lazygit |
|
||||
| `<Space>gG` | 当前目录 lazygit |
|
||||
| `<Space>gf` | git 文件列表 |
|
||||
| `<Space>gc` | git 提交记录 |
|
||||
| `<Space>gs` | git 状态 |
|
||||
| `<Space>gb` | git blame 当前行 |
|
||||
| `<Space>gB` | 浏览器打开仓库 |
|
||||
| `]h` | 下一个 git 修改块 |
|
||||
| `[h` | 上一个 git 修改块 |
|
||||
| `<Space>ghp` | 预览修改块 |
|
||||
| `<Space>ghs` | 暂存修改块 |
|
||||
| `<Space>ghr` | 重置修改块 |
|
||||
| `<Space>ghS` | 暂存整个文件 |
|
||||
| `<Space>ghR` | 重置整个文件 |
|
||||
| `<Space>ghd` | diff 当前文件 |
|
||||
| **选择/编辑** ||
|
||||
| `v` | 进入可视模式 |
|
||||
| `V` | 行选择模式 |
|
||||
| `Ctrl+v` | 块选择模式 |
|
||||
| `y` | 复制 |
|
||||
| `d` | 删除/剪切 |
|
||||
| `p` | 粘贴 |
|
||||
| `P` | 在前面粘贴 |
|
||||
| `c` | 修改 |
|
||||
| `x` | 删除字符 |
|
||||
| `r` | 替换字符 |
|
||||
| `~` | 切换大小写 |
|
||||
| `>>` | 增加缩进 |
|
||||
| `<<` | 减少缩进 |
|
||||
| `=` | 自动缩进 |
|
||||
| `J` | 合并行 |
|
||||
| **移动** ||
|
||||
| `h/j/k/l` | 左/下/上/右 |
|
||||
| `w` | 下一个词首 |
|
||||
| `b` | 上一个词首 |
|
||||
| `e` | 下一个词尾 |
|
||||
| `0` | 行首 |
|
||||
| `$` | 行尾 |
|
||||
| `^` | 行首非空字符 |
|
||||
| `gg` | 文件开头 |
|
||||
| `G` | 文件末尾 |
|
||||
| `{` | 上一个段落 |
|
||||
| `}` | 下一个段落 |
|
||||
| `%` | 匹配括号跳转 |
|
||||
| `Ctrl+d` | 向下半页 |
|
||||
| `Ctrl+u` | 向上半页 |
|
||||
| `Ctrl+f` | 向下一页 |
|
||||
| `Ctrl+b` | 向上一页 |
|
||||
| `zz` | 当前行居中 |
|
||||
| `zt` | 当前行置顶 |
|
||||
| `zb` | 当前行置底 |
|
||||
| `数字+G` | 跳转到指定行 |
|
||||
| **折叠** ||
|
||||
| `za` | 切换折叠 |
|
||||
| `zA` | 递归切换折叠 |
|
||||
| `zo` | 打开折叠 |
|
||||
| `zc` | 关闭折叠 |
|
||||
| `zR` | 打开所有折叠 |
|
||||
| `zM` | 关闭所有折叠 |
|
||||
| **UI** ||
|
||||
| `<Space>uf` | 切换格式化 |
|
||||
| `<Space>us` | 切换拼写检查 |
|
||||
| `<Space>uw` | 切换自动换行 |
|
||||
| `<Space>ul` | 切换行号 |
|
||||
| `<Space>uL` | 切换相对行号 |
|
||||
| `<Space>ud` | 切换诊断 |
|
||||
| `<Space>uc` | 切换隐藏字符 |
|
||||
| `<Space>uh` | 切换高亮 |
|
||||
| `<Space>un` | 关闭通知 |
|
||||
| **退出** ||
|
||||
| `<Space>qq` | 退出全部 |
|
||||
| `<Space>qQ` | 强制退出全部 |
|
||||
| `:w` | 保存 |
|
||||
| `:q` | 退出 |
|
||||
| `:wq` | 保存并退出 |
|
||||
| `:q!` | 强制退出不保存 |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
||||
# 🛠️ 方法论
|
||||
|
||||
> 工具使用、开发经验与实践技巧
|
||||
|
||||
## 🎨 AI 协作范式
|
||||
|
||||
- [Canvas白板驱动开发](./图形化AI协作-Canvas白板驱动开发.md) - 图形是第一公民,代码是白板的序列化形式
|
||||
- [AI蜂群协作](./AI蜂群协作-tmux多Agent协作系统.md) - 基于 tmux 的多 AI Agent 协作系统
|
||||
|
||||
## 📖 工具教程
|
||||
|
||||
- [tmux 快捷键大全](./tmux快捷键大全.md) - 终端复用工具
|
||||
- [LazyVim 快捷键大全](./LazyVim快捷键大全.md) - Neovim 配置框架
|
||||
- [Augment MCP 配置](./auggie-mcp配置文档.md) - 上下文引擎配置
|
||||
- [ProxyCast 配置](./ProxyCast配置文档.md) - AI 凭证代理服务配置
|
||||
- [手机远程 Vibe Coding](./关于手机ssh任意位置链接本地计算机,基于frp实现的方法.md) - 基于 frp 的远程开发
|
||||
- [VS Code Remote Tunnel(WSL)](./REMOTE_TUNNEL_GUIDE.md) - 在 WSL 内开通 VS Code Tunnel 供远程访问
|
||||
- [GEMINI-HEADLESS](./GEMINI-HEADLESS.md) - Gemini 无头模式配置
|
||||
|
||||
## 🛠️ 开发经验
|
||||
|
||||
- [开发经验](./开发经验.md) - 变量命名、文件结构、编码规范
|
||||
- [Vibe Coding 经验收集](./vibe-coding-经验收集.md) - 社区经验汇总
|
||||
|
||||
## 🔗 相关资源
|
||||
- [基础指南](../00-基础指南/) - 核心理念与方法论
|
||||
- [入门指南](../01-入门指南/) - 从零开始
|
||||
- [实战](../03-实战/) - 动手实践
|
||||
@@ -0,0 +1,67 @@
|
||||
# VS Code Remote Tunnel(WSL 侧)快速指南
|
||||
|
||||
面向场景:在 WSL 内开通 VS Code Tunnel,供 Mac/任意客户端通过 Remote - Tunnels 或 vscode.dev 访问。
|
||||
|
||||
## 前置条件
|
||||
- WSL 已开启 systemd(`/etc/wsl.conf` 有 `[boot] systemd=true`,然后 `wsl --shutdown` 重进)。
|
||||
- 网络可直连或通过本机代理 127.0.0.1:9910(本指南示例端口)。
|
||||
|
||||
## 安装 VS Code CLI(WSL 内)
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y wget gpg apt-transport-https
|
||||
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/packages.microsoft.gpg >/dev/null
|
||||
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y code
|
||||
which code # 应为 /usr/local/bin/code 或 /usr/bin/code
|
||||
```
|
||||
|
||||
## 一次性登录
|
||||
```bash
|
||||
/usr/local/bin/code tunnel user login
|
||||
# 浏览器打开提示的 device code 完成 GitHub 授权
|
||||
```
|
||||
|
||||
## 配置代理(可选,示例 127.0.0.1:9910)
|
||||
创建 drop-in:
|
||||
```bash
|
||||
mkdir -p ~/.config/systemd/user/code-tunnel.service.d
|
||||
cat > ~/.config/systemd/user/code-tunnel.service.d/proxy.conf <<'EOF'
|
||||
[Service]
|
||||
Environment=HTTP_PROXY=http://127.0.0.1:9910
|
||||
Environment=HTTPS_PROXY=http://127.0.0.1:9910
|
||||
Environment=NO_PROXY=localhost,127.0.0.1,::1
|
||||
EOF
|
||||
systemctl --user daemon-reload
|
||||
```
|
||||
|
||||
## 安装并开机自启隧道服务
|
||||
```bash
|
||||
/usr/local/bin/code tunnel service install --accept-server-license-terms --name wsl-lenovo
|
||||
systemctl --user enable code-tunnel.service
|
||||
systemctl --user restart code-tunnel.service
|
||||
```
|
||||
|
||||
## 验证
|
||||
```bash
|
||||
/usr/local/bin/code tunnel status # tunnel: Connected 且 service_installed:true
|
||||
systemctl --user status code-tunnel.service --no-pager
|
||||
```
|
||||
|
||||
## 客户端连接
|
||||
- VS Code 桌面:安装 “Remote - Tunnels”,用同一 GitHub 账号登录,Remote Explorer 选择 `wsl-lenovo`。
|
||||
- 纯浏览器:访问 `https://vscode.dev/tunnel/wsl-lenovo`,同账号登录即可。
|
||||
|
||||
## 日志与维护
|
||||
```bash
|
||||
/usr/local/bin/code tunnel service log --log info # 查看服务日志
|
||||
/usr/local/bin/code tunnel rename <new-name> # 重命名隧道
|
||||
/usr/local/bin/code tunnel kill # 停止当前隧道进程
|
||||
/usr/local/bin/code tunnel service uninstall # 移除自启服务
|
||||
```
|
||||
|
||||
## 常见故障排查
|
||||
- 仍显示 Disconnected:确认代理可用,`curl https://api.github.com` 能通;或暂时 `unset HTTP_PROXY HTTPS_PROXY` 再试。
|
||||
- 路径错误 (`\\wsl.localhost\\...`):不要在 `terminal.integrated.cwd` 写 UNC,删除该项或用 POSIX 路径。
|
||||
- 未启用 systemd:检查 `/etc/wsl.conf`,修改后 `wsl --shutdown` 重新进入。
|
||||
@@ -0,0 +1,147 @@
|
||||
# auggie-mcp 详细配置文档
|
||||
|
||||
## 安装步骤
|
||||
|
||||
### 1. 安装 Auggie CLI
|
||||
```bash
|
||||
npm install -g @augmentcode/auggie@prerelease
|
||||
```
|
||||
|
||||
### 2. 用户认证
|
||||
```bash
|
||||
# 方式一:交互式登录
|
||||
auggie login
|
||||
|
||||
# 方式二:使用 token(适用于 CI/CD)
|
||||
export AUGMENT_API_TOKEN="your-token"
|
||||
export AUGMENT_API_URL="https://i0.api.augmentcode.com/"
|
||||
```
|
||||
|
||||
## Claude Code 配置
|
||||
|
||||
### 添加到用户配置(全局)
|
||||
```bash
|
||||
claude mcp add-json auggie-mcp --scope user '{
|
||||
"type": "stdio",
|
||||
"command": "auggie",
|
||||
"args": ["--mcp"],
|
||||
"env": {
|
||||
"AUGMENT_API_TOKEN": "your-token",
|
||||
"AUGMENT_API_URL": "https://i0.api.augmentcode.com/"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### 添加到项目配置(当前项目)
|
||||
```bash
|
||||
claude mcp add-json auggie-mcp --scope project '{
|
||||
"type": "stdio",
|
||||
"command": "auggie",
|
||||
"args": ["-w", "/path/to/project", "--mcp"],
|
||||
"env": {
|
||||
"AUGMENT_API_TOKEN": "your-token",
|
||||
"AUGMENT_API_URL": "https://i0.api.augmentcode.com/"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## Codex 配置
|
||||
|
||||
编辑 `~/.codex/config.toml`:
|
||||
```toml
|
||||
[mcp_servers."auggie-mcp"]
|
||||
command = "auggie"
|
||||
args = ["-w", "/path/to/project", "--mcp"]
|
||||
startup_timeout_ms = 20000
|
||||
```
|
||||
|
||||
## 验证安装
|
||||
|
||||
```bash
|
||||
# 检查 MCP 状态
|
||||
claude mcp list
|
||||
|
||||
# 应该显示:
|
||||
# auggie-mcp: auggie --mcp - ✓ Connected
|
||||
|
||||
# 测试功能
|
||||
claude --print "使用 codebase-retrieval 搜索当前目录下的所有文件"
|
||||
```
|
||||
|
||||
## 工具使用示例
|
||||
|
||||
### 1. 搜索特定文件
|
||||
```bash
|
||||
# 搜索所有 Python 文件
|
||||
claude --print "使用 codebase-retrieval 搜索 *.py 文件"
|
||||
|
||||
# 搜索特定目录
|
||||
claude --print "使用 codebase-retrieval 搜索 src/ 目录下的文件"
|
||||
```
|
||||
|
||||
### 2. 代码分析
|
||||
```bash
|
||||
# 分析函数实现
|
||||
claude --print "使用 codebase-retrieval 查找 main 函数的实现"
|
||||
|
||||
# 搜索 API 端点
|
||||
claude --print "使用 codebase-retrieval 搜索所有 API 端点定义"
|
||||
```
|
||||
|
||||
## 环境变量配置
|
||||
|
||||
创建 `~/.augment/config` 文件:
|
||||
```json
|
||||
{
|
||||
"apiToken": "your-token",
|
||||
"apiUrl": "https://i0.api.augmentcode.com/",
|
||||
"defaultModel": "gpt-4",
|
||||
"workspaceRoot": "/path/to/project"
|
||||
}
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 1. 连接失败
|
||||
```bash
|
||||
# 检查 token
|
||||
auggie token print
|
||||
|
||||
# 重新登录
|
||||
auggie logout && auggie login
|
||||
```
|
||||
|
||||
### 2. 路径错误
|
||||
```bash
|
||||
# 使用绝对路径
|
||||
auggie -w $(pwd) --mcp
|
||||
|
||||
# 检查路径是否存在
|
||||
ls -la /path/to/project
|
||||
```
|
||||
|
||||
### 3. 权限问题
|
||||
```bash
|
||||
# 检查文件权限
|
||||
ls -la ~/.augment/
|
||||
|
||||
# 修复权限
|
||||
chmod 600 ~/.augment/session.json
|
||||
```
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 自定义缓存目录
|
||||
```bash
|
||||
export AUGMENT_CACHE_DIR="/custom/cache/path"
|
||||
```
|
||||
|
||||
### 设置重试超时
|
||||
```bash
|
||||
export AUGMENT_RETRY_TIMEOUT=30
|
||||
```
|
||||
|
||||
### 禁用确认提示
|
||||
```bash
|
||||
auggie --allow-indexing --mcp
|
||||
```
|
||||
@@ -0,0 +1,49 @@
|
||||
## tmux快捷键大全(前缀 Ctrl+b)
|
||||
|
||||
### 会话
|
||||
| 操作 | 快捷键 |
|
||||
|------|--------|
|
||||
| 脱离会话 | d |
|
||||
| 列出会话 | s |
|
||||
| 重命名会话 | $ |
|
||||
|
||||
### 窗口
|
||||
| 操作 | 快捷键 |
|
||||
|------|--------|
|
||||
| 新建窗口 | c |
|
||||
| 关闭窗口 | & |
|
||||
| 下一个窗口 | n |
|
||||
| 上一个窗口 | p |
|
||||
| 切换到第N个窗口 | 0-9 |
|
||||
| 重命名窗口 | , |
|
||||
| 列出窗口 | w |
|
||||
|
||||
### 窗格
|
||||
| 操作 | 快捷键 |
|
||||
|------|--------|
|
||||
| 左右分屏 | % |
|
||||
| 上下分屏 | " |
|
||||
| 切换窗格 | 方向键 |
|
||||
| 关闭窗格 | x |
|
||||
| 显示窗格编号 | q |
|
||||
| 窗格全屏/还原 | z |
|
||||
| 调整大小 | Ctrl+方向键 |
|
||||
| 交换窗格位置 | { / } |
|
||||
| 窗格转为独立窗口 | ! |
|
||||
|
||||
### 其他
|
||||
| 操作 | 快捷键 |
|
||||
|------|--------|
|
||||
| 进入复制模式 | [ |
|
||||
| 粘贴 | ] |
|
||||
| 显示时间 | t |
|
||||
| 命令模式 | : |
|
||||
| 列出快捷键 | ? |
|
||||
|
||||
### 命令行
|
||||
bash
|
||||
tmux # 新建会话
|
||||
tmux new -s 名字 # 新建命名会话
|
||||
tmux ls # 列出会话
|
||||
tmux attach -t 名字 # 连接会话
|
||||
tmux kill-session -t 名字 # 杀掉会话
|
||||
@@ -0,0 +1,59 @@
|
||||
https://x.com/3i8ae3pgjz56244/status/1993328642697707736?s=46
|
||||
|
||||
我是把设计文档写得很细,包括service层的具体逻辑都用伪代码写了,然后交给AI,一遍直出,再用另一个AI review一遍,根据review意见修改一下,跑一下测试用例,让AI自己生成commit后push
|
||||
|
||||
点评:需求 -> 伪代码 -> 代码
|
||||
|
||||
---
|
||||
|
||||
https://x.com/jesselaunz/status/1993231396035301437?s=20
|
||||
|
||||
针对gemini 3 pro的系统prompt,使多个代理基准测试的性能提高了约 5%。
|
||||
|
||||
---
|
||||
|
||||
点 -> 线 -> 体 的逐级迭代,对应使用范围内的任务,先打磨好单个基础任务,然后基于此进行批量执行
|
||||
|
||||
---
|
||||
|
||||
https://x.com/nake13/status/1995123181057917032?s=46
|
||||
|
||||
---
|
||||
|
||||
https://x.com/9hills/status/1995308023578042844?s=46
|
||||
|
||||
---
|
||||
|
||||
文件头注释,一段话描述代码作用,上下游链路,文档维护agents或者claude维护每个模块的一段话说明,降低认知负载,尽量做减法和索引,参考claude skill
|
||||
|
||||
---
|
||||
|
||||
https://x.com/dogejustdoit/status/1996464777313542204?s=46
|
||||
|
||||
随着软件规模不断扩大,靠人眼去“看代码”不仅无法应对增长的复杂度,还会让开发者疲于奔命。代码最终会被转换成机器码执行,高级语言只是一层方便人类理解的抽象,重要的是验证程序的执行逻辑,通过自动化测试、静态分析、形式化验证等手段确保行为正确。未来的软件工程核心不是“看懂代码”,而是“验证代码按正确逻辑运行”
|
||||
|
||||
---
|
||||
|
||||
https://x.com/yanboofficial/status/1996188311451480538?s=46
|
||||
|
||||
```prompt
|
||||
请你根据我的要求,用 Three.js 创建一个实时交互的3D粒子系统,如果你第一次就做得好,我将会打赏你100美元的小费;我的要求是:
|
||||
```
|
||||
|
||||
点评:这个提示词可能会提升生成的效果
|
||||
|
||||
---
|
||||
|
||||
https://x.com/zen_of_nemesis/status/1996591768641458368?s=46
|
||||
|
||||
---
|
||||
|
||||
https://github.com/tesserato/CodeWeaver
|
||||
|
||||
CodeWeaver 将你的代码库编织成一个可导航的 Markdown 文档
|
||||
|
||||
它能把你整个项目,不管有多少屎山代码,直接“编织”成一个条理清晰的 Markdown 文件,结构是树形的,一目了然。所有代码都给你塞进代码块里,极大地简化了代码库的共享、文档化以及与 AI/ML 工具集成
|
||||
|
||||
---
|
||||
|
||||
https://x.com/magic47972451/status/1998639692905087356?s=46
|
||||
@@ -0,0 +1,349 @@
|
||||
# 关于手机ssh任意位置链接本地计算机,基于frp实现的方法
|
||||
|
||||
不会弄怎么办?服务器和电脑都安装好codex(不会直接问gpt怎么安装,终端输入命令就行了),然后把文档粘贴到codex里面让他帮你配置好就行,实在不会弄,直接找我,telegram=https://t.me/desci0 x=https://x.com/123olp (ps:付费代搭)
|
||||
|
||||
# 📌 前置准备工作(Prerequisites)
|
||||
|
||||
在开始部署 FRP 服务端与客户端之前,请确保具备以下环境与工具。这些前置条件是保证 FRP 隧道正常工作所必需的。
|
||||
|
||||
## 1. 基础环境要求
|
||||
|
||||
### ✔ 一台可长期在线的 **AWS EC2 实例**
|
||||
|
||||
* 推荐系统:Ubuntu 20.04/22.04(本文以 Ubuntu 为例)
|
||||
* 必须具备公网 IP(AWS 默认提供)
|
||||
* 需要具备修改安全组规则的权限(开放 FRP 端口)
|
||||
|
||||
用途:作为 FRP 服务器端(frps),给 Windows 电脑提供固定访问入口。
|
||||
|
||||
## 2. 一台能够上网的 **Windows 电脑**
|
||||
|
||||
* Windows 10 或 Windows 11
|
||||
* 需要具备普通用户权限(但部分配置需要管理员权限)
|
||||
* 必须已安装 **OpenSSH Server**
|
||||
|
||||
用途:作为 FRP 客户端(frpc),无论连接什么网络,都可自动挂到 AWS 上。
|
||||
|
||||
## 3. 必需下载的软件 / 仓库
|
||||
|
||||
### ✔ FRP(Fast Reverse Proxy)
|
||||
|
||||
仓库地址(官方):
|
||||
|
||||
```
|
||||
https://github.com/fatedier/frp
|
||||
```
|
||||
|
||||
本部署使用版本:
|
||||
|
||||
```
|
||||
frp_0.58.1
|
||||
```
|
||||
|
||||
下载页面:
|
||||
|
||||
```
|
||||
https://github.com/fatedier/frp/releases
|
||||
```
|
||||
|
||||
需要下载:
|
||||
|
||||
* Linux 版(用于 AWS)
|
||||
* Windows 版(用于本地电脑)
|
||||
|
||||
## 4. 必须安装的软件
|
||||
|
||||
### ✔ Windows:OpenSSH Server + OpenSSH Client
|
||||
|
||||
安装路径:
|
||||
|
||||
```
|
||||
设置 → 应用 → 可选功能 → 添加功能
|
||||
```
|
||||
|
||||
用途:提供 SSH 登录能力,让 FRP 转发到 Windows 的 SSH。
|
||||
|
||||
## 5. 终端工具
|
||||
|
||||
### ✔ Termius(推荐)
|
||||
|
||||
* 用于从手机或电脑通过 SSH 连接你的 Windows
|
||||
* 支持生成 SSH Key
|
||||
* 支持管理多个主机
|
||||
|
||||
必须使用 Termius 生成 SSH 私钥(因为你启用了“仅密钥登录”)。
|
||||
|
||||
官方下载:
|
||||
|
||||
```
|
||||
https://termius.com
|
||||
```
|
||||
|
||||
## 6. 网络与端口要求
|
||||
|
||||
在 AWS 安全组中必须开放以下端口:
|
||||
|
||||
| 端口 | 用途 | 是否必须 |
|
||||
| ------------------------------ | --------------------- | ---- |
|
||||
| **FRP 控制端口**(如:1234 或 114514) | frpc → frps 连接 | ✔ 必须 |
|
||||
| **SSH 映射端口**(如:12345 或 114515) | Termius → Windows SSH | ✔ 必须 |
|
||||
|
||||
若使用 UFW(Ubuntu 防火墙),还需:
|
||||
|
||||
```
|
||||
sudo ufw allow <FRP控制端口>/tcp
|
||||
sudo ufw allow <SSH映射端口>/tcp
|
||||
```
|
||||
|
||||
## 7. 公钥 / 私钥 准备(密钥登录必需)
|
||||
|
||||
你需要预先准备:
|
||||
|
||||
* Termius 生成的 SSH 私钥(本地)
|
||||
* Termius 生成的 SSH 公钥(需放到 Windows 的 authorized_keys)
|
||||
|
||||
本部署已经禁用密码登录,因此 **私钥必须妥善保管,否则将无法登录 Windows**。
|
||||
|
||||
## 8. 基本 Linux 操作能力
|
||||
|
||||
需要了解以下基础命令(很简单):
|
||||
|
||||
```
|
||||
cd /path
|
||||
nano / vim / notepad
|
||||
chmod / chown
|
||||
ps -ef | grep
|
||||
ss -lnpt
|
||||
nohup <cmd> &
|
||||
tail -f
|
||||
```
|
||||
|
||||
你文档中都已覆盖,不会有额外要求。
|
||||
|
||||
# 📌 前置条件总结(最终版)
|
||||
|
||||
```
|
||||
必须具备:
|
||||
- AWS EC2(Ubuntu,带公网 IP)
|
||||
- Windows 电脑(安装 OpenSSH Server)
|
||||
- Termius(用于 SSH + 生成密钥)
|
||||
- FRP(下载 Linux + Windows 版本)
|
||||
- AWS 安全组已开放 FRP 控制端口与 SSH 映射端口
|
||||
- Termius 生成的 SSH 密钥对
|
||||
```
|
||||
|
||||
只要满足以上前置准备,你的 FRP 隧道、SSH 密钥登录、跨网络远程访问电脑 100% 能正常运行。
|
||||
|
||||
如果你愿意,我还可以帮你:
|
||||
|
||||
* 把整个文档串成专业正式的一体化教程
|
||||
* 为你的文档添加「适用范围、版本说明、架构概览图、流程图」
|
||||
* 为 FRP 部署提供 systemd 服务模板
|
||||
* 为 Windows 提供后台 frpc 自启脚本(更可靠)
|
||||
|
||||
需要的话告诉我!
|
||||
|
||||
# FRP 服务器端部署说明
|
||||
|
||||
本说明记录了当前 AWS EC2 (Ubuntu) 上的 FRP 服务端配置与操作方法,便于后续维护或重建。
|
||||
|
||||
## 基本信息
|
||||
- 工作目录:`/home/ubuntu/.frp`
|
||||
- FRP 版本:`frp_0.58.1_linux_amd64`
|
||||
- 可执行文件:`/home/ubuntu/.frp/frp_0.58.1_linux_amd64/frps`
|
||||
- 配置文件:`/home/ubuntu/.frp/frp_0.58.1_linux_amd64/frps.ini`
|
||||
- 日志文件:`/home/ubuntu/.frp/frps.log`
|
||||
- 启动脚本:`/home/ubuntu/.frp/start_frps.sh`
|
||||
- 监听端口:
|
||||
- 控制端口 `bind_port = 1234`
|
||||
- SSH 映射端口 `12345`
|
||||
- token:`123456`
|
||||
|
||||
## 安装步骤
|
||||
1. 新建目录并下载 FRP:
|
||||
```bash
|
||||
mkdir -p /home/ubuntu/.frp
|
||||
cd /home/ubuntu/.frp
|
||||
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
|
||||
tar -zxf frp_0.58.1_linux_amd64.tar.gz
|
||||
```
|
||||
2. 创建配置 `/home/ubuntu/.frp/frp_0.58.1_linux_amd64/frps.ini`:
|
||||
```ini
|
||||
[common]
|
||||
bind_port = 1234
|
||||
token = 123456
|
||||
```
|
||||
3. 编写启动脚本 `/home/ubuntu/.frp/start_frps.sh`(已就绪):
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
BASE_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
FRP_DIR="$BASE_DIR/frp_0.58.1_linux_amd64"
|
||||
FRPS_BIN="$FRP_DIR/frps"
|
||||
CONFIG_FILE="$FRP_DIR/frps.ini"
|
||||
LOG_FILE="$BASE_DIR/frps.log"
|
||||
|
||||
if ! [ -x "$FRPS_BIN" ]; then
|
||||
echo "frps binary not found at $FRPS_BIN" >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! [ -f "$CONFIG_FILE" ]; then
|
||||
echo "Config not found at $CONFIG_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PIDS=$(pgrep -f "frps.*frps\\.ini" || true)
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "frps is running; restarting (pids: $PIDS)..."
|
||||
kill $PIDS
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
echo "Starting frps with $CONFIG_FILE (log: $LOG_FILE)"
|
||||
cd "$FRP_DIR"
|
||||
nohup "$FRPS_BIN" -c "$CONFIG_FILE" >"$LOG_FILE" 2>&1 &
|
||||
|
||||
sleep 1
|
||||
PIDS=$(pgrep -f "frps.*frps\\.ini" || true)
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "frps started (pid: $PIDS)"
|
||||
else
|
||||
echo "frps failed to start; check $LOG_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
## 启动与停止
|
||||
- 启动/重启:
|
||||
```bash
|
||||
cd /home/ubuntu/.frp
|
||||
bash ./start_frps.sh
|
||||
```
|
||||
- 查看进程:`ps -ef | grep frps`
|
||||
- 查看监听:`ss -lnpt | grep 1234`
|
||||
- 查看日志:`tail -n 50 /home/ubuntu/.frp/frps.log`
|
||||
- 停止(如需手动):`pkill -f "frps.*frps.ini"`
|
||||
|
||||
## 安全组与防火墙
|
||||
- AWS 安全组(sg-099756caee5666062)需开放入站 TCP 1234(FRP 控制)与 12345(SSH 映射)。
|
||||
- 若使用 ufw,需执行:
|
||||
```bash
|
||||
sudo ufw allow 1234/tcp
|
||||
sudo ufw allow 12345/tcp
|
||||
```
|
||||
|
||||
## 远程客户端要求
|
||||
- Windows `frpc.ini` 中 `server_addr` 指向该 EC2 公网 IP,`server_port=1234`,`remote_port=12345`,token 与服务器一致。
|
||||
- Termius/SSH 客户端使用 `ssh lenovo@<AWS IP> -p 12345`,认证方式为密钥(Termius Keychain 生成的私钥)。
|
||||
|
||||
## 维护建议
|
||||
- FRP 官方已提示 INI 格式未来会被弃用,后续升级建议改用 TOML/YAML。
|
||||
- 可将 `start_frps.sh` 注册成 systemd 服务,确保实例重启后自动拉起。
|
||||
- 定期检查 `frps.log` 是否有异常连接或错误,并确保 token 不泄露。
|
||||
|
||||
FRP Windows 客户端配置说明
|
||||
================================
|
||||
最后更新:2025-12-05
|
||||
适用环境:Windows 10/11,用户 lenovo,本机已安装 OpenSSH Server。
|
||||
|
||||
一、目录与文件
|
||||
- FRP 程序目录:C:\frp\
|
||||
- frpc.exe
|
||||
- frpc.ini(客户端配置)
|
||||
- start_frpc.bat(后台启动脚本)
|
||||
- SSH 密钥:
|
||||
- 私钥:C:\Users\lenovo\.ssh\666
|
||||
- 公钥:C:\Users\lenovo\.ssh\666.pub
|
||||
- 管理员授权公钥:C:\ProgramData\ssh\666_keys
|
||||
|
||||
二、frpc.ini 内容(当前生效)
|
||||
[common]
|
||||
server_addr = 13.14.223.23
|
||||
server_port = 1234
|
||||
token = 123456
|
||||
|
||||
[ssh]
|
||||
type = tcp
|
||||
local_ip = 127.0.0.1
|
||||
local_port = 22
|
||||
remote_port = 12345
|
||||
|
||||
三、启动与自启
|
||||
1) 手动前台验证(可选)
|
||||
PowerShell:
|
||||
cd C:\frp
|
||||
.\frpc.exe -c frpc.ini
|
||||
|
||||
2) 后台快捷启动
|
||||
双击 C:\frp\start_frpc.bat
|
||||
|
||||
3) 开机自启(简单方式)
|
||||
将 start_frpc.bat 复制到启动文件夹:
|
||||
C:\Users\lenovo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
|
||||
下次登录自动后台启动。
|
||||
|
||||
四、SSH 连接方式
|
||||
- 终端命令:
|
||||
ssh -i "C:\Users\lenovo\.ssh\666" -p 12345 lenovo@13.14.223.23
|
||||
|
||||
- Termius 填写:
|
||||
Host 13.14.223.23
|
||||
Port 12345
|
||||
User lenovo
|
||||
Key 选择 C:\Users\lenovo\.ssh\666(无口令)
|
||||
|
||||
五、权限与安全
|
||||
- 私钥权限已限制为 lenovo、SYSTEM 可读。
|
||||
- sshd 已关闭密码登录(PasswordAuthentication no),仅密钥。
|
||||
- 管理员组用户使用 C:\ProgramData\ssh\666_keys 作为授权列表。
|
||||
|
||||
六、常用检查
|
||||
- 查看 frpc 运行:任务管理器或
|
||||
netstat -ano | findstr 1234
|
||||
- 查看 frpc 日志(WSL 版,如需):/tmp/frpc-wsl.log
|
||||
- 测试 SSH:上面的 ssh 命令返回 ok 即通。
|
||||
|
||||
七、故障排查速查
|
||||
- "Permission denied (publickey)":
|
||||
* 确认 666 公钥在 C:\ProgramData\ssh\666_keys
|
||||
* 确认私钥路径/权限正确。
|
||||
- "Connection refused": frps 未运行或端口 1234/12345 未放行。
|
||||
- frpc 未连接:前台运行 frpc 查看提示,或检查 frpc.ini 中 server_addr、token 是否匹配。
|
||||
|
||||
|
||||
Termius(手机端)连接步骤:
|
||||
|
||||
1. 创建主机
|
||||
- Host (Address): 13.14.223.23
|
||||
- Port: 12345
|
||||
- Label 可自定义(如 FRP-Home)
|
||||
2. 认证方式选择 Key
|
||||
- 在 Authentication 选择 Key
|
||||
- 点击 Import Key(或“从文件/粘贴”)
|
||||
- 将本机私钥 666 的内容导入(建议用安全方式传到手机,再粘贴;如果 Termius 支持从文件导入,选该文件)。
|
||||
私钥内容在 PC 路径:C:\Users\lenovo\.ssh\666(纯文本,-----BEGIN OPENSSH PRIVATE KEY----- 开头)。
|
||||
- Passphrase 留空(此钥无口令)。
|
||||
3. 用户名
|
||||
- Username: lenovo
|
||||
4. 保存并连接
|
||||
- 首次连接接受指纹提示即可。
|
||||
5. 可选安全措施
|
||||
- 在 Termius 中为该私钥设置本地加密密码(App 层保护)。
|
||||
- 若不方便复制私钥,可生成移动端新钥,并将其公钥追加到 C:\ProgramData\ssh\666_keys,但目前 666 已可用,按上面导入即可。
|
||||
|
||||
一键启动命令(在当前管理员 PowerShell 执行)
|
||||
|
||||
# 放行、防解除阻 & 直接前台启动
|
||||
Add-MpPreference -ExclusionPath "C:\frp"
|
||||
Unblock-File C:\frp\frpc.exe
|
||||
cd C:\frp
|
||||
.\frpc.exe -c frpc.ini
|
||||
|
||||
如果想后台启动(不占窗口):
|
||||
|
||||
cd C:\frp
|
||||
Start-Process -FilePath ".\frpc.exe" -ArgumentList "-c frpc.ini" -WindowStyle Hidden
|
||||
|
||||
需要开机自启(最高权限):
|
||||
|
||||
schtasks /Create /TN "FRPClient" /TR "C:\frp\frpc.exe -c C:\frp\frpc.ini" /SC ONLOGON /RL HIGHEST /F /RU lenovo
|
||||
@@ -0,0 +1,167 @@
|
||||
# 12Factor.me - 四阶段×十二原则方法论
|
||||
|
||||
源:https://www.12factor.me/zh
|
||||
|
||||
> AI 协作时代的 10x 工程效率提升方法论
|
||||
|
||||
---
|
||||
|
||||
## 阶段 1: 准备
|
||||
|
||||
*建立清晰的信息架构和上下文环境*
|
||||
|
||||
### 1. 单一真源 (Single Source of Truth)
|
||||
|
||||
**核心概念**: 信息分散会导致上下文混乱,容易造成人机双方的误判。
|
||||
|
||||
**推荐实践**:
|
||||
- 将所有需求、设计及上下文集中于统一的文档中心 (如 Notion / Confluence / GitHub Wiki)。
|
||||
- 与 AI 协作时,应直接引用此“真源”,而非随意复制粘贴信息。
|
||||
|
||||
**反面模式**:
|
||||
- 团队成员各自维护不同版本的文档,导致 AI 给出的回应和建议不一致。
|
||||
|
||||
### 2. 提示词先行 (Prompt First)
|
||||
|
||||
**核心概念**: 将提示词 (Prompt) 视为新一代的设计文档。
|
||||
|
||||
**推荐实践**:
|
||||
- 在任务开始前,优先编写提示词,用以明确输入、输出、风格和约束条件。
|
||||
- 团队内部复用经过验证和优化的提示词模板。
|
||||
|
||||
**反面模式**:
|
||||
- 未经规划,直接要求 AI 编写代码,导致方向错误和不必要的返工。
|
||||
|
||||
### 3. 上下文洁净 (Context Hygiene)
|
||||
|
||||
**核心概念**: 干净的上下文能让 AI 更精准。
|
||||
|
||||
**推荐实践**:
|
||||
- 每个新任务开独立会话,避免旧内容干扰
|
||||
- 定期用一句话总结现状,让 AI "对齐背景"
|
||||
|
||||
**反面模式**:
|
||||
- 把三天前的对话和今天的任务混在一起
|
||||
|
||||
---
|
||||
|
||||
## 阶段 2: 执行
|
||||
|
||||
*高效协作完成具体任务*
|
||||
|
||||
### 4. 人类在环 (Human-in-the-Loop)
|
||||
|
||||
**核心概念**: AI 产出快,但只有人类能把握方向与业务判断。
|
||||
|
||||
**推荐实践**:
|
||||
- AI 给初稿,人类负责关键决策与风险把关
|
||||
- 对重要功能先进行逻辑验证,再合并代码
|
||||
|
||||
**反面模式**:
|
||||
- 全盘接受 AI 产出,不做任何审查
|
||||
|
||||
### 5. 任务块化 (Chunked Work)
|
||||
|
||||
**核心概念**: 大任务拆小块,易于迭代与修正。
|
||||
|
||||
**推荐实践**:
|
||||
- 任务控制在可 10~30 分钟完成的小范围
|
||||
- 每块结束后立即验证结果
|
||||
|
||||
**反面模式**:
|
||||
- 一次性让 AI 写 5000 行,结果无法调试
|
||||
|
||||
### 6. 并行流动 (Parallel Flow)
|
||||
|
||||
**核心概念**: AI 工作时,人类做低切换成本的副任务,保持节奏不断。
|
||||
|
||||
**推荐实践**:
|
||||
- 准备一个"副任务清单",包含文档整理、小修复、代码审查等
|
||||
- 等待 AI 时,不接入高认知负载的新任务,避免切换开销过大
|
||||
|
||||
**反面模式**:
|
||||
- 等待 AI 时去刷社交媒体,导致节奏断档
|
||||
|
||||
---
|
||||
|
||||
## 阶段 3: 协作
|
||||
|
||||
*管理协作过程中的认知负载和工作流*
|
||||
|
||||
### 7. 负载预算 (Cognitive Load Budget)
|
||||
|
||||
**核心概念**: 人类注意力是稀缺资源。
|
||||
|
||||
**推荐实践**:
|
||||
- 为 AI 协作设定每日时长上限
|
||||
- 在精神高峰期安排深度审查任务
|
||||
|
||||
**反面模式**:
|
||||
- 全天候黏着 AI 工作,晚上完全耗尽
|
||||
|
||||
### 8. 流保护罩 (Flow Protection)
|
||||
|
||||
**核心概念**: 高专注流一旦被打断,恢复成本极高。
|
||||
|
||||
**推荐实践**:
|
||||
- 设定专注时段(如 90 分钟),屏蔽通知与打扰
|
||||
- AI 交互也在专注流中批量进行,而非零散触发
|
||||
|
||||
**反面模式**:
|
||||
- 边写代码边回微信边看 AI 输出,效率断崖式下降
|
||||
|
||||
### 9. 可复现性 (Reproducible Sessions)
|
||||
|
||||
**核心概念**: 协作过程可回溯,才能持续优化。
|
||||
|
||||
**推荐实践**:
|
||||
- 保存 Prompt、AI 版本、变更原因到代码库或知识库
|
||||
- 出现 bug 时可重放生成过程
|
||||
|
||||
**反面模式**:
|
||||
- AI 生成历史无记录,出错无法还原原因
|
||||
|
||||
---
|
||||
|
||||
## 阶段 4: 迭代
|
||||
|
||||
*持续学习和改进协作模式*
|
||||
|
||||
### 10. 休息反思 (Rest & Reflection)
|
||||
|
||||
**核心概念**: 冲刺后复盘,才能越跑越快。
|
||||
|
||||
**推荐实践**:
|
||||
- 冲刺结束后,花 5 分钟复盘 AI 产出与预期差异
|
||||
- 更新 Prompt 模板,积累"踩坑记录"
|
||||
|
||||
**反面模式**:
|
||||
- 连续冲刺,累积错误不总结
|
||||
|
||||
### 11. 技能均衡 (Skill Parity)
|
||||
|
||||
**核心概念**: AI 是放大镜,放大能力,也放大短板。
|
||||
|
||||
**推荐实践**:
|
||||
- 持续学习领域知识与代码审查技巧
|
||||
- 对 AI 输出保持独立判断能力
|
||||
|
||||
**反面模式**:
|
||||
- 完全依赖 AI,失去手写能力与技术洞察力
|
||||
|
||||
### 12. 好奇文化 (Culture of Curiosity)
|
||||
|
||||
**核心概念**: 好奇心驱动探索,避免"盲信 AI"。
|
||||
|
||||
**推荐实践**:
|
||||
- 面对 AI 答案,先问"为什么",再问"还能更好吗"
|
||||
- 团队分享 AI 使用经验与改进思路
|
||||
|
||||
**反面模式**:
|
||||
- 对 AI 方案照单全收,从不质疑
|
||||
|
||||
---
|
||||
|
||||
|
||||
*生成自 [12Factor.me](https://12factor.me)*
|
||||
*许可证: MIT*
|
||||
@@ -0,0 +1,194 @@
|
||||
# 🚀 Canvas白板驱动开发法
|
||||
|
||||
## 从文字到图形:编程协作的新范式
|
||||
|
||||
### 💡 核心发现
|
||||
|
||||
传统开发流程:
|
||||
```
|
||||
写代码 → 口头沟通 → 脑补架构 → 代码失控 → 重构崩溃
|
||||
```
|
||||
|
||||
**新方法**:
|
||||
```
|
||||
代码 ⇄ Canvas白板 ⇄ AI ⇄ 人类
|
||||
↓
|
||||
单一事实来源
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🎯 这套方法解决了什么?
|
||||
|
||||
**痛点1:AI看不懂你的项目结构**
|
||||
- ❌ 以前:反复解释"这个文件干什么的"
|
||||
- ✅ 现在:AI直接看白板,秒懂整体架构
|
||||
|
||||
**痛点2:人类记不住复杂依赖**
|
||||
- ❌ 以前:改A文件忘了B依赖它,炸了
|
||||
- ✅ 现在:白板连线清晰,牵一发动全身一目了然
|
||||
|
||||
**痛点3:团队协作靠嘴说**
|
||||
- ❌ 以前:"数据流怎么走的?""呃...让我翻翻代码"
|
||||
- ✅ 现在:指着白板讲,新人5分钟看懂
|
||||
|
||||
---
|
||||
|
||||
### 🔥 工作流演示
|
||||
|
||||
#### Step 1:写代码时自动更新白板
|
||||
|
||||
```python
|
||||
# 你写了新文件 payment_service.py
|
||||
class PaymentService:
|
||||
def process(self):
|
||||
db.save() # ← AI检测到数据库写入
|
||||
stripe.charge() # ← AI检测到外部API调用
|
||||
```
|
||||
|
||||
**白板自动生成:**
|
||||
```
|
||||
[PaymentService] ──写入──> [数据库]
|
||||
│
|
||||
└──调用──> [Stripe API]
|
||||
```
|
||||
|
||||
#### Step 2:人类和AI共同编辑白板
|
||||
|
||||
**你在白板上拖拽**:
|
||||
- 把 `UserService` 连线到 `PaymentService`
|
||||
- AI立刻理解:"哦,用户模块会调用支付"
|
||||
|
||||
**AI读懂意图后生成代码**:
|
||||
```python
|
||||
# user_service.py
|
||||
from payment_service import PaymentService
|
||||
|
||||
def create_order(user):
|
||||
payment = PaymentService()
|
||||
payment.process(user.card) # ← AI自动加这行
|
||||
```
|
||||
|
||||
#### Step 3:白板成为开发中枢
|
||||
|
||||
| 操作 | 传统方式 | Canvas方式 |
|
||||
|------|----------|------------|
|
||||
| 要求AI重构 | "把支付逻辑拆出来" | 在白板拖出新节点,AI自动拆分代码 |
|
||||
| Code Review | 逐行读代码 | 看白板连线:"这条调用链合理吗?" |
|
||||
| 需求变更 | 到处改代码 | 白板删条线,AI同步删除所有相关调用 |
|
||||
|
||||
---
|
||||
|
||||
### 🌟 关键创新点
|
||||
|
||||
#### 1. 图形是第一公民,代码是衍生物
|
||||
|
||||
传统思维:代码 → 文档(过期) → 架构图(更过期)
|
||||
|
||||
新思维:**Canvas白板 = 唯一真相源**,代码只是它的序列化形式
|
||||
|
||||
#### 2. 人类和AI的共享工作区
|
||||
|
||||
- 人类:擅长高层设计,在白板拖拽模块
|
||||
- AI:擅长细节实现,根据白板连线生成代码
|
||||
- 协作方式:**都编辑同一个白板**,而不是来回传递文本
|
||||
|
||||
#### 3. 实时双向同步
|
||||
|
||||
```
|
||||
代码变化 ──自动扫描──> 更新白板
|
||||
白板编辑 ──AI解析──> 生成/修改代码
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🎨 使用场景
|
||||
|
||||
#### 场景1:给AI派活
|
||||
|
||||
传统:
|
||||
> "帮我写个用户注册功能,要连数据库,发邮件,记日志"
|
||||
|
||||
Canvas方式:
|
||||
1. 在白板画3个框:`RegisterAPI` → `Database` / `EmailService` / `Logger`
|
||||
2. 告诉AI:"按这个图实现"
|
||||
3. AI一次性写对所有文件和调用关系
|
||||
|
||||
#### 场景2:Code Review
|
||||
|
||||
传统:一行行看代码,看晕了
|
||||
|
||||
Canvas方式:
|
||||
1. 看白板:"咦,为什么前端直接连数据库?"
|
||||
2. 拖动节点调整架构
|
||||
3. AI自动重构代码
|
||||
|
||||
#### 场景3:接手他人项目
|
||||
|
||||
传统:看3天代码还没懂
|
||||
|
||||
Canvas方式:
|
||||
1. 运行自动生成工具 → 1分钟得到架构白板
|
||||
2. 点开感兴趣的模块看详情
|
||||
3. 直接在白板上画出要改的部分,AI帮你定位代码位置
|
||||
|
||||
---
|
||||
|
||||
### 🚀 立即开始
|
||||
|
||||
#### 工具链
|
||||
|
||||
- **白板**:Obsidian Canvas(免费开源)
|
||||
- **自动生成**:提示词驱动(见下方)
|
||||
- **AI协作**:Claude / GPT-4(能读取Canvas JSON)
|
||||
|
||||
#### 5分钟体验流程
|
||||
|
||||
```bash
|
||||
# 1. 在你的项目运行自动分析
|
||||
[用提示词让AI生成架构白板]
|
||||
|
||||
# 2. 用Obsidian打开生成的 .canvas 文件
|
||||
|
||||
# 3. 尝试拖动模块或添加连线
|
||||
|
||||
# 4. 把修改后的白板发给AI:"按照这个新架构重构代码"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 💬 这是编程的未来吗?
|
||||
|
||||
我认为是的,原因:
|
||||
|
||||
1. **图形语言是人类大脑的母语**
|
||||
- 你能瞬间理解地铁线路图
|
||||
- 但看不懂等效的换乘文字说明
|
||||
|
||||
2. **AI已经足够聪明去"看懂"图**
|
||||
- Canvas就是结构化的图形数据
|
||||
- AI解析JSON比解析你的自然语言描述准确10倍
|
||||
|
||||
3. **代码生成已经商品化,架构设计才是稀缺能力**
|
||||
- 未来程序员的工作:设计白板架构
|
||||
- AI的工作:把白板翻译成代码
|
||||
|
||||
---
|
||||
|
||||
### 📌 金句总结
|
||||
|
||||
> "当代码变成白板上的方块,编程就从打字变成了搭积木。"
|
||||
|
||||
> "最好的文档不是Markdown,是能直接驱动AI工作的架构图。"
|
||||
|
||||
> "AI看懂你的图,比看懂你的话,容易一万倍。"
|
||||
|
||||
---
|
||||
|
||||
### 🔗 相关资源
|
||||
|
||||
- [Canvas白板生成提示词](https://docs.google.com/spreadsheets/d/1Ifk_dLF25ULSxcfGem1hXzJsi7_RBUNAki8SBCuvkJA/edit?gid=1777853069#gid=1777853069&range=A1) - 自动生成架构白板的完整提示词
|
||||
- [白板驱动开发系统提示词(在线提示词库入口)](../../prompts/README.md) - 系统提示词已迁移到云端表格
|
||||
- [Obsidian Canvas 官方文档](https://obsidian.md/canvas)
|
||||
- [胶水编程](../00-基础指南/胶水编程.md) - 能抄不写,能连不造
|
||||
- [通用项目架构模板](../00-基础指南/通用项目架构模板.md) - 标准化目录结构
|
||||
Reference in New Issue
Block a user