随着Claude Code、OpenAI Codex等Coding Agent工具的普及,越来越多开发任务开始从“人写代码”转向“人给目标、Agent执行”。

但在实际使用过程中,很多开发者会遇到一个共同的问题:Agent的运行环境往往依赖本地电脑。当笔记本休眠、网络中断或设备关机后,正在执行的任务也会随之停止。每次重新启动Agent,都需要重新加载上下文和理解项目状态,影响连续性和执行效率。

一个能够持续在线、保留上下文并支持自动执行的Agent运行环境,会带来更好的协作和开发体验。

一、优刻得US3+云主机:让Agent在云端不间断工作

实用的方案是将Agent的运行环境迁移到云端。

项目文件统一存储在优刻得US3对象存储中,通过挂载方式作为Agent的工作目录;同时使用云主机作为长期在线的执行环境。无论开发者使用哪台设备访问,看到的都是同一份项目数据。代码修改、测试结果、任务记录以及Agent产生的各类文件都会实时保存到对象存储中。

即使关闭浏览器、断开远程连接,云端任务依然可以继续执行。当再次连接时,可以直接查看最新进展,而无需重新启动整个流程。

最终形成的工作流是:

接收任务→读取项目上下文→制定执行计划→修改代码→运行测试→生成结果报告→等待人工确认或继续执行下一步任务。

图片

  • Windows本地代码通过rclone实时或定时同步到US3。

  • Ubuntu云主机通过US3FS把同一个bucket挂载到本地目录/mnt/us3-project。

  • Claude Code在这个目录下工作,所有产物一并存入US3。

  • AstraFlow星图模型服务平台可以直接调用API,让Agent无缝调用。

二、手把手配置教程

1. 创建US3存储空间(Bucket)

  1. 登录优刻得控制台 → 对象存储US3 → 创建存储空间

图片

b. 记录下:Bucket名称(如agent-workspace)、公钥/私钥(API 密钥管理页获取)

图片

后续rcloneUS3FS都需要这2个信息。

2. Windows本地:用rclone同步代码到US3

a. 下载rclone Windows版,解压并把rclone.exe加入PATH

图片

b. 打开cmd或Powershell窗口,输入rclone version验证rclone已配置成功

图片

c. 配置远程连接(选择S3兼容存储),在cmd或Powershell下运行下面的命令,交互式输入:

rclone config
n/s/q> n   #创建新的配置文件
name> us3   # 自己起个名字
storage> 4    # 输入数字选择 Amazon S3 Compliant Storage
provider> 47   # 选择 S3 兼容提供商 US3 Object Storage
env_auth> 1     # 不通过环境变量配置AK信息,2是通过环境配置AK信息
access_key_id> access_key  #你的公钥(4.1第2点中的公钥)
secret_access_key> secret_access_key   #你的私钥(4.1第2点中的私钥)
endpoint> 2   #根据实际情况选择
acl> 1         #默认为private
storage_class> 2   # 标准存储Standard storage class

其他选项一路回车默认,最后确认保存,最后一步选择“q”
如果想要再修改配置文件,Windows系统可以在"C:\Users\换成你的用户名\AppData\Roaming\rclone\rclone.conf"修改rclone.conf文件
比如chunk_size = 8M  #当前支持8M

d. 测试连通性(在cmd或Powershell下,后面无单独说明都是在cmd下运行):

rclone ls us3:agent-workspace
2026/05/26 21:20:36 NOTICE: s3: s3 provider "US3" not known - please set correctly
#表示已列出配置文件us3对应的bucket:agent-workspace,当前bucket下没有文件和目录,是一个空目录

e. 同步本地的的项目(以D:\my-project为例):

#首次全量上传
rclone sync D:\my-project us3:agent-workspace/project --progress
#以后每次修改后增量同步(也可以写个bat定时运行)
rclone sync D:\my-project us3:agent-workspace/project --exclude node_modules/

到了这一步,你本地的代码已经“上云”了。

3. Ubuntu云主机:挂载US3到本地目录

a. SSH登录你的Ubuntu云主机(建议2核4G以上),如果没有创建可以在云主机控制台创建

b. 安装US3FS(以amd64为例),下载链接:

curl -o us3fs https://ufile-release.cn-bj.ufileos.com/us3fs/us3fs_2.1.5
# 给予x权限
chmod +x us3fs
# 移动到可执行目录下 
sudo mv us3fs /bin/us3fs

c. 配置访问凭证,参考示例:

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

写入你自己的对象存储令牌的key:

access_key: ************************************
secret_key: ************************************
endpoint: internal-cn-wlcb.ufileos.com
hosts: []
#endpoint根据US3所在地域修改为对应域名

地域和域名,建议和云主机在一个地域,这样云主机与对象存储US3可以通过内网互访,速度大大提升。

d. 挂载bucket:

sudo mkdir -p /mnt/us3-project
sudo us3fs -l --uid=1000 --gid=1000 -o allow_other agent-workspace /mnt/us3-project
#如果挂载提示Segmentation fault等错误,可以先用us3fs --update看下是否依然报错,如果还报错可能是us3fs文件错误,需要重新下载

e. 运行df -h看到挂载点即成功,可以看到最下方多了一个1.0P的us3fs

图片

f. 验证:ls /mnt/us3-project/project 应能看到Windows同步上来的文件。

图片

现在Ubuntu和Windows面对的是同一份实时数据*。*

4. 安装LiteLLM并配置模型API(类似CCSwitch)

a. 安装Python环境
sudo apt update
sudo apt install -y python3 python3-pip python3-venv
b. 创建虚拟环境
mkdir ~/litellm
cd ~/litellm
python3 -m venv venv
source venv/bin/activate

c. 安装LiteLLM

pip install "litellm[proxy]==1.88.1"
#验证:
litellm --version
#返回类似:LiteLLM: Current Version = 1.88.1

d. 编辑配置文件,配置模型API

#创建配置文件:
vi ~/litellm/config.yaml
#以Qwen3.7-Max代替claude-opus-4-7为 示例:
model_list:
# ===== Claude 映射 =====
  - model_name: claude-opus-4-7
    litellm_params:
      model: openai/qwen3.7-max
      api_base: https://api.modelverse.cn/v1
      api_key: aw8Zs66jD534Ec
#api_key: 更换为星途API平台KEY
# 新加坡节点:https://api-sg.umodelverse.ai
# 大陆节点:https://api.modelverse.cn
# 美国节点:https://api-us-ca.umodelverse.ai

e. 启动LiteLLM

source ~/litellm/venv/bin/activate
litellm --config ~/litellm/config.yaml --port 4000
#成功后会看到类似下面的提示:
LiteLLM: Proxy initialized with Config, Set models:
    claude-opus-4-7   #实际的模型是国内注流的qwen3.7-max,只是显示名称为claude-opus-4-7
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:4000 (Press CTRL+C to quit)

f. 测试代理

#4.4.5的窗口先不要关闭,新开一个窗口,可以加上 | jq,展示更清晰
curl http://127.0.0.1:4000/v1/models |jq
#返回以下信息:
{
  "data": [
    {
      "id": "qwen3.7-max",
      "object": "model",
      "created": 1677610602,
      "owned_by": "openai"
    }
  ],
  "object": "list"
}

g. 将LiteLLM设置为后台服务(可选)

sudo vi /etc/systemd/system/litellm.service
#添加以下内容
[Unit]
Description=LiteLLM Proxy
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/litellm
ExecStart=/home/ubuntu/litellm/venv/bin/litellm \
  --config /home/ubuntu/litellm/config.yaml \
  --port 4000
Restart=always
[Install]
WantedBy=multi-user.target

加载litellm服务

#启动
sudo systemctl daemon-reload
sudo systemctl enable litellm
sudo systemctl start litellm
#查看
systemctl status litellm

图片

5. 安装Claude Code工具,并接入优刻得星图平台API模型

a. 安装Node.js与Claude Code CLI

# 安装必要组件:
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
#返回 v24.15.0 或对应版本
npm -v
# 返回 11.12.1 或对应版本
# 安装 Claude Code
sudo npm install -g @anthropic-ai/claude-code@2.1.150
# 验证:
claude --version   
# 返回 2.1.150 (Claude Code) 或对应版本,如果使用较新的版本遇到

b. 配置环境变量

从星图控制台-密钥管理-获取API

Claude Code接入指南,编辑配置文件~/.claude/settings.json

# 如果~/.claude目录不存在,可以先创建该目录mkdir -p ~/.claude
{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:4000",
    "ANTHROPIC_API_KEY": "dummy"
  }
}
# dummy 可以随便写;
# 真正的 Key 在 LiteLLM 中配置。

验证:

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

图片

6. 让Agent “记住”上下文——持久化项目与会话

切换到项目路径,如:/mnt/us3-project,在Claude Code工具中将所有的流程跑完后,再将project-a目录下的文件上传到对象存储

只要项目目录在/mnt/us3-project下,Claude Code的所有工作文件(.claude/ 目录、终端日志、计划文件)都会存入US3。

a. 进入到项目所在目录启动运行:

cd /mnt/us3-project  #切换到项目所在目录
claude           # 启动Agent

b. 使用Claude Code的 --resume继续上次会话:

当云主机重启或Agent意外退出后,你可以这样回到之前的状态:

cd /mnt/us3-project
claude --resume

Claude Code会自动读取.claude/中的会话记录,接着上次给的指令往下执行。

三、跑一个完整Demo:从需求到代码提交全自动

场景:给Agent 一个任务——“在app.py中增加一个/health健康检查接口,并写单元测试”。

a. 为Agent准备一个简单的Python Flask项目(本地写好然后同步,或直接在云主机创建):

mkdir -p /mnt/us3-project #根据项目情况选择或cd到对应目录
cd /mnt/us3-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

b. 编写agent规则,CLAUDE.md,将规则放到.claude目录,Claude Agent会自动加载:

你是一个自动运行的coding agent。
工作规则:
1. 优先读取 task.md。
2. 自动分析项目结构。
3. 可以读取、修改、创建文件。
4. 遇到错误时自行修复。
5. 自动运行 pytest。
6. 如果测试失败,继续修改直到全部通过。
7. 不需要询问用户确认。
8. 所有任务完成后生成 report.md。
9. 除非任务全部完成,否则不要停止。

c. 编写任务文件task.md

# 开发任务
请循环执行:
1. 读取 app.py;
2. 完成需求;
3. 执行 pytest;
4. 如果测试失败:
   - 分析错误;
   - 修改代码;
   - 再次执行 pytest;
5. 重复以上步骤,直到全部测试通过;
6. 最终生成 report.md;
不要询问用户确认。
只有所有测试通过后才结束任务。

d. 启动Agent读任务并执行

cd /mnt/us3-project/project   #切换到项目所在目录
claude  #启动claude

在Claude Code界面中,告诉它:

请读取.claude下的CLAUDE.MD,按照其中的规则工作.

Agent 会依次修改代码、编写测试、运行pytest,失败时还会自动修复,直到通过,然后输出report.md

e. 检查结果

ls /mnt/us3-project/project
__pycache__  app.py  env.txt  report.md  task.md  tests
cat report.md # 查看报告执行情况

图片

f. 提交代码(闭环): 你可以直接在云主机上将代码push到Git仓库(只要项目本身是git管理的),或通过CI/CD发布。Agent也可以在任务中被要求执行git add . && git commit -m "feat: add health check" && git push

g. 将对象存储的文件拷贝到本地Windows

#第一次建议使用copy命令
rclone copy us3:agent-workspace/project-a D:\my-project -P
#以后涉及增量再使用sync命令,以下命令供参考:
#rclone sync us3:agent-workspace/project D:\my-project --exclude node_modules/
#可以过滤掉包含“.”开头或者“.swp”、“.swx”结尾的文件

h. 你在Windows上就能看到全部产物,包括Agent的详细报告。

图片

如果项目比较复杂或有非常频繁的读写请求,可以先在云主机的数据盘上创建单独项目目录,执行完成后再把结果上传到对象存储。

四、进阶:用优刻得沙箱服务简化环境搭建(沙箱使用s3fs网络协议)

如果不想手动管理云主机和代理,可以直接用优刻得的Agent沙箱。沙箱里面预置了Claude Code工具并且已经打通了星途模型,只要通过SDK或CLI提交任务就行。

a. 环境配置

export AGENTBOX_API_KEY=your_api_key

b. 安装Python SDK

#目前ubuntu、macOS等不能直接在本地使用pip安装,建议通过虚拟环境安装
python3 -m venv sandbox-env
source sandbox-env/bin/activate
pip install ucloud-sandbox

c. 创建第一个沙箱,示例(Python SDK):

ucloud-sandbox-cli sbx cr claude-code
#根据提示输入控制台的密钥,并回车
Enter API Token:  
#输入密钥后即已进入claude-code沙箱环境

d. 进入claude-code沙箱环境,查看系统当前目录结构

#执行df-h看是否当前目录结构
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        12G  2.1G  9.3G  19% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           1.6G   48K  1.6G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock

e. 安装s3fs

#因系统为最小化安装,也没有vim、nano等工具,所以可以一并安装
sudo apt update && sudo apt install s3fs vim -y

f. 配置密钥,格式为 AccessKeyID:SecretAccessKey

#写入凭证, 文件内容格式:access-token:secret-access-token
sudo vim /root/.passwd-s3fs
#设置权限
sudo chmod 600 /root/.passwd-s3fs

g. 挂载US3对象存储

# 创建目录:
mkdir -p /home/user/us3-project
# 创建一个挂载us3的sh文件,如:mount_s3fs.sh,并添加以下内容:
sudo vim mount_s3fs.sh
sudo s3fs agent-workspace /mnt/us3-project \
    -o passwd_file=~/.passwd-s3fs \
    -o url=http://internal.s3-cn-wlcb.ufileos.com \
    -o use_path_request_style \
    -o allow_other \
    -o multipart_size=8 \
    -o multireq_max=8 \
    -o parallel_count=32 \
    -o dbglevel=info \
    -o curldbg
# 挂载对象存储
bash mount_s3fs.sh #挂载成功 df -h 一下
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        12G  2.2G  9.3G  19% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           1.6G   48K  1.6G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
s3fs             16E     0   16E   0% /home/user/us3-project

h. 进入项目空间

cd /home/user/us3-project/project
#可以ls一下当前目录下有哪些文件(根据项目情况下面显示的文件、目录可能不一样)
4913  app.py  app.py~  app_py.swo  app_py.swp  sandbox-env  task.md  task_md.swp  tests  venv 

i. 启动Claude Code工具,按提示输入星图API平台的KEY

#会看到如下提示:
Enter API Token: 
✓ Token saved to environment variable
ℹ Configuring Claude settings...
✓ Updated settings: /root/.claude/settings.json
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Current Configuration:
  • Base URL: https://api.modelverse.cn
  • Token: az1F3lE8ra...45D8
  • Experimental Betas: Disabled

j. 启动任务

/home/user/us3-project 路径下有一个task.md文件,请严格按照 task.md 的要求完成所有步骤,最后生成报告

k. 执行完成

任务结束后可能返回如下所示的信息
cat > report.md << 'MDEOF'
   # 执行报告
   ## 任务来源
   `/home/rexwt5/us3-project/project/task.md`
   ## 任务清单与完成情况
   | # | 任务 | 状态 |
   |---|------|------|
   | 1 | 读取 `app.py` | 完成 |
   | 2 | 添加 `/health` 路由,返回 `{"status": "ok"}`200 | 完成 |
   | 3 | 创建 `tests/test_health.py` 并编写测试 | 完成 |
   | 4 | 运行 pytest 全部通过 | 完成 |
   | 5 | 生成 `report.md` | 完成 |

● 任务全部完成。
  关键产物
  - app.py — 修复了 __name__ 写法并新增 /health 路由(返回 {"status": "ok"}、HTTP 200)
  - tests/test_health.py — 3 个 pytest 用例(状态码、content-type、JSON body)
  - report.md — 执行报告
  pytest 结果:3 passed in 0.10s。

  额外说明:原 app.py 存在语法错误(Flask(name) / if name == 'main':),已顺手修正;项目自带的 venv/sandbox-env
  为空壳,临时在系统 Python 上安装了 flask 与 pytest 以完成运行。 

l. 可以在当前系统,也可以在对象存储控制台看到任务结束后产生的目录和文件

图片

这种方式下,沙箱本身是托管服务,根本不用担心云主机运维,而且模型适配官方已经做好,即开即用。

五、总结

整个方案的精髓在于 “分离关注点” :

  • 存储层(US3) 保证代码与上下文永不丢失

  • 计算层(云主机/沙箱) 提供 7×24 永不掉线的执行环境

  • 模型层(星途 + 代理) 提供稳定、高性价比的 AI 能力

你只需要在Windows上写task.md,偶尔Review结果,剩下的事情全部交给那个住在云上的Agent。真正实现 “你定目标,它出结果”,而不是你替它每次开机。


Tips*:*

  • 如果对成本敏感,可以把云主机设成竞价实例,配合启动脚本自动挂载 US3 并拉起 Agent 会话。

  • 建议对 US3 开启版本控制,这样 Agent 改坏的代码也能随时回滚。

更多推荐