# AI Coding Agent 总被电脑休眠打断？我的建议：把工作区搬到云端，而不是只换插件

> 作者/来源: admin
> 发布时间: 2026-08-13T10:09:52.548Z
> 分类: 解决方案
> 标签: 云主机, 对象存储, 解决方案, AI Coding Agent, 云端工作区
> 原文链接: http://117.50.162.249:3000/yun/articles/2681

---

## 先说结论：**如果你现在的问题是 AI Coding Agent 经常被本地电脑休眠、断网、关机打断，那么单纯换一个插件意义不大，更有效的办法是把 Agent 的工作区搬到云端。**

一个比较可落地的架构是：

- 用 **优刻得 US3** 保存项目文件、任务文档、会话记录、执行日志和报告；
- 用一台 **Ubuntu 云主机** 提供 7×24 小时运行环境；
- 用 **US3FS** 把 US3 Bucket 挂载为 Linux 本地目录，比如 `/mnt/us3-project`；
- 用 **rclone** 在 Windows 本地项目和 US3 之间做同步；
- 用 **Claude Code** 在挂载目录中读取任务、修改代码、运行测试、生成报告；
- 用 **星图模型服务平台** 提供兼容 Anthropic 协议的模型 API，让 Claude Code 能正常调用模型。

这套方案的核心不是“把代码放到云上”这么简单，而是让 Agent 有一个稳定工作区：**不会因为你电脑合盖就停掉，也不会因为会话丢了就重新理解项目。**

---

## 一、本地跑 Agent 的常见误区：不是 Agent 不行，而是运行环境太脆弱

很多人第一次用 AI Coding Agent，会默认在本地电脑上跑。刚开始没问题，但任务一长，就会遇到几个典型问题：

1. **电脑休眠，任务直接中断**比如让 Agent 改代码、跑测试、修复失败用例，本来需要几十分钟甚至更久，结果笔记本休眠了。
2. **上下文分散，每次都要重新解释项目**任务说明、运行日志、测试报告、Agent 会话记录散落在本地不同目录里。下次继续时，Agent 可能又要重新读一遍。
3. **流程割裂，人变成工具操作工**本来想让 Agent 完成“需求输入 → 代码修改 → 测试执行 → 报告生成 → 代码提交”，结果人不断在同步文件、重启终端、补上下文。

所以我的判断标准是：

> 如果你只是偶尔让 AI 改几行代码，本地 IDE 插件就够了；但如果你希望 Agent 连续完成较长任务，并且要保留上下文、报告和测试结果，就应该考虑云端工作区。

---

## 二、这套方案到底解决什么问题？

可以用一个“问题—解决方案—验证”的表来理解。

| 环节 | 本地运行 Agent 的问题 | 云端方案的解决方式 | 验证方式 |
| --- | --- | --- | --- |
| 任务持续性 | 电脑休眠、断网、关机会中断任务 | Ubuntu 云主机提供 7×24 小时运行环境 | Agent 可持续执行任务，重启后可通过 claude --resume 继续 |
| 上下文保留 | 本地会话、日志、报告分散 | US3 保存项目文件、任务文档、.claude/、报告 | 在 /mnt/us3-project/project 查看上下文与产物 |
| 文件协同 | Windows 与云端项目不一致 | rclone 将 Windows 项目同步到 US3 | rclone ls 和本地同步检查 |
| Agent 文件读写 | 对象存储不能直接像目录使用 | US3FS 将 Bucket 挂载为本地目录 | df -h 和 ls /mnt/us3-project/project 验证 |
| 模型调用 | Claude Code 需要模型 API | 星图模型服务平台提供兼容 Anthropic 协议 API | 使用 claude "Hello" 或 curl 测试 |
| 代码质量 | Agent 可能改错代码 | 要求先计划、再修改、运行 pytest、生成 report.md | 通过测试结果和报告验证 |

整体架构如下：

- Windows 本地代码通过 **rclone** 实时或定时同步到 **优刻得 US3**。
- Ubuntu 云主机通过 **US3FS** 把同一个 Bucket 挂载到本地目录 `/mnt/us3-project`。
- **Claude Code** 在这个目录下工作，所有代码变更、任务文件、日志、报告和 `.claude/` 会话上下文都写入 US3。
- **星图模型服务平台** 提供兼容 Anthropic 协议的模型 API，让 Claude Code 可以调用。

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215735-4bba57dc24fe1f038ef330119428efe6.png)

---

## 三、先解释几个关键组件，避免一上来就配置

| 组件 | 作用 | 为什么需要它 |
| --- | --- | --- |
| 优刻得 / UCloud | 云计算品牌 | 提供云主机、对象存储等基础设施 |
| US3 | 对象存储服务 | 保存项目文件、上下文、日志和报告 |
| Ubuntu 云主机 | 云端运行环境 | 让 Claude Code 7×24 小时运行，避免本地电脑休眠 |
| US3FS | 挂载工具 | 把 US3 Bucket 挂载成 Linux 本地目录 |
| rclone | 同步工具 | 在 Windows 本地与 US3 之间同步项目 |
| Claude Code | AI Coding Agent | 执行代码修改、测试和报告生成 |
| 星图模型服务平台 | 模型服务平台 | 提供兼容 Anthropic 协议的模型 API |
| Anthropic 协议 | 模型 API 调用协议 | 让 Claude Code 能通过配置调用对应模型服务 |

核心思路可以概括成一句话：

> **US3 负责保存上下文，云主机负责持续运行，Claude Code 负责执行任务，星图模型服务负责模型调用，rclone 和 US3FS 负责把文件打通。**

---

## 四、适合什么人？不适合什么人？

### 适合这些场景

1. 经常用 AI Coding Agent 处理长任务；
2. 本地电脑经常休眠、断网或下班必须关机；
3. 希望统一保存 Agent 的任务说明、日志、报告和会话上下文；
4. 希望把代码生成、测试、报告和提交串成闭环；
5. 希望计算与存储解耦，避免单台云主机释放、重装或迁移导致上下文丢失。

### 不适合这些情况

1. 项目很小，只是偶尔让 AI 改几行代码；
2. 团队对代码、日志、上下文不能离开本地或内网有严格限制；
3. 项目依赖大量频繁小文件读写，对对象存储挂载性能非常敏感；
4. 团队还没有测试、PR、CI/CD 等基础质量控制流程。

这里要特别强调：**云端 Agent 不是为了替代 Review，也不是为了让 Agent 直接操作生产分支。它更适合放在一个可验证、可回滚、可审计的开发流程里。**

---

## 五、实施步骤总览

完整流程如下：

1. 创建优刻得 US3 Bucket，记录 Bucket 名称、公钥和私钥；
2. 在 Windows 上安装并配置 rclone，把本地项目同步到 US3；
3. 在 Ubuntu 云主机上安装 US3FS，把同一个 Bucket 挂载到 `/mnt/us3-project`；
4. 安装 Node.js 与 Claude Code CLI；
5. 配置星图模型服务平台 API Key、Base URL 和模型名称；
6. 在挂载目录中运行 Claude Code，让 Agent 基于 `task.md` 自动执行任务；
7. 用 pytest、`report.md`、Git 提交或 CI/CD 验证任务是否完成。

---

## 六、步骤 1：创建 US3 存储空间 Bucket

先创建 US3 Bucket，因为它会成为项目文件、任务文档、上下文和报告的统一数据源。

操作步骤：

1. 登录优刻得控制台；
2. 进入对象存储 US3；
3. 创建存储空间 Bucket；
4. 记录以下信息：

- Bucket 名称，例如 `agent-workspace`；
- 公钥和私钥，可在 API 密钥管理页获取。

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215612-4a72218df4e2a4018cdbba18c885ea6b.png)

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215545-b160ee737da7ff81a90fadb0638ec8c3.png)

后面的 rclone 和 US3FS 都会用到 Bucket 名称、公钥和私钥。

---

## 七、步骤 2：Windows 本地用 rclone 同步代码到 US3

rclone 的作用是把 Windows 本地项目同步到 US3，让云端 Agent 读取同一份代码。

原文提到参考官方文档“S3 应用：rclone 配置”，但没有提供可直接追踪的官方文档链接，建议实际落地时再补充对应官方链接。

### 1. 安装并验证 rclone

1. 下载 rclone Windows 版；
2. 解压并把 `rclone.exe` 加入 PATH；
3. 打开 cmd 或 PowerShell，输入：

```text
rclone version
```

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215528-2a3d2f0aad5be40b907f49207a7a76fd.png)

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215510-a78aef9a0e8c865fe9c633e4bf5b9ea1.png)

### 2. 配置 rclone 连接 US3

运行：

```text
rclone config
```

交互式输入示例：

```text
name> us3
storage> 4
provider> 47
env_auth> 1
access_key_id> access_key
secret_access_key> secret_access_key
endpoint> 2
acl> 1
storage_class> 2
```

说明：

- `name` 可以自己起，比如 `us3`；
- `access_key_id` 填优刻得公钥；
- `secret_access_key` 填优刻得私钥；
- `endpoint` 根据实际地域选择，原文以乌兰察布为例：`North China (Ulanqab)(s3-cn-wlcb.ufileos.com)`；
- Windows 的 rclone 配置文件通常在：`C:\Users\你的用户名\AppData\Roaming\rclone\rclone.conf`；
- 原文提到可配置 `chunk_size = 8M`，当前支持 8M。

### 3. 测试连通性

```text
rclone ls us3:agent-workspace
```

原文示例中可能出现：

```text
2026/05/26 21:20:36 NOTICE: s3: s3 provider "US3" not known - please set correctly
```

这里的含义是已经尝试列出配置文件 `us3` 对应的 Bucket `agent-workspace`。如果当前 Bucket 下没有文件和目录，结果可能为空。

### 4. 同步本地项目

以 `D:\my-project` 为例：

```text
# 首次全量上传
rclone sync D:\my-project us3:agent-workspace/project --progress

# 后续增量同步，可以排除 node_modules
rclone sync D:\my-project us3:agent-workspace/project --exclude node_modules/
```

到这一步，你本地代码已经同步到了 US3。

---

## 八、步骤 3：Ubuntu 云主机挂载 US3 到本地目录

US3FS 的作用是把对象存储 Bucket 挂载为 Linux 本地目录，这样 Claude Code 就能像操作普通文件系统一样读写项目。

原文建议云主机规格为 **2 核 4G 以上**。这是经验性建议，实际规格还要看项目规模、测试负载和构建任务复杂度。

### 1. 安装 US3FS

以 amd64 为例：

```text
curl -o us3fs https://ufile-release.cn-bj.ufileos.com/us3fs/us3fs_2.1.5
chmod +x us3fs
sudo mv us3fs /bin/us3fs
```

### 2. 配置访问凭证

```text
sudo mkdir -p /etc/us3fs
sudo vi /etc/us3fs/us3fs.yaml
```

写入你的对象存储访问凭证：

```text
access_key=你的公钥
secret_key=你的私钥
```

地域和域名建议与云主机选择同一地域。原文说明同地域时云主机与对象存储 US3 可以通过内网互访，速度会更好，但未提供具体性能数据。

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215493-dced1e654a5f46c297d06f211b1981b4.png)

### 3. 挂载 Bucket

```text
sudo mkdir -p /mnt/us3-project
sudo us3fs -o allow_other agent-workspace /mnt/us3-project
```

### 4. 验证挂载结果

运行：

```text
df -h
```

如果看到 us3fs 挂载点，说明挂载成功。原文截图中可以看到最下方多了一个 `1.0P` 的 us3fs。

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215478-fb853a013bab6ed1a478be8383e60ef0.png)

继续验证项目文件：

```text
ls /mnt/us3-project/project
```

如果能看到 Windows 同步上来的文件，说明 Windows、US3 和 Ubuntu 已经围绕同一份数据工作。

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215457-073f3ae191f93eb412e905111e623fd6.png)

---

## 九、步骤 4：安装 Claude Code，并接入星图模型服务平台

Claude Code 是实际执行代码任务的 Agent，星图模型服务平台提供兼容 Anthropic 协议的模型 API。

### 1. 安装 Node.js 与 Claude Code CLI

```text
sudo apt-get install -y curl

curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs

node -v
npm -v

sudo npm install -g @anthropic-ai/claude-code
claude --version
```

原文示例返回版本包括：

- Node.js：`v24.15.0` 或对应版本；
- npm：`11.12.1` 或对应版本；
- Claude Code：`2.1.150 (Claude Code)` 或对应版本。

这些是原文示例版本，不代表唯一可用版本。

### 2. 配置星图模型服务平台 API

从星图控制台的密钥管理页面获取 API Key，然后编辑：

```text
~/.claude/settings.json
```

配置示例：

```text
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "your-umodelverse-api-key",
    "ANTHROPIC_BASE_URL": "https://api.modelverse.cn",
    "ANTHROPIC_MODEL": "claude-sonnet-4-5-20250929",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}
```

原文给出的节点示例：

- 新加坡节点：`https://api-sg.umodelverse.ai`
- 大陆节点：`https://api.modelverse.cn`
- 美国节点：`https://api-us-ca.umodelverse.ai`

验证命令：

```text
claude "Hello, 请简单介绍一下自己"
```

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215437-d3f129a8b1cbff9d616834e2679b2818.png)

### 3. 安装 Anthropic SDK

```text
sudo apt install pipx
pipx install anthropic --include-deps
```

也可以用 curl 验证兼容 Anthropic 协议的 API：

```text
curl https://api.modelverse.cn/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: $MODELVERSE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, how are you?"}
    ]
  }'
```

原文返回示例：

```text
{
  "model": "claude-sonnet-4-5-20250929",
  "id": "27ec932bb3e18934eca9b5c5d2b8595e",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! I'm doing well, thank you for asking. How are you doing today? Is there anything I can help you with?"
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 13,
    "cache_creation_input_tokens": 0,
    "<span>cache_read_input_tokens</span>": 0,
    "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 0
    },
    "output_tokens": 30
  },
  "u_trace_id": "d8817bb8-3261-4069-aaaa-ac8a7a123d41"
}
```

如果返回中包含 `usage`、`output_tokens`、`u_trace_id` 等字段，通常可以用于确认接口调用成功并追踪请求。

---

## 十、Agent 的“记忆”到底存在哪里？

这里要澄清一个常见误区：

> Agent 的“记忆”不是玄学，也不是模型真的永久记住了你的项目，而是项目文件、任务说明、运行日志、执行报告，以及 Claude Code 在项目目录下生成的 `.claude/` 等上下文文件被持久化保存了。

只要项目目录在 `/mnt/us3-project` 下，Claude Code 的工作文件就会写入 US3。

启动 Agent：

```text
cd /mnt/us3-project/project
claude
```

如果云主机重启，或者 Agent 意外退出，可以用：

```text
cd /mnt/us3-project/project
claude --resume
```

Claude Code 会读取项目目录中的 `.claude/` 等会话上下文，尽量接着上次的任务继续。

---

## 十一、跑一个完整 Demo：从需求到代码、测试和报告

下面用一个简单 Flask 项目演示闭环。

任务：让 Agent 在 `app.py` 中增加 `/health` 健康检查接口，并写单元测试。

### 1. 创建简单 Flask 项目

```text
mkdir -p /mnt/us3-project/project
cd /mnt/us3-project/project
cat > app.py << 'EOF'
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Agent!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
EOF
```

说明：原文示例中的 `Flask(name)` 和 `if name == 'main'` 疑似为笔误，这里修正为 Python 常见写法 `__name__` 和 `__main__`，目的是保证 Demo 可运行。

### 2. 编写任务文件 task.md

```text
# 开发任务
- 请读取 app.py
- 添加 /health 路由，返回 {"status": "ok"} 和 200 状态码
- 创建 tests/test_health.py 并编写对 /health 的测试用例
- 运行 pytest 确认通过
- 如果全部通过，生成执行报告 report.md
```

### 3. 启动 Agent 执行任务

```text
cd /mnt/us3-project/project
claude
```

在 Claude Code 交互界面中输入：

```text
请严格按照 task.md 的要求完成所有步骤，最后生成报告。
```

Agent 应该按这个顺序执行：

1. 读取 `task.md` 和 `app.py`；
2. 修改 `app.py`，新增 `/health` 路由；
3. 创建 `tests/test_health.py`；
4. 运行 `pytest`；
5. 如果测试失败，尝试修复；
6. 测试通过后生成 `report.md`。

### 4. 检查结果

```text
ls /mnt/us3-project/project
cat report.md
```

预期可以看到：

```text
app.py  tests/  task.md  report.md  .claude/
```

![](https://ucloud-blog.cn-bj.ufileos.com/imagebed/0998213384215406-2b9592a7fd7ad2025528cd27a70737c4.png)

### 5. 提交代码或接入 CI/CD

如果项目本身由 Git 管理，可以在任务中要求 Agent 执行：

```text
git add .
git commit -m "feat: add health check"
git push
```

但我个人建议：**生产团队不要让 Agent 直接修改生产分支并自动发布。** 更稳妥的方式是让 Agent 提交到功能分支，然后通过 Pull Request 和 CI/CD 审核。

### 6. 同步回 Windows 本地

```text
rclone sync us3:agent-workspace/project D:\my-project --exclude node_modules/
```

也可以根据项目情况过滤以 `.` 开头的文件，或过滤 `.swp`、`.swx` 等临时文件。

同步完成后，你在 Windows 本地也能看到 Agent 生成的代码、测试、报告和上下文产物。

---

## 十二、常见问题 Q&A

### Q1：为什么不直接把项目放在云主机本地磁盘？

因为云主机本地磁盘更依赖单台实例。一旦实例释放、重装或迁移，项目和 Agent 上下文都可能丢失。

把项目放在 US3 对象存储中，可以实现存储与计算解耦：云主机负责运行 Agent，US3 负责保存代码、任务文件、日志和报告。

### Q2：为什么要用 US3FS，而不是每次手动 rclone sync？

rclone 更适合 Windows 与对象存储之间同步；US3FS 则可以把 Bucket 挂载成 Linux 本地目录，让 Claude Code 像操作普通文件一样读写项目文件。

两者搭配后，本地和云端可以围绕同一个 Bucket 协同工作。

### Q3：Agent 的“记忆”具体存在哪里？

本文中的“记忆”主要指：

- 项目文件；
- 任务说明，例如 `task.md`；
- 运行日志；
- 执行报告，例如 `report.md`；
- Claude Code 在项目目录下生成的 `.claude/` 等上下文文件。

只要这些文件位于 `/mnt/us3-project/project` 下，就会持久化到 US3。

### Q4：这个方案适合哪些团队？

适合经常用 AI Coding Agent 处理长任务的开发者和研发团队，尤其是希望把代码生成、测试、报告和提交串成闭环，并统一保存 Agent 运行产物与上下文的团队。

### Q5：这个方案不适合哪些情况？

如果项目很小，只是偶尔让 AI 改几行代码，或者团队要求代码、日志、上下文不能离开本地或内网环境，那么这套方案可能不适合。

这时应该优先评估安全、合规和数据边界，而不是为了“云端 Agent”强行上云。

### Q6：如何降低 Agent 改坏代码的风险？

建议至少做这几件事：

1. 开启 US3 版本控制，方便回滚；
2. 让 Agent 每次执行任务前创建 Git 分支或备份；
3. 在 `task.md` 中明确要求：先制定计划，再修改代码，最后运行测试并生成报告；
4. 生产分支必须通过 Pull Request 和 CI/CD 审核后再合并；
5. 不要在任务中直接暴露不必要的密钥和生产凭证。

### Q7：如何判断这套方案是否已经跑通？

可以按下面的清单检查：

1. `rclone ls us3:agent-workspace` 能访问 Bucket；
2. `df -h` 能看到 US3FS 挂载点；
3. `/mnt/us3-project/project` 能看到 Windows 同步的项目文件；
4. `claude "Hello"` 能调用星图模型服务；
5. Agent 能读取 `task.md` 并生成 `report.md`；
6. `pytest` 通过；
7. Windows 本地同步后能看到完整产物。

---

## 十三、实践中容易踩的坑

### 1. 不要把对象存储挂载目录当成本地 SSD

对象存储挂载成文件系统后，读写行为和本地磁盘不完全一样。频繁小文件读写、依赖安装目录、构建缓存等都可能影响性能。

建议排除或不要同步：

- `node_modules/`
- Python 虚拟环境目录
- 构建产物
- 临时文件
- 大量缓存文件

### 2. 不要让 Windows 和云端同时改同一个文件

如果 Windows 本地和云端 Agent 同时修改同一文件，再用 rclone 同步，很容易出现覆盖或冲突。

更稳妥的方式是：

- 明确同步方向；
- 重要变更用 Git 管理；
- Agent 修改前先创建分支；
- 人只在 Review 后合并。

### 3. 密钥不要写进仓库

公钥、私钥、模型 API Key 都应该妥善保管，不要写进公开仓库，也不要让 Agent 在报告中输出完整密钥。

### 4. Agent 不是质量保证系统

Agent 能写代码、跑测试、生成报告，但不代表它一定写对。测试、PR、CI/CD 和人工 Review 仍然必须保留。

---

## 十四、总结：真正要解决的是“持续运行 + 上下文持久化 + 结果可验证”

这套方案的价值，不是宣传某个工具有多神，而是把 AI Coding Agent 的工作流拆清楚：

- **US3 负责保存数据**：代码、任务、日志、报告和上下文集中持久化；
- **云主机负责持续运行**：避免本地休眠、断网和关机导致任务中断；
- **US3FS 负责本地化访问**：让对象存储像目录一样被 Claude Code 使用；
- **rclone 负责本地协同**：让 Windows 项目与云端工作区同步；
- **星图模型服务平台负责模型调用**：通过兼容 Anthropic 协议的 API 支撑 Claude Code 执行任务；
- **测试和报告负责验证**：用 pytest、`report.md`、Git 提交或 CI/CD 构成结果闭环。

如果你只是想让 AI 帮你补几行代码，这套方案可能过重。但如果你想让 Agent 持续完成长任务，并且每次都有上下文、有测试、有报告、有回滚手段，那把工作区搬到云端会更接近一个工程化答案。

一句话概括：

> AI 编程的下一步，不一定是再装一个插件，而是让 Agent 有稳定工作区、有长期记忆、有验证闭环。