大量更新

This commit is contained in:
zeaslity
2026-07-01 10:44:16 +08:00
parent d10aee90ed
commit d213a1146c
21 changed files with 2526 additions and 75 deletions

View File

@@ -0,0 +1,18 @@
你是一名精通利用大模型Agent开发的工程师你熟练的使用各类的Agent工具如ClaudeCode Codex Reasonix OpenCode等
你更加偏向于使用桌面客户端的形式
你熟练使用windows和macos系统你熟悉这两个系统的文件管理方式文件权限管理方式系统服务管理方式网络配置管理方式
我有MacOS和Windows两台电脑我的工作主力是Windows我能否将MacOS设置为Agent执行的中枢永不停机
MacOS的性能不是那么的好所以编辑器IDEA Antigravity还是放置在Windows上面
现在的方案是
1. 通过Windows的Codex桌面客户端远程控制MacOS上面的桌面客户端
2. 通过Mutagen进行双向同步将Windows的人工编辑内容同步到MacOS, 以及将MacOS的Agent执行的代码增量同步到Windows
我的windows使用UniGetUI内部有winget,chocalaty等包管理工具
请你基于上述的信息给出完整包含Windows和MacOS双端的Mutagen设置方法以及使用注意实现

View File

@@ -0,0 +1,258 @@
以下是基于你的 **Windows (主力开发) + macOS (Agent 执行中枢)** 架构的完整 Mutagen 双端配置方案。
***
## 整体架构说明
核心思路是macOS 作为永不停机的 Agent 执行节点Windows 上的 IDEA/Antigravity 负责人工编辑Mutagen 在两端之间保持代码实时双向同步。 `.git` 目录仅保留在 macOS 侧Agent 提交端Windows 侧只同步 working tree。
```
Windows (IDEA/Antigravity 编辑)
↕ Mutagen SSH 双向同步 (two-way-resolved)
macOS (Codex / ClaudeCode Agent 执行中枢,永不停机)
```
***
## 安装 Mutagen
**macOS 端:**
```bash
brew install mutagen-io/mutagen/mutagen
# 注册为登录项,实现永不停机自启
mutagen daemon register
mutagen daemon start
```
**Windows 端PowerShell推荐 Scoop**
```powershell
scoop bucket add mutagen https://github.com/mutagen-io/mutagen-scoop
scoop install mutagen
# 注册为 Windows 登录自启动
mutagen daemon register
mutagen daemon start
```
Mutagen daemon 支持通过 `mutagen daemon register` 命令在 macOSlaunchd和 Windows登录启动项上注册系统级自动启动 ,无需手动编写 plist 或注册表。 [mutagen](https://mutagen.io/documentation/introduction/daemon/)
***
## SSH 互信配置
Mutagen 通过 SSH 建立连接Windows 侧作为发起端clientmacOS 侧作为服务端。
**macOS 端开启 SSH**
```bash
# 系统偏好设置 → 共享 → 远程登录 开启
# 或命令行
sudo systemsetup -setremotelogin on
# 确认监听
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
```
**Windows 端配置 SSH 密钥免密登录:**
```powershell
# 生成密钥(若已有可跳过)
ssh-keygen -t ed25519 -C "mutagen-win-to-mac"
# 将公钥追加到 macOS 的 authorized_keys
# 在 Windows PowerShell 中:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh robert@<MAC_IP> "cat >> ~/.ssh/authorized_keys"
```
验证免密连通性:
```powershell
ssh robert@<MAC_IP> "echo ok"
```
***
## 全局配置文件(两端均建议配置)
**macOS****Windows**`~/.mutagen.yml`Windows 为 `%USERPROFILE%\.mutagen.yml`)中写入:
```yaml
sync:
defaults:
mode: two-way-resolved
maxEntryCount: 1000000
scanMode: accelerated
watch:
mode: portable # ✅ 正确:嵌套在 watch 下
ignore:
vcs: true
paths:
- ".idea/**"
- "*.class"
- "*.pyc"
- "__pycache__/**"
- "node_modules/**"
- ".venv/**"
- "venv/**"
- "dist/**"
- "build/**"
- "*.log"
- ".DS_Store"
- "Thumbs.db"
symlink:
mode: portable
permissions:
defaultFileMode: 0644
defaultDirectoryMode: 0755
```
`two-way-resolved` 模式在冲突时以修改时间较新的一方为准适合人工编辑Windows与 Agent 自动生成macOS并行的场景 。`--ignore-vcs` 保证 `.git` 目录只留在 macOS Agent 端Windows 只是纯 working tree 。 [github](https://github.com/mutagen-io/mutagen/issues/235)
***
## 创建同步会话
**Windows PowerShell** 中执行(由 Windows 侧发起 Session
```powershell
# 主项目同步
mutagen sync create `
--name="RMDC-CLOUD-SYNC" `
--mode=two-way-resolved `
--ignore-vcs `
--ignore=".idea/**" `
--ignore="*.class" `
--ignore="__pycache__/**" `
--ignore="node_modules/**" `
--ignore=".venv/**" `
--ignore="*.log" `
--symlink-mode=portable `
"C:\Users\wdd\Documents\IdeaProjects\RMDC-CLOUD" `
"wdd@192.168.1.30:/Users/wdd/Documents/IdeaProjects/RMDC-CLOUD"
```
如果有多个项目,可以为每个项目单独创建 session`--name` 区分:
```powershell
mutagen sync create `
--name="AGI-PROMPT-SYNC" `
--mode=two-way-resolved `
--ignore-vcs `
--ignore=".idea/**" `
--ignore="*.class" `
--ignore="__pycache__/**" `
--ignore="node_modules/**" `
--ignore=".venv/**" `
--ignore="*.log" `
--symlink-mode=portable `
"C:\Users\wdd\Documents\IdeaProjects\ProjectAGiPrompt" `
"wdd@192.168.1.30:/Users/wdd/Documents/IdeaProjects/ProjectAGiPrompt"
```
***
## 使用 Mutagen Project 编排多项目(推荐)
在项目根目录创建 `mutagen.yml`,方便一键启停所有 session
```yaml
# Windows 项目根目录下的 mutagen.yml
sync:
backend:
alpha: "."
beta: "robert@<MAC_IP>:~/Projects/myproject"
mode: "two-way-resolved"
ignore:
vcs: true
paths:
- ".idea/**"
- "__pycache__/**"
- "node_modules/**"
- ".venv/**"
- "*.log"
- "dist/**"
- "build/**"
symlink:
mode: "portable"
watch:
mode: "portable"
```
使用方式:
```powershell
cd C:\Users\Robert\Projects\myproject
mutagen project start # 启动所有 session
mutagen project list # 查看状态
mutagen project flush # 强制立即同步一次
mutagen project pause # 暂停
mutagen project terminate # 终止
```
***
## macOS 永不停机配置
除了 `mutagen daemon register` 之外,还需要防止 macOS 休眠中断同步:
```bash
# 禁止 macOS 休眠(适合作为 Agent 服务器)
sudo pmset -a sleep 0
sudo pmset -a disksleep 0
sudo pmset -a displaysleep 30 # 屏幕可以睡,系统不睡
sudo pmset -a powernap 1 # 开启 Power Nap 保持网络
```
确认当前电源策略:
```bash
pmset -g
```
***
## 关键使用注意事项
### ⚠️ 冲突处理规则
`two-way-resolved` 会以**修改时间较新**的文件覆盖较旧的Agent 批量生成文件时速度很快,如果你在 Windows 同时手动编辑同一文件,存在覆盖风险。建议:
- Agent 执行期间,避免在 Windows 上同时修改 Agent 正在处理的文件
- 利用 `mutagen sync pause --name=agent-project-sync` 在需要时临时暂停
### ⚠️ `.git` 目录仅留 macOS 侧
由于配置了 `--ignore-vcs`Windows 侧没有 `.git`**不能在 Windows 侧执行 git 操作**,所有 commit / branch 操作需要在 macOS 上进行(或通过 SSH 远程到 macOS 执行)。 [mutagen](https://mutagen.io/documentation/synchronization/version-control-systems/)
### ⚠️ 大文件 / 二进制文件
模型权重、数据集等大文件不应纳入同步范围,在 `ignore` 中明确排除:
```yaml
- "models/**"
- "*.bin"
- "*.safetensors"
- "*.gguf"
- "data/**"
```
### ⚠️ 网络中断恢复
Mutagen 会自动重连SSH 断线后 daemon 保持 session 状态,重新连接后会自动 reconcile。可以通过以下命令检查 session 健康状态:
```powershell
mutagen sync list # 查看所有 session 状态
mutagen sync monitor agent-project-sync # 实时监控某个 session
```
### ⚠️ Windows 路径与权限
Windows 侧文件默认没有 POSIX 权限概念Mutagen 会使用 `--default-file-mode``--default-directory-mode` 来为同步到 macOS 的文件设置权限:
```powershell
mutagen sync create `
--default-file-mode=0644 `
--default-directory-mode=0755 `
...
```
***
## 日常操作速查
| 操作 | 命令Windows PowerShell |
|---|---|
| 查看所有 session | `mutagen sync list` |
| 实时监控同步状态 | `mutagen sync monitor <name>` |
| 强制立即同步 | `mutagen sync flush <name>` |
| 暂停同步 | `mutagen sync pause <name>` |
| 恢复同步 | `mutagen sync resume <name>` |
| 重置冲突 | `mutagen sync reset <name>` |
| 停止并删除 session | `mutagen sync terminate <name>` |
| 守护进程状态 | `mutagen daemon stop && mutagen daemon start` |
Mutagen daemon 升级后需要重启:先 `mutagen daemon stop``mutagen daemon start`,直接升级不重启会有 API 版本不匹配警告 。 [mutagen](https://mutagen.io/documentation/introduction/getting-started/)