ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Easel outputs目录设计与manifest编排:项目化归档的幕后实现原理

Easel outputs目录设计与manifest编排:项目化归档的幕后实现原理 Easel outputs目录设计与manifest编排项目化归档的幕后实现原理【免费下载链接】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/EaselEasel 是一个开源的 AI 社交媒体智能体发现热点趋势、创作内容、一键发布到小红书、抖音、知乎、B 站等平台。当你连续生产几十个内容项目后产物散落在各处是必然结果。Easel 用一套outputs 目录规约 manifest.easel.json编排契约解决它——每个内容项目归档为一个独立目录层间产物靠薄索引传递归档过程安全、可预览、可断点续跑。为什么 AI 内容智能体需要一套 outputs 目录规约多智能体协作生产内容时最大的工程难题不是怎么生成而是产物放哪、怎么交接。Easel 纵向编排有五个层发现 → 策划 → 制作 → 发布 → 归因早期各 SKILL 各写各的结果就是 SKILL-SPEC.md 里描述的乱象目录结构不统一中间件帧序列、片段、构建脚本和成品混放缺元数据前端无法知道哪个目录是成都文旅卡片、哪个还是草稿上游结论靠对话口传下游要重新推导一遍。Easel 的答案只有一句话一个内容项目 outputs/主题/一个目录。Easel 项目化归档的三条核心规则规则一一个主题一个目录成品与中间件分区outputs/主题/ ├── note.md / final.mp4 / card_1.png 成品用户要发/读的最终文件放项目根 ├── assets/ 中间件frames/ clips/ 构建脚本 原始素材 草稿 └── .easel.json 唯一元数据展示头 层间产物契约隐藏这条规约在 SKILL-SPEC.md 的产物管理一节 有完整定义项目名必须人类可读中文也可以测试产物统一进outputs/_scratch/系统状态登录态、发布日志一律用_前缀目录与内容项目严格隔离。规则二泛化目录名会被路径校验直接拒绝光靠文档约定不够Easel 把规约变成了代码级闸门。output_paths.py 提供validate_output_path()任何新脚本写产物前必须先过校验✅outputs/成都文旅/成品.md—— 放行❌outputs/成品.md—— 禁止散落在 outputs 根目录❌outputs/xhs/...、outputs/test/...、outputs/主题名/...—— 泛化名黑名单GENERIC_PROJECT_NAMES❌outputs/主题/../../outside.md—— 路径穿越直接拒绝⚠️_前缀系统路径 —— 必须显式allow_systemTrue且只能使用已注册的目录_login/_publish/_scratch等。对应测试 test_output_paths.py 逐条锁死了这些行为包括泛化名拒绝的参数化用例。规则三manifest 是薄索引不复制内容manifest 只存两样东西一行summary给编排层路由用和outputs[]文件路径指向真实载荷。跨层要传递的内容分成两类都以文件形式落在项目目录里产物脚本/图/视频/文案写文件后登记路径决策与意图基调、受众、钩子写进brief.md再登记。对话里不传大块内容链路可追溯、可重放。manifest 编排.easel.json 的幕后实现每个项目目录下的 .easel.json 由 manifest.py 确定性读写schema 分两部分① 展示头供前端内容库富展示字段作用兜底title人类可读标题缺省 主题名platform/kind平台 / 产物体裁article、cards、video…决定卡片图标与分组status生命周期draft / ready / published生命周期 chipcover封面文件名缺省 首张成品媒体deliverables最终成品清单前端成品区高亮依据② 层间产物契约steps[]每步记录layerdiscover/plan/produce/publish/attribute、skill、outputs[]、upstream[]、summary以及done/failed状态。四个子命令覆盖了全部读写场景细节见 manifest.py CLI 定义# 上游每步产出后登记失败也登记供断点续跑 python skills/shared/scripts/manifest.py record --topic 成都文旅 \ --layer plan --skill video-script --outputs script.md,brief.md \ --summary 3 幕结构钩子在前 3s # 下游步骤前取上游最近一步作为输入 python skills/shared/scripts/manifest.py latest --topic 成都文旅 --layer plan两个值得注意的工程细节原子写入atomic_write()先写临时文件再os.replacemanifest 永远不会处于半写状态manifest.py断点续跑失败步登记--status failed已done的层产物还躺在outputs/里可直接复用重跑时不用从头再来。manifest 自带selftest子命令一条命令验证 record/latest/meta 全链路。前端内容库如何消费这份 manifestWeb 端的内容库列表由 web/app.py 的 get_output_tree() 生成只展示项目目录跳过_前缀系统目录与根目录散文件按最后修改时间倒序。每个目录再读一次展示头_read_project_meta()封面解析带三级兜底展示头声明的cover→ 首个成品媒体 → 目录内首张图/视频这意味着即使 agent 忘了登记cover前端卡片依然有图可显示——规约有硬校验展示有软兜底。存量收敛与残渣清理安全优先的迁移工具链规约落地后存量目录怎么收敛Easel 提供了两个安全优先的脚本migrate_outputs.py默认 dry-run 只打印计划--apply增量回填.easel.json展示头纯新增字段、不覆盖已有值、不动文件加--reorganize才把公认中间件frames/、构建脚本、同名重复 jpg挪进assets/。脚本绝不删除任何文件。cleanup_outputs.sh删除测试残渣的动作固化为带注释的脚本默认 dry-run每条删除都有理由由人审阅后手动--apply——因为仓库安全策略会拦截 AI 直接rmoutputs/。日常产物管理则交给 asset-manager 技能scan/search/archive/tag/report 五个操作全部固化为脚本归档同样 dry-run 先行、冲突绝不覆盖、幂等可重跑。小结Easel 的 outputs 目录设计与 manifest 编排本质上是把多智能体产物管理拆成了四层防线目录规约一主题一目录成品/中间件/元数据三区分离路径闸门validate_output_path()让违规路径在代码层就被拒绝manifest 契约薄索引 原子写入 失败登记链路可追溯、可断点续跑收敛工具链迁移 dry-run 先行、清理脚本人工审阅安全优先。这套设计对任何做多智能体内容生产的团队都有参考价值——先把产物放哪变成确定性契约智能体才能真正被放心地串成流水线。【免费下载链接】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),仅供参考
返回列表