
天天
你有没有遇到过这种情况:写个后端服务,API 用 Express,定时任务用 node-cron,队列用 BullMQ,然后还得搞个 Python 脚本跑 AI 模型。最后项目里七八个框架,调试的时候想砸电脑。
Motia 就是来解决这个问题的。简单说,它把你所有的后端需求都统一了——API、后台任务、定时任务、AI 工作流,全都用一个框架搞定。
应用安装后,打开首页,一开始会有引导页,介绍了用法,如果你关闭了,也可以在右上角重新打开.
Motia 自带的 Workbench 主要有这几个功能:
可以看到所有 Step 是怎么连接的,哪个触发哪个,一目了然。

它初始给了我们一个使用示例,点击右上角的放大镜,可以看到详情
流程图展示了一个“基础教程”的端到端链路:
• ApiTrigger:暴露一个 HTTP 接口 POST /basic-tutorial
• StateAuthJob:根据你传入的订单数据检查状态/日期(示例逻辑)
• ProcessFoodOrder:消费事件并把数据持久化到 State
• Notification:向用户发送通知(示例逻辑)

Motia 的核心就一个概念:Step。可以把它理解成一个功能单元,里面装着你的业务逻辑。
每个 Step 都有三个要素:

直接在界面上测试 API,不用开 Postman 了。还能实时看到返回结果。


可以直接查看和修改键值存储的内容,调试的时候特别方便。

通过这个可视化界面,后端开发不再是黑盒,而是完全透明、可观测、可调试的系统.
以上示例是工作流的基本用法,如果想自己自定义 API 接口,可以这样操作:
1.打开应用数据-motia-app-steps

可以看到,目前控制台的 4 个工作流文件,就存放在这里
其中**.step.ts 就是工作流节点文件
**.step.ts-fetures.json 是告诉编辑器哪些行是什么内容(用于语法高亮),比如:
第6-30行是配置
第32-50行是处理器
我新建了一个my-api.step.ts文件,内容如下:
`import { ApiRouteConfig, Handlers } from 'motia'
import { z } from 'zod'
export const config: ApiRouteConfig = {
type: 'api',
name: 'MyCustomAPI',
description: '我的自定义API接口',
flows: ['basic-tutorial'], // ⚠️ 重要!必须关联到工作流
method: 'GET',
path: '/api/custom/hello',
responseSchema: {
200: z.object({
message: z.string(),
timestamp: z.string(),
author: z.string()
})
},
// 如果需要发出事件
emits: ['my-custom-event'] // 可选
}
export const handler: Handlers['MyCustomAPI'] = async (req, { logger, emit }) => {
logger.info('自定义API被调用')
// 发出事件(可选)
await emit({
topic: 'my-custom-event',
data: { message: 'Hello from custom API' }
})
return {
status: 200,
body: {
message: '你好,这是我的自定义API!',
timestamp: new Date().toISOString(),
author: '天天'
}
}
}
`
上面的文件新建完后,需要在 app/motia-workbench.json 文件里加上这个配置


这个时候在控制台就可以看到我新建的节点了

其他类型的节点,同理也是这样添加上。
纯静态网站
极简的 CRUD 应用(可能有点大材小用)
对特定框架有强依赖的老项目
Motia 解决了后端开发的很多痛点。不用再在各种框架之间跳来跳去,不用再为了让 Python 和 Node.js 通信而搞一堆胶水代码。所有东西都在一个地方,调试方便,部署简单。
如果你正在做的项目需要处理 API、后台任务、定时任务,或者想搞 AI 但又不想完全用 Python,可以试试 Motia。
评论
0暂无评论