UStackUStack
OpenMolt icon

OpenMolt

OpenMolt 让你用 Node.js 在代码中构建可编程 AI 代理:思考、规划并调用工具与集成,同时支持记忆与状态管理。

OpenMolt

什么是 OpenMolt?

OpenMolt 是一个 Node.js 可编程系统,用于构建 AI 代理,这些代理能够思考、规划并基于你的代码库行动。与在独立的产品 UI 中运行代理逻辑不同,你可以直接从应用代码中定义代理、连接工具与集成,并编排代理行为。

其核心目的是帮助你构建生产级代理工作流——使用工具的、结构化输出的、有状态的代理——同时将 API 凭证保存在你的服务器上。

主要特性

  • Node.js 可编程代理创建:使用 JavaScript/TypeScript 友好的 API 从代码中创建代理。
  • 通过统一模型字符串支持多提供商 LLM:使用一致的模型格式,在 OpenAI GPT-4o、Anthropic Claude 和 Google Gemini 等提供商之间切换。
  • 基于作用域权限的安全模型:凭证存储在服务器端;工具调用渲染为 HTTP 请求,因此 LLM 接收工具结果而非原始 API 密钥或令牌。
  • 声明式工具与集成:将工具定义为数据(端点、认证模板和模式),避免编写样板 HTTP 代码。
  • 使用 Zod 模式的结构化输出:提供 Zod 模式,即可接收验证过的类型化对象,而非手动解析 LLM 响应。
  • 调度与 cron 式自动化:支持间隔调度或带时区支持的 cron 式每日调度运行代理。
  • 事件驱动的推理循环可见性:钩入循环步骤,观察工具调用、计划更新、LLM 输出和最终结果。
  • 带回调的持久化记忆:维护长期和短期记忆存储,使用 onUpdate 回调外部持久化记忆;代理可在运行中更新记忆。

如何使用 OpenMolt

  1. 在你的 Node.js 项目中安装包。
  2. 使用选定的 LLM 提供商配置初始化 OpenMolt(例如,通过环境变量设置 OpenAI API 密钥)。
  3. 创建代理,指定名称、模型标识符(使用统一模型字符串格式)和指令。
  4. 从应用代码中使用用户提示运行代理。

站点展示的示例流程:

  • 安装:npm install openmolt
  • 创建并运行代理:实例化 OpenMolt,调用 createAgent(...),然后 agent.run('...') 并记录结果。

使用场景

  • 日常报告自动化:调度代理每天早晨拉取指标(例如来自 Stripe),生成摘要,并将报告发布到 Slack 频道。
  • 多步骤内容管道:使用代理基于策略描述撰写内容、生成相关资产,并将输出保存到磁盘,作为端到端工作流的一部分。
  • 带人工审核的邮件起草:基于提供的指南起草对 Gmail 传入消息的回复,同时将审核和发送保留在 Gmail 内。
  • 开发者工作流自动化:触发 GitHub 相关任务,如分类问题、应用标签、将发布说明发布到 Slack,以及在 CI/CD 中生成变更日志。
  • 电商运营与报告:监控 Shopify 订单、更新 Airtable 记录、通过 Twilio 发送通知,并将每日收入摘要发布到 Notion 仪表板。

常见问题

OpenMolt 中的“可编程 AI 代理”是什么意思?

OpenMolt 设计让你从 Node.js/TypeScript 代码库中定义代理、工具和工作流——而非通过独立 UI 配置和运行代理。

我能在同一代理代码中使用多个 LLM 提供商吗?

文档指出,OpenMolt 支持多个 LLM 提供商(包括 OpenAI、Anthropic Claude 和 Google Gemini),使用统一模型字符串格式,可无需更改代码即可切换提供商。

OpenMolt 如何处理 API 密钥和代理对工具的访问?

OpenMolt 使用基于作用域的权限模型:凭证存储在服务器端,并通过 Liquid 模板插入 HTTP 请求。LLM 接收工具结果(工具输出)而非原始 API 密钥或令牌。

我的代理能返回什么类型的输出?

OpenMolt 支持使用 Zod 模式的结构化输出;你可以提供模式并接收验证过的类型化对象。

OpenMolt 支持定期运行和自动化吗?

是的。它支持基于间隔的运行调度和带时区支持的 cron 式每日调度。

替代方案

  • 低代码代理工作流平台:提供可视化构建器来集成 LLM、提示词和动作的工具。原型开发可能更快,但通常将配置移出你的应用代码。
  • 通用工作流/编排工具,支持 LLM 调用:专注于构建工作流(步骤、调度、重试)的替代方案,而你需自行实现 LLM/工具调用。与 OpenMolt 相比,可能需要更多胶水代码来处理结构化输出、工具定义和记忆模式。
  • 其他生态的开源代理框架:Python 或其他语言中的代理库,提供类似概念(工具、记忆、结构化输出)。差异主要在于语言/运行时集成(Node.js 与其他技术栈)和内置集成及安全模式的程度。
  • 自定义工具调用服务:构建自己的代理运行器和工具注册表可提供最大控制,但通常需要更多工程努力来处理调度、结构化输出验证和记忆持久化。
OpenMolt | UStack