Motia 使用入门:让后端开发不再头疼

10 months ago

你有没有遇到过这种情况:写个后端服务,API 用 Express,定时任务用 node-cron,队列用 BullMQ,然后还得搞个 Python 脚本跑 AI 模型。最后项目里七八个框架,调试的时候想砸电脑。

Motia 就是来解决这个问题的。简单说,它把你所有的后端需求都统一了——API、后台任务、定时任务、AI 工作流,全都用一个框架搞定。

https://appstore.lazycat.cloud/#/shop/detail/com.tiantian.motia

如何使用

应用安装后,打开首页,一开始会有引导页,介绍了用法,如果你关闭了,也可以在右上角重新打开.

Motia 自带的 Workbench 主要有这几个功能:

1. Flows(流程图)

可以看到所有 Step 是怎么连接的,哪个触发哪个,一目了然。

image.png

它初始给了我们一个使用示例,点击右上角的放大镜,可以看到详情

流程图展示了一个“基础教程”的端到端链路: • ApiTrigger:暴露一个 HTTP 接口 POST /basic-tutorial • StateAuthJob:根据你传入的订单数据检查状态/日期(示例逻辑) • ProcessFoodOrder:消费事件并把数据持久化到 State • Notification:向用户发送通知(示例逻辑)

快速调试工作流

  1. 触发测试:点击 ApiTrigger → 在弹出面板测试 API
  2. 查看流程:观察节点间的数据流动(动画效果)
  3. 检查日志:切换到 Logs 查看详细执行日志
  4. 验证结果:在 States 检查数据是否正确存储

image.png

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

每个 Step 都有三个要素:

  1. 触发方式:怎么启动这个 Step
  2. 处理逻辑:Step 要干什么
  3. 输出结果:可以是返回值、发送事件、更新状态等

image.png

2. Endpoints(接口测试)

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

image.png

3. Traces(追踪)

  • 发送请求后,查看底部 Tracing 面板
    • 点击具体的 Trace ID 查看时间线
    • 查看每个步骤的执行顺序和耗时 每次执行都有完整的追踪记录,能看到:
  • 执行了哪些 Step
  • 每个 Step 花了多少时间
  • 中间的状态变化
  • 所有的日志输出

image.png

4. State(状态管理)

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

image.png

通过这个可视化界面,后端开发不再是黑盒,而是完全透明、可观测、可调试的系统.

以上示例是工作流的基本用法,如果想自己自定义 API 接口,可以这样操作: 1.打开应用数据-motia-app-steps

image.png 可以看到,目前控制台的 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 文件里加上这个配置

image.png

image.png

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

image.png

其他类型的节点,同理也是这样添加上。

Motia特别适合的场景:

  • 需要 API + 后台任务 + 定时任务的项目
  • AI 相关的应用(可以混用 Python 和 JS)
  • 事件驱动的系统(订单处理、通知系统等)
  • 需要实时推送的应用(聊天、协作工具等)
  • 微服务改造(用 Motia 统一多个服务)

可能不太适合的场景:

  • 纯静态网站

  • 极简的 CRUD 应用(可能有点大材小用)

  • 对特定框架有强依赖的老项目

总结

Motia 解决了后端开发的很多痛点。不用再在各种框架之间跳来跳去,不用再为了让 Python 和 Node.js 通信而搞一堆胶水代码。所有东西都在一个地方,调试方便,部署简单。

如果你正在做的项目需要处理 API、后台任务、定时任务,或者想搞 AI 但又不想完全用 Python,可以试试 Motia。

作者
天天