1. 项目概述:一个为AI Agent量身打造的全栈开发工具箱
如果你正在为AI Agent(比如Claude、Cursor里的AI助手)寻找一个能“开箱即用”的后端服务,或者厌倦了手动配置数据库、部署函数、管理域名的繁琐流程,那么run402这个项目值得你花时间深入了解。它不是一个单一的工具,而是一个完整的工具箱,包含了SDK、MCP Server、CLI和OpenClaw Skill,核心目标是让开发者,尤其是AI驱动的开发工作流,能够以极低的认知和操作成本,快速构建和部署全栈应用。
简单来说,run402想做的是“后端即服务”(Backend-as-a-Service),但它更聚焦于与AI Agent的无缝集成。你可以把它想象成一个高度自动化的Supabase替代品,但支付方式原生集成了基于区块链的x402微支付协议,同时保留了传统的Stripe支付选项。它的核心能力围绕PostgreSQL数据库展开,并在此基础上提供了静态站点托管、无服务器函数、对象存储、邮件服务、甚至智能合约钱包管理等一整套服务。最吸引人的是,它通过MCP(Model Context Protocol)协议,让Claude Desktop、Cursor、Cline等AI编码助手能够直接“调用”这些后端能力,用自然语言指挥AI完成从建库、写API到部署上线的全部工作。
2. 核心架构与设计思路拆解
2.1 为什么是“AI Agent优先”的后端服务?
传统的BaaS(如Supabase、Firebase)虽然强大,但其交互接口(REST API、管理后台)是为人设计的。AI Agent在理解和操作这些接口时,需要经过复杂的指令转换和上下文理解。run402从设计之初就考虑了这一点,其MCP Server将几十个复杂的后端操作(如配置数据库行级安全策略RLS、部署函数、管理支付)封装成了一个个语义清晰的“工具”(Tools)。AI Agent可以直接理解这些工具的名称和描述,并调用它们,这极大地降低了AI进行应用开发的门槛。
例如,AI不需要知道如何用psql连接数据库、执行CREATE TABLE语句,它只需要调用run_sql工具并传入SQL语句。AI也不需要理解Stripe的API或区块链交易构造,当需要付费升级套餐时,set_tier工具会返回清晰的支付信息,AI可以引导用户完成支付流程。这种设计思路的本质是将后端基础设施能力“语义化”和“工具化”,使其成为AI可理解和可操作的乐高积木。
2.2 一体化工具箱:SDK、CLI、MCP与OpenClaw的协同
run402没有做成一个庞然大物,而是采用了模块化设计,针对不同场景提供最佳入口:
- TypeScript SDK (
@run402/sdk): 这是基石。它提供了类型安全的API客户端,适用于任何Node.js、Deno、Bun或V8隔离环境。当你在编写自己的无服务器函数、自动化脚本或需要深度集成时,SDK是首选。它细分为17个命名空间(如projects,blobs,functions),几乎覆盖了所有操作。 - MCP Server (
run402-mcp): 这是与AI Agent集成的核心。MCP是一个新兴协议,允许外部服务器向AI模型(如Claude)暴露一系列工具。run402-mcp打包了所有关键功能,安装后,AI助手就能在对话中直接使用“创建一个Postgres数据库项目”或“部署一个静态网站”这样的能力。 - CLI (
run402): 为终端和自动化脚本(CI/CD)设计。它提供了与MCP工具相对应的命令,适合喜欢命令行操作或需要在脚本中集成run402功能的开发者。 - OpenClaw Skill: 这是一个针对OpenClaw AI Agent的独立技能包,无需运行MCP服务器。它通过直接调用Node.js脚本与Run402 API通信,为OpenClaw用户提供了开箱即用的集成方案。
这种设计的好处是场景覆盖全面。AI可以用MCP工具进行探索性、交互式开发;开发者可以用CLI进行自动化部署和运维;而在自己编写的应用代码中,则使用SDK进行精细控制。所有组件都共享同一套API和业务逻辑,保证了体验的一致性。
2.3 微支付(x402)与传统支付的融合策略
支付是run402一个非常鲜明的特点。它没有采用传统的、强制性的月度订阅制,而是引入了x402微支付协议作为核心支付方式之一。
- x402微支付:这是一种基于区块链(目前是Base Sepolia测试网和Base主网)的支付协议,使用USDC进行小额、按需支付。例如,生成一张图片收费$0.03,调用一次智能合约签名收费$0.000005。这种模式非常适合低频、不确定的使用场景,或者希望“用多少付多少”的开发者。项目中的“代理额度”(Agent Allowance)概念就是为此而生:你可以为一个AI Agent创建一个关联的钱包地址并充值,之后这个Agent的所有操作产生的费用都从这个额度中扣除。
- 传统Stripe支付:考虑到区块链对许多用户仍有门槛,
run402也完整支持通过Stripe使用信用卡支付。你可以创建纯邮件的账单账户,或者将钱包与邮件账户关联,实现混合支付(例如,用Stripe购买邮件包,用x402支付数据库租赁费)。 - 免费层(Prototype):项目提供了“原型”套餐,使用测试网USDC,让用户可以零成本体验完整的支付流程,这对于教育和验证想法至关重要。
这种双轨支付设计体现了务实的态度:既拥抱了区块链微支付带来的灵活性和自动化潜力(尤其适合AI Agent自主操作),又没有放弃庞大且成熟的传统支付市场。
3. 核心功能模块深度解析
3.1 数据库即服务:不止于Provision
run402的核心是PostgreSQL数据库服务,但其提供的价值远不止“创建数据库实例”。
- 一键配置与支付集成:
provision_postgres_project工具不仅创建数据库,还自动处理套餐选择(prototype, hobby, team)和支付流程。如果是付费套餐,它会返回支付信息,引导用户完成x402支付,全程无需离开AI对话或命令行。 - 内置PostgREST与行级安全(RLS):每个项目自动获得一个PostgREST实例,可以将数据库表直接映射为RESTful API。结合
setup_rls工具,AI可以轻松地为数据表配置行级安全策略,实现多租户等复杂权限模型。rest_query工具则让AI能直接对这个REST API进行增删改查。 - 完整的SQL操作与Schema管理:通过
run_sql,AI可以执行任意DDL(创建表、索引)和DML(查询数据)。get_schema工具能内省数据库结构,让AI随时了解当前的数据模型,这在迭代开发中非常有用。 - 本地密钥安全存储:项目凭证(匿名密钥、服务密钥)被自动加密保存在用户本地的
~/.config/run402/目录下,权限设置为0600。MCP Server或CLI在后续操作中会自动读取这些凭证,用户无需反复认证。
实操心得:对于AI Agent开发,将
provision_postgres_project、run_sql、setup_rls和rest_query组合使用,可以在几分钟内搭建起一个具备完整CRUD API和安全权限的数据后端。这比引导AI去操作云服务商的控制台或编写复杂的后端代码要高效得多。
3.2 无服务器函数与静态部署
除了数据库,run402提供了轻量但完整的应用托管能力。
- 无服务器函数:支持部署Node.js 22环境的函数。
deploy_function工具接受函数代码(一个JavaScript文件)和依赖列表(package.json),将其部署到项目中。函数内可以通过process.env访问通过set_secret设置的环境变量。invoke_function通过HTTP触发函数,get_function_logs则用于调试。 - 静态网站托管:
deploy_site工具可以部署静态文件(HTML, CSS, JS, 图片)。只要项目套餐有效,托管就是免费的。部署后会返回一个*.run402.com的临时URL,或者可以绑定通过claim_subdomain申请的自定义子域名(如myapp.run402.com)。 - 一体化部署:
bundle_deploy是王牌工具。它接受一个清单文件(manifest),能够一次性完成数据库迁移、RLS策略配置、密钥设置、函数部署和静态网站发布。这极大地简化了从代码到线上应用的“最后一公里”。
3.3 外围服务:邮件、AI与智能合约钱包
为了满足更丰富的应用场景,run402还集成了一系列外围服务:
- 邮件服务:可以为项目创建专属邮箱(
slug@mail.run402.com),并通过send_email发送邮件。支持模板和原始HTML模式。这对于发送验证码、通知等场景非常实用。邮件包(Email Pack)以$5/10000封的价格单独购买,永不过期。 - AI集成:目前主要提供了
ai_translate(通过OpenRouter进行AI翻译)和ai_moderate(通过OpenAI进行内容审核)两个工具。这些是按使用量计费的AI能力,可以直接集成到你的应用中。 - 智能合约钱包管理:这是一个高级功能。
provision_contract_wallet可以租用由AWS KMS托管的以太坊合约钱包(约$0.04/天)。你可以通过contract_call和contract_read工具与区块链智能合约交互,无需自己管理私钥。这对于需要在应用内集成区块链操作(如发行代币、执行链上逻辑)但又担心私钥安全的团队来说,是一个安全的折中方案。
3.4 项目管理、支付与账户体系
- 套餐与支付:
get_quote查看价格,set_tier用于订阅、续费或升级套餐。支付可以走x402(区块链)或Stripe(信用卡)。check_balance可以查询关联钱包的余额。 - 项目管理:
list_projects查看所有项目,delete_project用于彻底删除(谨慎使用,会级联删除所有数据)。 - 用户认证:支持无密码魔法链接登录(
request_magic_link/verify_magic_link),也支持设置密码。可以管理项目用户角色(promote_user/demote_user)。 - 自定义域名:支持为项目绑定自定义域名(
add_custom_domain),并自动配置Cloudflare SSL证书。
4. 从零开始:基于AI Agent的实战开发流程
假设我们想用Claude Desktop(已配置run402-mcp)快速构建一个简单的“待办事项(Todo)”全栈应用。
4.1 第一步:创建项目与数据库
我们首先需要告诉AI:“请使用run402为我创建一个新的Postgres数据库项目,使用prototype套餐。”
AI会调用provision_postgres_project工具。由于是prototype套餐,AI会引导我们使用测试网USDC完成一个示例支付流程(无需真实资金)。完成后,AI会告知项目创建成功,并将凭证保存到本地。
接下来,我们需要创建数据表。我们可以对AI说:“在刚创建的项目中,创建一个名为todos的表,包含id(主键)、user_id(文本)、task(文本)、completed(布尔值)和created_at(时间戳)字段。”
AI会调用run_sql工具,执行类似以下的SQL:
CREATE TABLE IF NOT EXISTS todos ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, user_id TEXT NOT NULL, task TEXT NOT NULL, completed BOOLEAN DEFAULT false, created_at TIMESTAMPTZ DEFAULT NOW() );4.2 第二步:配置API安全与权限
表建好了,但我们需要一个安全的API。接下来对AI说:“为todos表设置行级安全(RLS)策略,确保用户只能操作属于自己的待办事项。”
AI会调用setup_rls工具。该工具内置了常见的RLS模板。AI可能会选择“User-owned data”模板,并指定user_id列为用户标识列。这将在后台自动创建RLS策略,启用该表的RLS,并设置相应的策略,使得用户只能SELECT、INSERT、UPDATE、DELETE自己user_id的数据。
现在,我们的数据库已经拥有了一个安全的、基于用户的CRUD API端点(通过PostgREST)。我们可以用rest_query工具测试一下。
4.3 第三步:构建前端与部署
数据库和API就绪后,我们需要一个前端界面。我们可以让AI编写一个简单的HTML/JS前端,或者我们提供一个现成的。假设我们有一个包含index.html、style.css、app.js的静态文件夹。
我们对AI说:“将我当前目录下的frontend/文件夹部署为静态网站,并申请一个子域名my-todo-app.run402.com。”
AI会依次操作:
- 调用
claim_subdomain工具,申请子域名my-todo-app。 - 调用
deploy_site工具,将frontend/目录下的所有文件上传并部署。 - 部署完成后,AI会返回可访问的URL:
https://my-todo-app.run402.com。
我们的前端app.js中,需要使用项目提供的anon_key(公开查询密钥,遵守RLS)来调用PostgREST API。这个anon_key可以通过run402CLI或SDK获取,并安全地配置到前端环境中。
4.4 第四步:添加后端逻辑与身份验证
也许我们的前端需要一些无法直接由PostgREST处理的逻辑,比如发送邮件通知、调用第三方API、或进行复杂的计算。这时就需要无服务器函数。
我们可以对AI说:“创建一个无服务器函数,当用户完成一个待办事项时,发送一封邮件通知。函数路径设为/api/on-complete。”
AI会调用deploy_function工具,上传我们提供的JavaScript函数文件(例如on-complete.js)。同时,我们需要通过set_secret工具设置邮件发送所需的API密钥等环境变量。
对于身份验证,我们可以使用run402内置的魔法链接。前端调用request_magic_link工具(通过一个简单的后端函数中转,以避免暴露密钥),用户点击邮件中的链接登录,前端获得访问令牌(Access Token)。之后,前端在调用PostgREST API时,在Authorization: Bearer <token>头中携带该令牌,PostgREST会自动将令牌中的用户ID映射到RLS的auth.uid(),从而实现数据隔离。
4.5 第五步:一键部署与持续迭代
当我们完成了所有功能的开发,可以使用bundle_deploy工具进行一键式部署。我们需要创建一个部署清单(deploy.json),描述数据库迁移脚本、RLS策略文件、要设置的密钥、要部署的函数列表和静态站点目录。
{ "project_id": "your-project-id", "migrations": ["./sql/init.sql"], "rls_templates": [{"table": "todos", "template": "user_owned"}], "secrets": {"SENDGRID_API_KEY": "sg.xxx"}, "functions": [ {"name": "on-complete", "entry": "./functions/on-complete.js"} ], "site": {"dir": "./frontend"} }让AI执行bundle_deploy并指定该清单文件,即可完成整个应用的部署上线。
5. 配置详解与集成指南
5.1 MCP Server 客户端配置
要让AI Agent使用run402,必须在相应的客户端中配置MCP Server。
Claude Desktop: 配置文件位于
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 或%APPDATA%\Claude\claude_desktop_config.json(Windows)。添加run402服务器配置后,重启Claude Desktop即可。Cursor: 在项目根目录或用户全局目录创建/编辑
.cursor/mcp.json文件。配置后,在当前项目或全局范围内,Cursor的AI助手就能使用run402工具。Cline: 在Cline的MCP设置界面中添加服务器配置。
Claude Code: 直接使用命令行工具添加:
claude mcp add run402 -- npx -y run402-mcp。这是最快捷的方式。
注意事项:使用
npx -y run402-mcp作为命令意味着每次调用都会临时安装并运行最新版本的run402-mcp。对于追求稳定性的生产环境,建议在本地全局安装 (npm install -g run402-mcp) 并配置指向本地命令的路径。
5.2 CLI的安装与核心命令
CLI适合自动化脚本和手动操作。
# 全局安装CLI npm install -g run402 # 创建一个新的代理额度(钱包) run402 allowance create # 为额度充值(需要钱包交互) run402 allowance fund # 使用清单文件部署整个应用 run402 deploy --tier prototype --manifest ./deploy.json # 查看所有项目 run402 projects list # 在特定项目中执行SQL run402 sql run --project-id <project_id> --sql "SELECT * FROM todos;"CLI的命令与MCP工具基本一一对应,是脚本化运维的利器。
5.3 环境变量与配置目录
run402工具的行为可以通过环境变量调整:
| 变量名 | 默认值 | 作用 |
|---|---|---|
RUN402_API_BASE | https://api.run402.com | 指向Run402 API服务器。可用于测试或使用自托管版本。 |
RUN402_CONFIG_DIR | ~/.config/run402 | 配置和密钥的存储目录。 |
RUN402_ALLOWANCE_PATH | {config_dir}/allowance.json | 自定义代理额度钱包文件的路径。 |
所有敏感信息(项目密钥、钱包信息)都存储在RUN402_CONFIG_DIR下,文件权限自动设置为0600,确保只有所有者可读可写。
6. 常见问题、排查技巧与避坑指南
6.1 支付相关问题
问题:调用
set_tier或generate_image时,AI返回“需要支付”,我该怎么办?- 排查:这通常是因为当前项目关联的代理额度余额不足,或者当前操作需要真实USDC(而非测试币)。首先,使用
allowance_status检查本地额度状态和网络。然后使用check_balance查看余额。 - 解决:
- 测试网:如果是在prototype套餐下测试,确保额度在Base Sepolia测试网上。使用
request_faucet工具可以免费获取测试USDC。 - 主网:如果使用的是hobby或team套餐,你需要向AI返回的支付地址转入真实的USDC(Base主网)。你可以通过加密货币交易所购买并提现至该地址。
- 替代方案:如果不熟悉区块链,可以考虑使用Stripe支付。使用
create_email_billing_account创建邮件账单账户,然后使用tier_checkout通过信用卡支付套餐费用。
- 测试网:如果是在prototype套餐下测试,确保额度在Base Sepolia测试网上。使用
- 排查:这通常是因为当前项目关联的代理额度余额不足,或者当前操作需要真实USDC(而非测试币)。首先,使用
问题:
provision_contract_wallet失败,提示预付费用不足。- 排查:创建KMS合约钱包需要预付$1.20的费用(涵盖30天的租金和初始gas)。你的项目余额必须大于此金额。
- 解决:确保项目有足够的USDC余额。可以通过
set_tier或其他支付工具先为项目充值。
6.2 数据库与API问题
问题:通过
rest_query查询数据时,返回“权限不足”或空结果。- 排查:最可能的原因是行级安全(RLS)策略在起作用,但查询没有提供有效的身份验证信息。
- 解决:
- 确认你是否在使用
service_key(绕过RLS)进行管理操作,还是在用anon_key(遵守RLS)进行用户操作。 - 如果使用
anon_key,确保你的请求包含了正确的JWT令牌(在Authorization: Bearer头中)。对于前端应用,需要先完成魔法链接登录流程获取令牌。 - 检查RLS策略是否正确设置。使用
get_schema工具查看表的RLS策略详情。
- 确认你是否在使用
问题:
deploy_function失败,提示依赖安装错误或运行时错误。- 排查:函数部署包可能包含了不兼容的依赖,或者函数代码本身有语法错误。
- 解决:
- 确保
package.json中声明的依赖与Node.js 22环境兼容。 - 在部署前,尽量在本地使用Node.js 22环境测试函数。
- 部署后,立即使用
invoke_function测试,并使用get_function_logs查看详细的错误日志,这比AI返回的概括性错误信息更有用。
- 确保
6.3 部署与域名问题
问题:
deploy_site成功,但访问子域名返回404或证书错误。- 排查:DNS传播需要时间,SSL证书签发也可能有延迟。
- 解决:
- 等待几分钟后重试。对于
.run402.com子域名,通常很快生效。 - 如果是自定义域名,使用
check_domain_status工具查看验证状态。你需要按照提示在DNS服务商处添加指定的CNAME或TXT记录。 - SSL证书(由Cloudflare提供)自动签发,通常需要几分钟到几小时。状态也会在
check_domain_status中显示。
- 等待几分钟后重试。对于
问题:
bundle_deploy中途失败,如何回滚或清理?- 排查:
bundle_deploy是原子操作吗?从文档看,它按顺序执行多个步骤,但可能不是完全事务性的。 - 解决:
- 仔细阅读失败的错误信息,确定是在哪个步骤(迁移、RLS、部署函数、部署站点)失败的。
- 手动清理。例如,如果SQL迁移部分失败导致表结构混乱,可以连接数据库手动修复或删除表。如果函数部署失败,使用
list_functions和delete_function进行清理。 - 最佳实践:在正式使用
bundle_deploy前,先在一个测试项目上完整跑通流程。将复杂的部署清单拆分成几个独立的步骤,分批执行,更容易定位问题。
- 排查:
6.4 账户与安全
- 问题:本地
~/.config/run402/projects.json文件丢失或损坏怎么办?- 排查:这是存储项目密钥的核心文件。没有它,本地工具无法认证访问你的项目。
- 解决:没有自动恢复方法。你必须手动为每个项目重新获取密钥。如果你还记得项目ID,可以联系Run402支持(如果平台提供此功能)或尝试通过注册邮箱找回。强烈建议定期备份此目录,或将其纳入你的密码管理器。
- 问题:不小心执行了
delete_project,数据能恢复吗?- 回答:不能。
delete_project是级联的、不可逆的删除操作,会清除数据库、存储、函数等所有项目数据。执行前务必确认。对于重要项目,考虑定期使用数据库导出工具(如pg_dump,可通过run_sql调用相关命令)进行备份。
- 回答:不能。
7. 进阶技巧与最佳实践
为不同环境使用不同项目:将开发(dev)、测试(staging)、生产(prod)环境对应到不同的
run402项目。可以使用不同的套餐(prototype用于开发,hobby/team用于生产),并通过环境变量或配置管理来切换项目ID和密钥。利用MCP的上下文记忆:高级的AI Agent(如Claude)在一次对话中会记住之前的操作。你可以先创建一个项目,然后在后续对话中直接说“在刚才那个项目里创建一张表”,AI能正确引用之前的项目上下文。这大大提升了交互效率。
混合使用SDK和MCP:在复杂的自动化流程中,可以在脚本中同时使用CLI(用于基础设施操作)和SDK(用于业务逻辑)。例如,用CLI脚本创建项目和部署,用SDK在你自己的Node.js服务器中实现特定的后台任务。
监控与成本控制:
- 定期使用
get_usage工具查看项目的API调用量、存储使用情况和剩余租期。 - 对于按量付费的x402操作(如图片生成、合约调用),在代码中加入简单的使用量统计和成本估算逻辑,避免意外费用。
- 为智能合约钱包设置
set_low_balance_alert,当余额低于阈值时及时收到通知(需要你自行处理通知渠道)。
- 定期使用
安全加固:
- 永远不要在前端暴露
service_key。这个密钥可以绕过所有RLS。只应在完全受信任的后端环境(如无服务器函数、你的自有服务器)中使用。 - 仔细设计RLS策略。使用
setup_rls的模板是一个好的开始,但对于复杂业务逻辑,可能需要通过run_sql手动编写更精细的策略。 - 定期轮换密钥。虽然
run402目前可能不直接提供密钥轮换接口,但你可以通过创建新项目并迁移数据的方式来间接实现。
- 永远不要在前端暴露
run402代表了一种新的开发范式:将后端基础设施彻底API化、工具化,并使其成为AI Agent的“可扩展能力”。它降低了全栈应用,特别是原型和中小型项目的启动门槛。虽然它在功能广度上可能暂不如一些成熟的巨头,但在与AI工作流深度集成、灵活的微支付模式以及“一体化部署”的体验上,展现出了独特的优势。对于独立开发者、小型团队以及任何希望用AI加速开发流程的人来说,它是一个非常值得尝试和探索的工具。在实际使用中,从免费的prototype套餐开始,体验完整的从数据库创建到应用部署的流程,是判断它是否适合你项目需求的最佳方式。