Skip to content

快速启动

给开发者的启动指南。Clone 仓库后读此文件,了解项目全貌。

项目架构

4 个仓库,共用一个 Cloudflare 账户:

songdaochuanshu/
├── ai-world-sim          # 后端 — Cloudflare Workers + Hono + D1
├── ai-world-sim-web      # 前端 — Vue 3 + PixiJS 8 像素地图
├── ai-world-sim-docs     # 文档 — VitePress(本仓库)
└── cloudflare-assets     # 资产中心 — R2 图片 + AI 博客 + 邮件通知

后端 (ai-world-sim)

技术栈

选择
运行时Cloudflare Workers
框架Hono
数据库Cloudflare D1 (SQLite)
向量库Cloudflare Vectorize
外部记忆MemOS
LLMAgnes / GLM / OpenAI 兼容
部署GitHub Actions → Cloudflare Workers

本地开发

bash
cd ai-world-sim
npm install
cp .dev.vars.example .dev.vars  # 填入你的 secrets
npm run dev                      # wrangler dev (localhost:8787)

数据库初始化

bash
# 本地
npm run db:init:local

# 远程
npm run db:init:remote

环境变量

非密钥变量在 wrangler.toml[vars] 中。密钥通过 wrangler secret put 设置:

bash
wrangler secret put AGNES_API_KEY
wrangler secret put MEMOS_API_KEY
wrangler secret put JWT_SECRET

API 端点

方法路径说明
POST/v1/auth/register注册
POST/v1/auth/login登录
GET/v1/me当前用户
GET/v1/world/list世界列表
GET/v1/world/state世界状态
POST/v1/character/create创建角色
GET/v1/character/:id角色详情
POST/v1/character/:id/chat与角色对话
POST/v1/character/:id/command下达指令
GET/v1/events/streamSSE 实时事件
GET/v1/events/recent最近事件
POST/v1/admin/tick手动 tick

前端 (ai-world-sim-web)

技术栈

选择
框架Vue 3 + TypeScript
构建Vite 8
渲染PixiJS 8
状态Pinia
路由Vue Router 4
部署GitHub Actions → Cloudflare Pages

本地开发

bash
cd ai-world-sim-web
npm install
npm run dev    # localhost:5173

确保后端在 localhost:8787 运行。Vite 已配置代理。

构建

bash
npm run build   # vue-tsc 类型检查 + vite build

文档 (ai-world-sim-docs)

bash
cd ai-world-sim-docs
npm install
npm run docs:dev    # localhost:5173
npm run docs:build  # 构建到 docs/.vitepress/dist

系统设计

季节系统

  • 一年 365 天,每季 91 天
  • 春: Day 0-90 / 夏: Day 91-181 / 秋: Day 182-272 / 冬: Day 273-364
  • 季节末尾 10 天为过渡期,色调渐变
  • 影响地形 tile、树木状态、天气概率、环境粒子

天气系统

  • 9 种天气类型:晴/多云/阴/小雨/暴雨/小雪/暴风雪/雾/雷阵雨
  • 天气受季节影响概率(春多雨、冬多雪)
  • 每种天气有粒子效果、色调偏移、能见度变化

记忆系统

  • 短期记忆:D1 存储,最近 N 条交互
  • 长期记忆:D1 + Vectorize 向量检索
  • MemOS 集成:外部记忆服务

部署

CI/CD

  • 后端:push 到 main → GitHub Actions → wrangler deploy
  • 前端:push 到 main → GitHub Actions → Cloudflare Pages
  • 文档:push 到 main → GitHub Actions → Cloudflare Pages

所需 GitHub Secrets

Secret说明
CLOUDFLARE_API_TOKENCloudflare API Token
CLOUDFLARE_ACCOUNT_IDCloudflare Account ID
AGNES_API_KEYAgnes AI API Key
MEMOS_API_KEYMemOS API Key
CROSS_REPO_TOKENGitHub PAT (跨仓库触发)

常见问题

  • API 请求失败:检查后端是否启动,ai-world-sim-web 的 vite 代理配置
  • 素材加载失败:检查 public/assets 目录和 R2 配置
  • PixiJS 渲染异常:参考渲染器设计文档,检查素材尺寸、锚点和层级
  • 类型错误:运行 npx tsc --noEmit(后端)或 npx vue-tsc -b(前端)

作者:songdaochuanshu 更新:2026-07-12

Released under the MIT License.