Easel 架构课程 · 第 1 课

Easel 是端侧 agent 还是云端 agent?

5 分钟 · 学会一个可迁移的判定框架,并坐实到一个真实仓库

先给结论:Easel 是「端侧 harness(模型外的运行时容器)+ 云端大脑」的 local-first agent。 编排、工具、状态全在你本机;只有模型推理(和可选的 AI 生图/视频/音乐)调云端 API。 它没有任何自有云端编排服务。

一、为什么"端 / 云"二分太粗

"agent 在哪"是个坏问题,因为一个 agent 至少由五块组成,分布在不同机器上。 好问题是把五块拆开,逐个问"这个进程 / 这份数据在哪台机器上":

组件Easel 的实现在哪跑
编排 / Agent 循环OpenClaw gateway 进程本机 loopback:18789
工具执行48 个确定性 Python 脚本、FFmpeg、Playwright 浏览器发布本机
状态与记忆会话 ~/.openclaw-easel/、登录态 ~/.easel-browser-profiles/、画像 profiles/、产物 outputs/本机文件系统
模型推理Claude / GPT / Gemini API云端 API
重资源生成(可选)AI 视频 / 音乐 / TTS 服务云端 API

二、代码级证据(三处就够)

# ① gateway 只绑回环 —— 编排层不出本机
$ grep "bind" scripts/gateway.sh
openclaw --profile easel gateway run --force --bind loopback   # :136

# ② Web 流式靠 tail 本机文件 —— 进程间通信用文件,纯端侧思维
#    gateway 写 /tmp/easel-raw-stream.jsonl,web 后端 tail 它转 SSE

# ③ 唯一的对外监听是 Web UI,且注释写明理由(Docker 端口转发兼容)
$ sed -n '4060p' web/app.py
# 监听 0.0.0.0(非仅回环)是为了兼容 Docker/远程容器端口转发访问 Easel 的场景

登录态、会话历史、平台 Cookie 全部落在 ~/.easel-browser-profiles/ 和 ~/.openclaw-easel/——这些是组件 2、3 在端侧的数据证据。

三、为什么 Easel 必须端侧(这才是考点)

它的核心工作——替你发布小红书、抖音——天然要求三样云端 agent 拿不到的东西:

① 你的登录态。发布靠你本机浏览器里的平台 Cookie;云端沙箱没有"你的"身份。
② 你的出口 IP。平台风控盯机房 IP(Easel 代码里就处理小红书"IP 存在风险"错误码 300012); 你家的 IP 反而干净。
③ 大媒体文件的零上传。视频剪辑在本地 FFmpeg 完成,几十 GB 素材不用先传云端。

顺带得到隐私承诺:"私人助手"——账号数据不出本机,只有发布的内容本身和 LLM 请求出去。

四、检索练习

五、下一步

一手源推荐:打开本地克隆 /Users/lei/Code/Projects/easel-repo/scripts/gateway.sh,通读一遍 176 行—— 你会看到端侧 agent 的完整生命周期管理(拉起 adapter、导出流式环境变量、setsid 剥离启动、healthz 探活)。 比任何二手讲解都扎实。

配套速查表:Agent 部署形态分类法(可打印)。