README:编排完善第 2 波的升级说明(缺省仍是 SQLite 单进程、新列与运行事件唯一索引、数据目录标记;应用库可换 PostgreSQL 与导入、deploy.sh 内置库与 migrate-to-postgres、dev.sh --postgres;PostgreSQL 下多进程、升级要先停全部进程;运行按类别排队与交互留底;升级前自动备份、restart 缺省只重启服务;bubblewrap 沙箱不再继承环境变量;循环里的子工作流编号与幂等键;问数据心跳不落库与事件日志清理、接手时重新核对身份;行序不定;驳回去向的说法)

This commit is contained in:
ThearchyHelios
2026-10-19 15:46:49 +08:00
parent af919a88aa
commit badcc2f6aa
+27
View File
@@ -181,6 +181,33 @@ PostgreSQL 容器,端口不对外,密码自动生成在数据目录里),
记下,调度循环去抖后发起(每一期各自去抖),下游的输入模板用 `{{ event.* }}` 取事件内容;保存时检查串联不成环、运行时
限 5 层;途经驳回的、应用补算的缺省不认(可以勾选)。跟着 `AGENTLAB_SCHEDULER` 开关:关着时事件留着不派发。
**从旧版本升级(2026-10 编排完善第 2 波)**:
- 缺省仍是数据目录里的 SQLite、单进程,不改配置的部署升级后行为不变;启动时自动补上这一波的新列和索引(运行事件的
`(run_id, seq)` 改成唯一索引,存量库里要是已有重号,记一条日志、这一次不建,不影响启动)。数据目录里会多一个
`.agentlab-data` 标记文件,`deploy.sh` 靠它(或 `agentlab.db`、`.secret_key`)认数据目录,别删。
- 应用库可以换成 PostgreSQL:设 `AGENTLAB_DATABASE_URL`,执行断点一起进去;现有数据用 `python -m app.db copy-to-postgres`
导入(要先停服务,断点一起搬)。Docker 部署可以让 `deploy.sh` 在旁边起一个内置的 PostgreSQL(新部署 `install --postgres`,
已经在用 SQLite 的 `migrate-to-postgres`,失败就原样退回 SQLite);开发时 `./scripts/dev.sh --postgres`。内置和外接只能选
一种。见[用 PostgreSQL](#用-postgresql)。
- 用 PostgreSQL 时可以起多个工作进程(`AGENTLAB_WORKERS`):运行、问数据一轮、后台任务在库里认领,进程没了别的进程接手或
照实标中断,停止跨进程生效,调度只由一个进程当班,实时事件跨进程推送。SQLite 只支持单进程:第二个进程拒绝启动。升级要先
停掉全部工作进程(`deploy.sh upgrade` 就是这样做的):库里还有活着的、版本不同的进程时,新版本拒绝启动。见[多进程](#多进程)。
- 运行按类别排队:交互(问数据、画布试跑)、应用、定时、系统(评测、召回、对账、补算、出具)。全站上限照旧是
`AGENTLAB_MAX_CONCURRENT_RUNS`,其中缺省留四分之一给交互,别的类别空闲时可以借用其余的,「设置 → 运行并发」可调。满载时
评测、召回会比以前慢,换来问数据总有名额;评测每题的时限不算排队的时间。
- `deploy.sh upgrade` 升级前自动备份:SQLite 拷到数据目录的 `backups/sqlite/`,内置 PostgreSQL 用 `pg_dump` 存到
`backups/postgres/`,各留最近 5 份(`BACKUP_KEEP`),只有属主能读。`restart` 缺省只重启服务,`restart --postgres` 连库一起。
- bubblewrap 沙箱不再继承后端的环境变量:代码节点里读不到模型的 API Key、数据库地址这类变量了。代码要用的值请显式传进去。
- 子工作流放在循环里多次执行时,每次的步骤接着编号,写外部系统的幂等键改用父运行里的全局 id:以前循环第二轮的写入会拿到
第一轮的回执、不发送,现在照常发;升级前停在子工作流里的运行恢复时仍认旧的键,已经生效的不重发。
- 问数据的心跳不再落库,结束超过 14 天的轮次清掉事件日志(那一轮的问答、答案照旧在对话里);服务重启后接手一轮时按账号现在的
角色重新核对,停用或没了权限的照实标中断。
- 多行查询没有 `ORDER BY` 时,引用其中一格不再算「来自口径」,召回、对账里照实标「行序不定」(E1 统计会跟着变);全部指标
都行序不定的召回结论写「核对不了」并开待办,不再写「没变」。对账要人选对照指标时,按逐个数核对过的那几列预选。
- 待办、通知、Webhook 里驳回的去向照实写(「被驳回,转到 X」「这一路到此为止」),子工作流里的写「子工作流 › x」;子工作流
里一步失败时自动复核只报一条。用户看得到的列表遇到同名、同时间的并列时按 id 排,两种库顺序一致。
---
## 核心能力