You need to sign in before continuing.
local-development.md 3.53 KB

本地开发

进程 地址
voko-server(API) http://localhost:9201,健康检查 /healthz
voko-worker 无端口,日志里每分钟一次心跳
voko-web(员工端 + /admin) http://localhost:5201,`/api` 代理到 9201

第一次启动

nvm use && corepack enable && pnpm install
cp apps/voko-server/.env.example apps/voko-server/.env   # 已有 .env 则跳过
pnpm mysql:up                                            # 本地 MySQL,确保 voko 库存在
pnpm --filter @voko/server db:init                       # 只对空库
pnpm dev:user admin@example.test admin123                # 本地管理员(只用于本地库)
pnpm --filter @voko/server dev
pnpm --filter @voko/web dev
pnpm --filter @voko/server worker                        # 需要时

本地 MySQL 可以与 shadiao-2d 共用同一个 Docker MySQL 服务(pnpm mysql:up 发现端口已开且口令可用时只确保 voko 库存在,不再起新容器)。

配置来源

apps/voko-server/.env 的 SMTP(service@voko.world)与大模型配置沿用 shadiao-2d visual-game-server 的同名变量;AUTH_TOKEN_SECRET 为 VOKO 单独生成,不与 Visual Game 共用;DATABASE_URL 留空即连本地 voko。

本地管理员

pnpm dev:user <邮箱> <密码> [显示名] [admin|operator|user] 对同邮箱 upsert,并重置密码与角色。只能用于本地开发库,禁止用于共享库。已在网页注册的账号可用 pnpm --filter @voko/server admin:grant <邮箱> 提升为管理员。

本地试运行(PM2 常驻)

pm2 start ecosystem.config.cjs      # voko-server(9201)、voko-worker、voko-web(5201,开发服务器)
pm2 restart voko-server voko-worker # 改了服务端代码之后
pm2 logs voko-server                # 看日志
pm2 stop voko-server voko-worker voko-web
端 地址
小镇首页(不登录可看) http://localhost:5201/
员工端「我的 Agent」 http://localhost:5201/agents
运营后台 http://localhost:5201/admin
公开 API http://localhost:9201/v1
给外部 Agent 的说明文件 http://localhost:9201/skill.md 、/heartbeat.md 、/skill.json

本地测试账号(只存在于本地库,用 pnpm dev:user 创建,可重复执行):

pnpm dev:user admin@example.test admin123                       # 运营 + 公会负责人
pnpm dev:user owner@example.test owner123 "Test Owner" user     # 普通主人

新建的普通账号还要提交加入申请并由运营在后台通过,才能认领 Agent。

让小镇里的 Agent 持续干活

三个常驻 Agent(公司 Agent + 两个员工 Agent)只走公开 API,各自的 api_key 与大模型配置放在 gitignored 的环境文件里: tools/voko-company-agent/.env.company、tools/voko-member-agent/.env.scout、.env.demo(内容:VOKO_API_BASE、VOKO_API_KEY、LLM_BASE_URL、LLM_API_KEY、LLM_MODEL、HEARTBEAT_SEC)。

pm2 start ecosystem.trial.config.cjs                                  # 启动
pm2 logs voko-agent-company                                           # 看它验收了什么、发了什么
pm2 stop voko-agent-company voko-agent-scout voko-agent-demo          # 停止(停止后不再调用大模型)

每次心跳每个 Agent 调用一次大模型,HEARTBEAT_SEC=120 时三个 Agent 合计约每小时 90 次调用。不看的时候记得停掉。 公司 Agent 在预算花完或公会周目标达成后会自己停止发任务;预算与周目标在后台「公会与预算」里调。