前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9013
  • MCP 服务器悄然变更工具描述 = 你的 Agent 在执行未知指令
  • GitHub Copilot 已上线 Claude Sonnet 5.5
  • Claude Sonnet 5.5 编程 benchmark 暴涨 6 倍,成本降三成
  • Anthropic发布Sonnet 5.5:半价达到 Opus 水平
  • Claude Sonnet 5.5 发布:性价比翻倍
  • VoiceStudio: 开源全本地语音克隆,支持646语言和MCP
  • 企业级AI代理界面设计:让记忆成为第一公民
  • OpenAI代理绕过限制:通过DNS隧道实现隐蔽通信
  • IDE 不够用:构建 Agentic 开发环境 ADE
  • Agent 记住了修复方案却错了:AfterTrace 事件恢复工具
  • 代理工具调用经济学:告别靠猜
  • OpenAI代理利用Google安全游戏漏洞抓取UN数据
  • 小米 MiMo-V2.6 开源登顶 AA 指数,超越 Kimi K3
  • 代码生成自动化了,代码审查却没有:AI辅助PR的真相
  • Cloudflare推出cf CLI:Agent化的全API命令行工具
  • Nvidia在芯片层引入AI Agent看门狗:毫秒级隔离
  • pgEdge:AI 编程助手造的数据库分支无法合并,这才是设计原意
  • 月之暗面 Kimi K3.1 曝光:100 万 Token 上下文
  • Cloudflare 开源 Forge:自动生成 API SDK 和文档
  • 英伟达推 AI Agent 安全平台:毫秒级隔离失控 Agent
  • EmDash 1.0:面向Astro的安全开源CMS
  • Cloudflare Kitesurf浏览器升级:730K平台测试通过,支持WebMCP
  • Cloudflare 收购 VoidZero 后:JS 工具链提速 10 倍
  • RAG原理解析:从第一性原理出发
  • 16 岁少年用 AI 机器人 Antares 发现微软内部 API 漏洞:涉 17 万亿行数据
  • Nvidia推出Open Agent安全平台,管控越狱AI智能体
  • Holo4:通用计算机操作智能体的底层支撑
  • 英伟达发布 AI 智能体安全平台:毫秒级异常隔离
  • 用Termux在Android手机上搭AI开发服务器
  • NVIDIA开源OpenShell安全沙箱:给本地Agent施加真实运行时限制
  • OpenRig:用 YAML 定义多 Agent 团队,Claude Code 与 Codex 协同作战
  • Cursor+Claude Opus 4.6误删Railway生产数据库的完整事故报告
  • 官方发布Claude Opus 5.5 Prompt技巧指南
  • Fireworks AI发布Ember-1:后训练版Kimi K3省40% Token
  • 生产级 AI Agent 开发:比 Prompt 更重要的 7 个架构层
  • GPT-6 与 Claude Opus 5.5 一周内相继发布
  • AI Agent 生产级基础设施的五个核心层次
  • MCP stdio Server:一次 print() 导致 19% 工具调用失败
  • AI Agent 为何生产环境总是失败:真正原因不是模型
  • Kubernetes GPU 集群部署 LLM 实战:Llama 3.3 70B 和 DeepSeek R1
  • 生产环境常青的开源 LLM:没人谈但一直出现
  • 多语言LLM推理优化:tokenize是首个瓶颈
  • 三个「成功」却实际失败的Bug:HTTP 200不等于正确
  • TypeSafe AI Jev:20个Agent生产级用例实测
  • AI智能体记忆衰减的诊断与处理指南
  • 用LLM Agent自动化TLS证书过期巡检
  • Langflow 关键代码执行漏洞:SSRF 绕过直取 root 权限
  • Simon Willison 深度回顾:2026 上半年 LLM 领域关键进展
  • 开源 AI 同事:2FA 密码不进入模型上下文的架构实现
  • Claude 950 个 Agent 发现新酶系统、Devin ARR 超 10 亿美元、阿里发布 V900 芯片
  • Laya: 3亿参数决策引擎替代LLM判断
  • 已加载 51 / 9013
8.0
热点
AI SCORE
开源项目2026-09-28 21:00

EmDash 1.0:面向Astro的安全开源CMS

Cloudflare Blog#开源#CMS#Astro
Editor brief · 编辑速览

EmDash 1.0是基于Astro的开源CMS,支持Agent友好工作流、安全沙箱插件和去中心化插件注册表。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

当我们四月一日以"WordPress 的精神继任者"推出 EmDash 时,反响之热烈难以忽视。在当月的 WordPress 大会上走了一圈,我们所到之处都能听到与会者对 EmDash 的议论。

但在一片兴奋与好奇之中,业界也有一丝疑虑:这不会是愚人节玩笑吧?

不是玩笑。今天我们正式发布 EmDash 1.0:一个稳定、免费、开源的 CMS,基于 Astro 构建,可以用于驱动生产级网站、代理机构的凭感觉编程平台,或主机服务商的自助建站体验。

开发者使用 Astro 构建,编辑通过 EmDash 管理后台管理内容,智能体则可通过 API、CLI 或内置 MCP 服务器操作。EmDash 1.0 将这些组件整合在一起,提供了经过生产验证的编辑、媒体、本地化、迁移和部署工作流。

我们同时上线了一个去中心化的插件注册表,允许开发者发布插件而无需将身份或发布物的所有权交给中心化市场,同时网站所有者可以直接在 EmDash 内发现和安装插件。

EmDash 文章编辑器。

The EmDash post editor

自 EmDash 首个 beta 版发布以来,开发者已用它搭建了真实的网站。尽管如此,我们一直听到一种合理的回应:"看起来挺有意思,等正式版了通知我。"在将站点托付给 EmDash 之前,他们想要的是对它稳定性、安全性的信任,以及升级时能保护他们的内容、我们也会全力维护它的保证。

EmDash 1.0 就是我们的回答。过去五个月,我们与贡献者和生产环境用户合作,打磨了这个 CMS 所有站点都依赖的部分:数据安全、数据库迁移、编辑工作流、本地化、插件安全、性能,以及管理后台、API、MCP 和媒体体验的可靠性。

真实部署塑造了大部分工作,发现了边缘情况,识别出了只有当网站在承载真实流量、被真实的编辑团队使用时才会暴露的需求。

举一个例子,Avulux 在长期承受 WordPress 的维护负担后,将一个定制微站点迁移到了 EmDash。由于 EmDash 是智能体的最佳拍档,使用 EmDash Agent Skills 让整个迁移在不到一天内完成。

"网站必须快速加载,而且要让我们的团队能简单地更新内容,"Avulux 创新与系统总监 Greg Barbosa 表示。"WordPress 已经背道而驰了。有了 EmDash,我们现在拥有了一个共享平台,开发者可以扩展它,营销人员可以编辑内容。"

八月,我们将 Cloudflare Blog 迁移到了 EmDash,作为"零号客户"方案的一部分。与内容工程团队的合作提供了可操作的洞察,涵盖本地化、媒体管理、管理后台编辑器体验和扩展性。能轻松处理 Cloudflare Blog 的流量负载,意味着要为每周数百万的页面浏览量、每秒高达 5,000 请求(RPS)的合法流量峰值,或偶发的 DDoS 攻击做好准备。可选的 KV 对象缓存、Hyperdrive 数据库适配器,以及 Workers Cache 兼容性都是这次迁移项目中催生的功能,现在已向所有用户开放。

公开构建,向所有人开放

CMS 位于组织网络形象的核心位置。它保管着最重要的数据,而且每天通常有数十名编辑使用。他们需要确信可以依赖它,而不必担心供应商锁定或业务优先级变化。鉴于此,EmDash 完全免费且开源,采用灵活宽松的 MIT 许可证。

没有开源开发社区,EmDash 1.0 不可能诞生。截至撰写本文时,已有超过 175 人为项目做出贡献,跨越超过 1,800 次提交。智能体编程工具的兴起既给开源项目带来了挑战,也带来了机遇,我们有意构建了一个让智能体可以帮助人类开发者的项目,而不是让开发者被智能体淹没。

我们特别感谢核心贡献者群体中最投入的一批人,他们总计为项目的各个领域带来了数百项改进。他们包括 @swissky、@danielmlr、@MA2153、@marcusbellamyshaw-cell,以及许多其他人。贡献者已将 EmDash 翻译成了 25 种语言,从阿拉伯语到乌克兰语。

特别值得一提的是 Noah Pham,他作为实习生加入 Cloudflare,后来成为 EmDash 与 Matt 并列的第二位维护者。Noah 贡献了超过 80 处修改,承担了媒体库、内容编辑器和管理后台界面的主要部分。我们说过实习生在 Cloudflare 可以交付有意义的工作——Noah 的成果如今是 EmDash 1.0 的核心。

还有很多要构建的东西,贡献也不一定意味着写代码。如果你愿意帮忙写代码、翻译、文档、测试、设计、问题分类、回答问题,或者只是欢迎新用户,加入 EmDash Discord 社区的 800 多名成员吧。

当周围的生态系统健康且得到支持时,内容管理系统才能蓬勃发展。我们很高兴看到使用 EmDash 创建新服务和产品的主题公司、插件商店、代理机构和平台。

Lexington Themes 提供 44 款 Astro 主题,并配有 EmDash 变体,为团队提供了一个美观实用的网站起点,包含可复用组件和内置内容集合。

Urumi 正在运用他们的 WooCommerce 专业知识发布 EmDash 的首个电商插件。

Empress 正在推出一款面向多品牌实体的平台,提供管理大量站点的灵活性,支持自然语言或传统 CMS 管理面板。

"Empress 令人愉悦的多站点体验离不开 EmDash 打下的基础:快速、安全可扩展、对人和智能体都易于读取和操作的站点,"Empress 创始人 Raj Makker 表示。"EmDash 解锁了对网站的强大控制权,Empress 在此基础上赋予你对任意数量站点的完全控制权。我们很高兴能参与这段旅程。"

一个不拥有生态系统的插件注册表

EmDash 插件注册表

The EmDash plugin registry

借助 EmDash 1.0,开发者可以发布沙盒化插件,网站所有者可以从 EmDash 插件注册表中发现、检查和安装它们。

传统插件注册表通常将三个角色合并在一起:提供发布者账户、持有权威的包记录,以及运营用户发现插件的目录。这很方便,但也意味着由一家公司同时掌控身份和分发权的守门人。如果账户被封禁、列表被移除、规则改变或服务关停发布者无法将相同的身份和发布历史带到别处。

EmDash 将插件与目录分离。发布者保留对其包和发布历史的控制权,而 EmDash 为用户提供了一个方便的发现和安装场所。其他服务可以索引相同的出版物,构建自己的目录,应用自己的策略,而无需开发者从头开始。

EmDash 目录对所显示的名称、描述、链接和图片应用默认内容审核。审核可以从此目录中隐藏有害或不适当的内容,但不会重写发布、获取插件所有权或抹除底层出版物。

该注册表构建在 AT Protocol(atproto)之上,这是一种去中心化网络协议,为 Bluesky 及不断增长的应用生态系统提供动力。插件作者使用 Atmosphere 账户发布,这是一种在这些应用中通用的可移植身份。包和发布记录由发布者签名并存储在发布者自己的账户中。

EmDash 托管默认注册表服务,使发布者和网站所有者无需自行运行基础设施即可使用。我们希望其他人会构建新的目录、审核系统、发布工具,以及我们尚未想象到的其他服务。为了推动这一点,我们已将所有服务作为开源软件发布,包括驱动插件注册表的聚合器、使用 Workers AI 审核包描述的标签服务,以及 Astro 实时内容加载器,让在任何 Astro 站点中轻松包含插件列表成为可能。我们很高兴看到社区会用它们构建出什么!

不存在可以随意接管插件或随意删除插件的中心化控制者。我们相信插件和注册表的安全性应该内置于代码中,而不是信任任何中心化权威或行为准则。

去中心化发布并不意味着接受未经核验的代码。Atproto 仓库使用签名的默克尔搜索树(Merkle Search Tree),因此包含证明(inclusion proof)将精确的发布记录与发布者账户的签名提交关联起来。EmDash 因此可以独立核验记录,而不是信任目录的副本。随后它会检查插件的校验和、包名、版本、请求的访问权限以及任何所需的构建溯源信息,并确认下载的包与签名记录相匹配。

目前注册表支持免费插件,我们的目标是在未来添加付费插件支持,采用与现在相同的去中心化模式。我们密切关注着 Atproto Spaces Alpha。任何人都应该能够运行一个安全的付费插件市场。我们希望发布者能够通过他们的软件获利。

目前,插件作者可以发布有用的软件而无需征得 EmDash 的许可——网站所有者可以在运行之前准确了解该软件被允许做什么。

插件的清晰边界

插件是 CMS 生态系统的核心。它们让网站开发者无需重建相同的集成和工作流程,同时为专家提供了分享最佳实践的方式——并有可能建立软件业务。

AI 智能体使这种复用变得更加有价值。AI 智能体可以构建一次性集成,但它仍然需要理解问题、生成和测试代码,并在之后维护它。插件则捕获了这些工作。另一个 AI 智能体可以安装和配置一个经过验证的解决方案,而不是从头开始。

这种便利性带来了严重的安全问题:插件是你没有编写的代码,却与有价值的内容和客户数据一起运行。在 WordPress 中,插件与应用其余部分运行在同一个 PHP 进程中,可以直接访问其数据库、文件系统和网络。联系表单插件在技术上可以读取未发布的文章、修改另一个插件,或将数据发送到任何地方。网站所有者必须相信它不会这样做——并且相信未来的更新不会改变其行为。

沙箱化 EmDash 插件采用不同的模型。每个插件在隔离的运行时环境中运行,只能访问自己的私有存储,而不能访问网站的内容、媒体、用户、密钥、环境、文件系统或网络。只有当插件声明了额外能力并获得站点管理员批准时,它才能获得这些能力。

WordPress 和 EmDash 运行时架构的对比。

A comparison of the WordPress and EmDash runtime architecture.

安装沙箱化插件因此更像是安装移动应用而不是传统 CMS 插件。EmDash 在运行前显示插件想要执行的操作,运行时则将其限制在那些已批准的能力范围内。

这使得插件能够执行有用的工作而无需获得无关的访问权限:

  • 为搜索索引已发布的文章
  • 读取内容并联系搜索服务
  • 编辑文章或联系其他主机
  • 优化上传的图片
  • 读取和管理媒体
  • 发送发布通知
  • 观察发布并发送电子邮件
  • 更改正在发布的内容
  • 提供可配置的 Webhook
  • 读取选定的 events 并联系公共目标
  • 访问私有网络或其他插件的存储

重要的一点是,这些能力是独立的。授予插件访问媒体的权限不会同时暴露用户或未发布的内容。允许它联系一个服务不会开放整个网络。这些边界由运行时强制执行,而不是留给插件作者的良好意愿。

这种隔离并不局限于 Cloudflare 部署。在 Cloudflare 上,EmDash 通过 Worker Loader 将每个插件作为 Dynamic Worker 运行。在 Node.js 上,EmDash 启动 workerd——开源的 Workers 运行时——作为一个单独的进程,并在其内部将每个插件作为隔离的服务运行。插件在这两个平台上使用相同的清单(manifest)和基于能力的 API。请参阅插件沙箱文档以了解设置和运行时的差异。

Cloudflare Email Sending 是新 EmDash 插件注册表中众多可用插件之一。

Cloudflare Email Sending is one of many plugins available in the new EmDash plugin registry.

从单个站点到网站平台

EmDash 可以为单个 Astro 站点提供动力,但也专为构建网站创建和托管产品的公司而设计。

Workers for Platforms 让这些公司能够将每个客户的站点作为 Worker 运行在 Cloudflare 的全球网络上。他们无需为每个站点配置服务器或自行构建周围的网络和部署基础设施。这使他们能够专注于客户用于创建和管理网站的体验。

EmDash 为这种体验提供内容层。平台可以直接使用管理界面,在 API 和 CLI 上构建自己的界面,或在内置的 MCP 服务器前放置一个 AI 智能体。面包店老板可以用简单的语言请求更改营业时间;平台的 AI 智能体会处理读取、更新和保存内容的工作。

沙箱化插件模型也为平台提供了在众多客户站点上提供扩展的更安全方式。插件只接收对内容、媒体、用户、电子邮件或外部服务的已批准访问权限,而不是以对整个应用的无限制访问权限运行。平台可以运行自己的插件市场并访问完整的注册表——或策划精选的预批准插件。

我们一直在寻找愿意与我们共同开发新型 AI 智能体导向 CMS 体验的其他托管合作伙伴。如果您想了解更多关于与 EmDash 重新开始的信息,请联系我们。

EmDash Build:开源 AI 网站构建器

我们还发布并开源了 EmDash Build 的 alpha 版本,这是一个 AI 网站构建器,托管提供商、网站构建器和平台可以自行运行并与自己的系统集成。今天可以在 build.emdashcms.com 试用演示,或探索代码。

如果你现在要为自己或客户构建一个网站,你不会从 IDE 开始。你更可能从聊天框开始,向 AI 智能体描述你想要什么。但一旦你有了东西,你会发现更改简单的东西可能需要你回到那个提示框,要么掷骰子碰运气,要么为一行修改花费积分。

EmDash Build 创建的是一个 EmDash 站点,它带来了完整的堆栈:服务端渲染的 Astro 页面、数据库、媒体存储和管理界面。AI 智能体根据简报设计内容模型,通过 EmDash 的 MCP 服务器填充内容,并编写显示这些内容的页面。之后,你或你的客户可以直接在页面上编辑文本、安排帖子发布,或让 AI 智能体为你做这件事。

在 EmDash Build 中,每个项目都有自己的 Cloudflare Sandbox 容器,其中基于 Agents SDK 构建的 AI 智能体验证自己的工作成果。Artifacts 将每次更改作为 git 提交进行跟踪。当站点发布时,内容会移动到生产 EmDash 站点,并部署到主机的 Workers for Platforms 命名空间。

在 EmDash Build 中制作的网站:从一个提示开始,现在运行在完整堆栈上。

A website made in EmDash Build: started with a prompt, now living on the full stack.

入门与参与

随着 EmDash 1.0 的发布,现在正是迁移公司营销网站或让 AI 智能体启动你一直在谈论的副项目的好时机。在此处试用 EmDash 演示站点。

要通过 CLI 在本地创建新的 EmDash 站点,请运行:

npm create emdash@latest

或者你也可以通过下面的 Cloudflare 仪表板执行相同的操作:

如果你已准备好开发 EmDash 插件,我们的文档有逐步指南,教你如何创建插件并将其发布到注册表。

我们也欢迎你加入我们不断增长的贡献者社区 Discord。你不必一定是工程师才能参与——我们欢迎翻译人员、Issue 分类管理者、用户体验设计师、营销人员以及对内容管理系统未来感到兴奋的所有人。

Original source

本文由 AI 翻译整理自 Cloudflare Blog,原文版权归原作者所有。

阅读英文原文
上一篇
英伟达推 AI Agent 安全平台:毫秒级隔离失控 Agent
下一篇
Cloudflare Kitesurf浏览器升级:730K平台测试通过,支持WebMCP