Easel架构深度剖析:四层Prompt Stack如何驱动一个稳定的社媒Agent
【免费下载链接】EaselAn open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。项目地址: https://gitcode.com/gh_mirrors/easel3/Easel
Easel 是一个开源的 AI 社交媒体智能体(社媒 Agent),覆盖小红书、抖音、知乎、B 站等平台,帮你完成发现热点、创作内容、一键发布和数据复盘的全流程。为什么它跑久了不"跑偏"、不"串味"?关键不在模型,而在它的四层 Prompt Stack(提示词分层栈)架构——把人格、规则、环境、技能拆成四层,各司其职、按需加载。这篇文章带你从新手视角看懂这套架构是如何让社媒 Agent 稳定运行的。
🎯 先说痛点:社媒 Agent 为什么会"不稳定"
如果你自己写过 Agent,多半踩过这几个坑:
- 一个巨型 system prompt:人格、规则、路径、技能全糊在一起,改一处牵动全身,还白白烧 token;
- 多账号记忆串号:两个账号画像共用一个全局记忆文件,A 账号的写作偏好"污染"了 B 账号;
- 技能清单过时:写死"去调某某 skill",技能一改,提示词就过期;
- 上下文爆炸:所有技能的资料常驻 prompt,越跑越慢。
Easel 的解法很朴素:把提示词拆成四层,每层只管一件事。官方架构说明见 docs/prompt-stack.md。
🗺️ Easel 整体架构一张图
Easel 围绕五个连续工作流展开:发现 → 策划 → 创作 → 发布 → 归因(分析数据并沉淀回账号画像)。提示词栈(Prompt Stack)就是支撑这五层工作流的"地基":
Layer 1: SOUL.md 人格 + 能力总览(常驻) Layer 2: AGENTS.md 分工规则 + 编排逻辑(常驻) Layer 3: CONTEXT.md 项目路径信息(脚本自动生成) Layer 4: SKILL 技能文件(被触发时才加载)组合顺序来自 docs/prompt-stack.md,每一层的职责互不越界,这是稳定性的第一来源。
🧱 四层 Prompt Stack 逐层拆解
Layer 1:SOUL.md —— Agent 的"灵魂"
源文件:openclaw/workspace/SOUL.md
这一层定义 Easel是谁:创作者的社媒内容"搭子"——既是懂策略的操盘手,也是能上手干活的制作伙伴。它只写三件事:
- 人格:务实、诚实、不说废话,"先尽力做,做不到才直说";
- 能力总览:按"找灵感 / 定策略 / 做内容 / 发出去 / 看效果"五个类目写"能做什么",刻意不写具体 skill 名——因为技能清单会变,写死了就会过时;
- 自我认知:遇到任务先想"怎么帮他做成",而不是"我做不了"。
这个设计有个精妙之处:SOUL.md 只给"态度",不给"操作"。具体怎么执行属于下一层,人格层保持精简且永远新鲜。
Layer 2:AGENTS.md —— 业务编排的"规则手册"
源文件:openclaw/workspace/AGENTS.md
这是最重要的一层,承载核心业务逻辑:
- 五层分工:发现(热点、爆款)、策划(选题、脚本)、制作(图文音视频,产物统一写入
outputs/)、发布(合规、平台适配)、归因(数据回流); - 先路由 SKILL:每轮任务先找精确匹配的技能文件,按它的流程执行;
- 自检才算完成:"不以计划、空壳文件冒充成品",交付前必须自检;
- 安全门禁:对外发布前由 skills/shared/scripts/content_guard.py 扫描敏感信息(API Key、内部路径等),人设一致性评分低于 80 分会提示偏离点。
你可以把 SOUL.md 理解成"性格",AGENTS.md 就是"行为守则"——它决定 Agent 什么时候该问、什么时候该做、什么时候必须停。
Layer 3:CONTEXT.md —— 脚本生成的"运行时环境"
这一层不靠人手写,而是由同步脚本 openclaw/sync.sh 自动生成,内容很轻:项目根目录的绝对路径、outputs/(产物)、assets/(素材)、profiles/(账号画像)分别在哪。
它解决一个很实际的问题:Agent 工作目录(OpenClaw workspace)和项目目录不是同一个,跑项目脚本前必须先从 CONTEXT.md 读出项目根路径再cd过去。换一台机器,重跑一次 sync.sh 就自动更新,无需改任何提示词。
Layer 4:SKILL.md —— 按需加载的技能库
技能库位于 skills/openclaw/(五层业务技能,113 个)和 skills/shared/(跨技能共享脚本),规范见 docs/SKILL-SPEC.md。每个技能内部还有一个"三层加载"机制:
| 层 | 内容 | 加载时机 | token 开销 |
|---|---|---|---|
| Metadata | frontmatter(名字 + 描述) | 常驻,用于技能路由 | 极小 |
| Instructions | SKILL.md 主体 | 技能被触发时 | 中等 |
| Resources | references/ + scripts/ | 执行中按需读取 | 按需 |
核心原则一句话:SKILL.md 只写"怎么做",领域知识放 references/,代码脚本不进 prompt。不用的技能完全不占上下文——这就是为什么 Easel 能装上百个技能而不撑爆 token。
🔬 两个让稳定性"翻倍"的工程细节
画像消息内联注入:多账号永不串号
很多 Agent 用一个全局USER.md存账号信息,多账号并发时就出竞态。Easel 的做法(见 easel/persona.py):
- 每个账号画像是
profiles/<名字>/目录下的六维文件(定位、风格、受众、平台、偏好红线、记忆),模板在 profiles/_template/; - 切换画像时不写任何全局文件,而是把
我当前使用的画像是「X」。作为消息前缀内联传给 Agent,每个请求自包含; - 全局
MEMORY.md由同步脚本保持为空,账号长期记忆只存在各自画像的memory.md里。
结果:三个入口(Web / CLI / 单轮调用)统一走同一套画像逻辑,并行会话互不覆盖。
sync.sh:一份同步脚本,锁死所有上下文
openclaw/sync.sh 是这套架构的"装配线",一次执行完成:
- 全量同步技能库与共享层到 Agent workspace;
- 拷贝 SOUL.md / AGENTS.md,并把项目根路径追加进 AGENTS.md 尾部(每轮注入,配置检查永远有正确基准);
- 生成 Layer 3 的
CONTEXT.md; - 用软链接把
outputs/和profiles/接进 workspace——Agent 写产物自动归位,永不落错地方; - 清空全局记忆、清理残留的旧画像文件,防止"污染"。
这套机制保证:提示词栈的任何一层更新,都是可重复、可验证的,而不是手工维护的一堆副本。
🔄 真实场景走一遍:热点到发布
以"把一篇论文解读做成小红书卡片并视频"为例,看四层如何协作(真实产物示例来自 Easel 工作流):
| 步骤 | 谁在工作 |
|---|---|
| 1. 用户说"帮我解读这篇论文并发小红书" | SOUL.md 决定"这是我能做成"的态度 |
2. Agent 路由到paper-explainer技能 | Layer 4 加载 SKILL.md + 按需读 references/ |
3. 执行前先cd到项目根跑脚本 | Layer 3 的 CONTEXT.md 提供路径 |
4. 凝练当前画像的风格/红线,产出到outputs/<主题>/ | AGENTS.md 的制作流程 + 自检规则 |
| 5. 发布前内容安全扫描 + 人设一致性评分 | AGENTS.md 的发布门禁 |
| 6. 发布后数据回流、有效经验写入画像 memory | 归因层闭环 |
全程没有"记忆串号"或"路径漂移"的风险,因为每一层的信息来源都是单一且确定的。
📋 新手能抄走的 4 条设计原则
如果你也想做一个稳定的 Agent,Easel 的 Prompt Stack 给出的经验可以直接迁移:
- 分层比分词重要:人格、规则、环境、技能分文件管理,每层单一职责;
- 能生成的别手写:路径类上下文由脚本生成(Layer 3),永远和环境一致;
- 能按需的别常驻:技能库上百个也不烧 token,靠 frontmatter 路由 + 触发时加载;
- 记忆按作用域隔离:每个账号一个目录,消息内联传画像,拒绝全局大杂烩。
🚀 三步跑起来
git clone https://gitcode.com/gh_mirrors/easel3/Easel cd Easel bash setup.sh # 引导式安装:Python 虚拟环境 + 模型配置 + 技能同步Windows 原生安装用 PowerShell 执行.\setup.ps1。安装完成后:
source .venv/bin/activate easel doctor # 检查运行环境 easel ping # 测试 gateway 与 Agent 连通性 easel web # 启动 Web 工作台(默认 7860 端口)在 Web 工作台的"画像"页面建一个账号画像,然后直接对话即可——四层 Prompt Stack 会在幕后自动工作。
📚 延伸阅读
- 架构原文:docs/prompt-stack.md
- 技能接口规范:docs/SKILL-SPEC.md
- 五层能力地图:docs/skill-function-mapping.md
- Agent 规则手册:openclaw/workspace/AGENTS.md
- 人格定义:openclaw/workspace/SOUL.md
- 上下文同步脚本:openclaw/sync.sh
- 已知问题:docs/known-issues.md
Easel 的架构哲学可以浓缩成一句话:让每一层提示词只做它最擅长的事,稳定性就是设计出来的,而不是碰运气碰出来的。
【免费下载链接】EaselAn open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。项目地址: https://gitcode.com/gh_mirrors/easel3/Easel
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考