快速上手
部署一个站点(SaaS)
站点是完整、隔离的 Web 应用——前端、服务端、数据库、存储,以及一个实时可访问的 URL。通常由智能体为你构建并部署;这是其底层的 API,你也可以直接调用它。
模型
每个站点都是它自己的、隔离的云应用,服务于 <slug>.commandagi.app。你可以发布一个服务端模块(一个默认导出为 { fetch(request, env, ctx) } 的 ES 模块——用于 SSR、API 路由,或任何动态内容)和/或静态文件。环境变量、一个托管的 SQL 数据库、blob/KV 存储,以及自定义域名,都可以按需接入,并自动接线进应用中。
1. 创建一个站点
shell
# Create a site → it gets a slug and a live URL.
curl https://api.commandagi.com/sites \
-H "Authorization: Bearer $COMMANDAGI_API_KEY" \
-H "content-type: application/json" \
-d '{ "name": "My app", "slug": "my-app" }'
# → { "site": { "id": "…", "slug": "my-app", "url": "https://my-app.commandagi.app" } }2. 部署一次构建
在一台机器上构建你的应用(智能体会用 deploy_site 工具替你完成这一步),然后推送打包好的服务端模块和资源文件。每次部署都在数秒内完成,并被记录在该站点的历史记录中。
shell
# Deploy a build: a server module (SSR / API routes) and/or static files.
curl https://api.commandagi.com/sites/$SITE_ID/deploy \
-H "Authorization: Bearer $COMMANDAGI_API_KEY" \
-H "content-type: application/json" \
-d '{
"entry": "export default { async fetch(req, env){ return new Response(\"hi from \" + env.GREETING) } }",
"files": [{ "path": "index.html", "content": "<h1>Hello</h1>" }],
"spaFallback": true
}'3. 环境变量与密钥
在各次部署之间持久保存;密钥在静态存储时加密,且只写不读。重新部署以使更改生效。
shell
# Persistent env vars + secrets (read via env.KEY in the server module).
curl -X PUT https://api.commandagi.com/sites/$SITE_ID/env \
-H "Authorization: Bearer $COMMANDAGI_API_KEY" \
-H "content-type: application/json" \
-d '{ "key": "STRIPE_KEY", "value": "sk_live_…", "secret": true }'4. 数据库、存储与域名
预置一个托管资源,它就会被绑定进应用——一个 D1 SQL 数据库对应 env.DB,一个 R2 存储桶对应 env.BLOB,或一个 KV 存储对应 env.KV。通过 POST /sites/$SITE_ID/domains 关联一个自定义域名(自动配备 TLS)。
shell
# Attach a managed database (env.DB), blob bucket (env.BLOB), or KV store (env.KV).
curl https://api.commandagi.com/sites/$SITE_ID/resources \
-H "Authorization: Bearer $COMMANDAGI_API_KEY" \
-H "content-type: application/json" \
-d '{ "kind": "d1" }' # d1 | r2 | kv或者,直接让智能体来做
整个流程也以工具的形式提供给智能体——create_site、deploy_site、set_site_env、add_site_resource、add_site_domain。最简单的方式是直接告诉智能体要构建什么:它会编写应用、预置所需资源,并完成部署。