5 分钟 · 学会一个可迁移的判定框架,并坐实到一个真实仓库
"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 在端侧的数据证据。
它的核心工作——替你发布小红书、抖音——天然要求三样云端 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 部署形态分类法(可打印)。