Dokki Docs logo

应用与自动化

应用是工作区级别的扩展。它们目前将发布、自动化、MCP客户端设置和已发布的连接器集中在一个地方。

打开应用

前往工作区 → 应用。页面显示:

  • 发布 — 管理工作区的公共站点。

  • 自动化 — 创建基于代码的工作区自动化。

  • 连接器 — 设置MCP客户端访问并管理工作区已发布的连接器。管理员可以创建和撤销连接器凭证。

自动化

自动化在工作区内运行沙盒化的JavaScript。它们适用于定期清理、标记、摘要、AI辅助维护任务以及一次性操作脚本。

一个自动化包含:

  • 名称和可选描述

  • 启用或草稿状态

  • 触发器类型和触发器配置

  • 处理程序代码

  • 运行历史

工作区成员可以查看自动化和运行历史。工作区管理员和编辑者可以创建、编辑、删除、启用、禁用和运行自动化。

触发器类型

自动化数据模型和编辑器提供了四种触发器类型:

  • 手动 — 当有人点击立即运行时触发。

  • 计划 — 当配置了DBOS调度时,根据cron表达式和时区运行。

  • 事件 — 保留用于工作区事件触发器,例如resource.createdresource.updatedresource.deletedresource.tagged

  • Webhook — 保留用于POST触发的自动化。

当前运行时对手动计划的支持最强。事件和Webhook触发器可以在编辑器中选择并存储在自动化中,但当前代码库尚未公开事件分发器或公共Webhook接收器。在这些路由存在之前,不要将事件/Webhook自动化记录为生产触发。

使用AI构建,然后直接编辑代码

自动化编辑器有一个聊天面板,用于描述您的需求。Dokki要求模型返回一个完整的JavaScript处理程序,并将其插入到可见的代码编辑器中。代码保持可编辑状态,因此您可以在保存前查看或修改它。

在运行之前保存自动化。现有的自动化可以从编辑器中手动运行,运行历史随后会刷新。

运行时限制

自动化代码在QuickJS沙盒中运行。它不能使用DOM、Node API、原始fetch、导入、require或npm包。支持的运行时是ctx对象:

ctx.trigger
ctx.workspace
ctx.resources.query(...)
ctx.resources.get(...)
ctx.resources.tag(...)
ctx.resources.untag(...)
ctx.doc.read(...)
ctx.ai.run(...)
ctx.log(...)
ctx.skip(...)
ctx.fail(...)

ctx.ai.run通过正常的AI使用路径计费。使用ctx.log使运行历史有用,当运行应停止而不被视为错误时使用ctx.skip,对于显式失败使用ctx.fail

处理程序有默认的30秒运行时间上限、64 MB的QuickJS内存限制、1 MB的堆栈限制和500条运行日志上限。

计划行为

计划触发器使用DBOS。如果未配置DBOS_SYSTEM_DATABASE_URL,则计划注册被禁用,计划自动化不会触发。更新自动化会重新连接其DBOS计划:如果自动化已启用,使用trigger_type='schedule'并具有cron表达式,则删除旧计划并创建新计划。

当工作区被归档时,计划运行会自动跳过。手动运行仍然可用于有意的测试和调试。

运行历史与操作

每次运行记录状态、持续时间、日志、触发器负载、错误消息和时间戳。运行可以以成功、错误、跳过或超时结束。

连接器关系

连接器和自动化解决不同的问题。当Dokki本身需要运行沙盒化的工作区代码时,使用自动化。当外部MCP客户端、代理或工具需要稳定访问工作区资源时,使用连接器。