mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 07:11:57 +00:00
aadc8d0115
git mv 保留历史;顶上一行「[English](README.md) | 简体中文」,英文版随后单独提交。 改指 README.zh-CN.md 的:报错文字(cluster/guard.py、cluster/version.py、db/base.py 两处)、.env.example 三处注释、 scripts/prod.sh 用法说明、scripts/test-postgres.sh 注释、「口径同 README「哪些角色看得到原值」」的四处代码注释 (terms.ts 两处、DataSourcesTab.tsx、check-manage.mjs),deploy/README.md 里三处「仓库 README」写成指向 ../README.zh-CN.md 对应章节的链接。 没改的:deploy/deploy.sh 四处「README 的常见问题」「README「用 PostgreSQL」」和 deploy/agentlab.env 117 行——离线包里和 deploy.sh 放在一起的 README.md 就是 deploy/README.md,那几句指的正是它的常见问题、用 PostgreSQL 两节; deploy/README.md 第 16 行文件清单说的是它自己;version.py、runner.py 文档串里「以前 README 写…」是旧事的叙述。 验收:相关后端测试 117 通过、7 跳过;tsc -b、check-copy 通过。
114 lines
6.7 KiB
Bash
114 lines
6.7 KiB
Bash
# 复制成 .env 后按需修改。所有项都可以留空——留空时用代码里的默认值。
|
||
# API Key 也可以不写在这里,启动后在「设置 → 模型接入」页面填,会加密存进本地 SQLite。
|
||
|
||
# ---- 环境 ----
|
||
# 后端跑在哪个 conda 环境里(dev.sh 用)
|
||
# AGENTLAB_CONDA_ENV=agentlab
|
||
|
||
# ---- 服务 ----
|
||
# AGENTLAB_PORT=8000
|
||
# AGENTLAB_WEB_PORT=5273
|
||
|
||
# ---- 应用库 ----
|
||
# 不设:数据目录里的 SQLite(data/agentlab.db,断点 data/checkpoints.db),单机单进程。
|
||
# 设成 PostgreSQL 时整个应用库和断点都放进去(要 [postgres] 额外依赖,environment.yml 已带);数据目录照样要有。
|
||
# 从现有的 SQLite 数据目录搬过去:python -m app.db copy-to-postgres data(README.zh-CN.md「用 PostgreSQL」)
|
||
# AGENTLAB_DATABASE_URL=postgresql+asyncpg://agentlab:密码@127.0.0.1:5432/agentlab
|
||
# 要 SSL 时加 ?sslmode=require(verify-ca / verify-full 同理);证书文件用环境变量 PGSSLROOTCERT / PGSSLCERT / PGSSLKEY,不写在地址里
|
||
# AGENTLAB_DATABASE_URL=postgresql+asyncpg://agentlab:密码@db.example.com:5432/agentlab?sslmode=verify-full
|
||
# 断点放另一个库时才设(不设就和应用库同一个库)
|
||
# AGENTLAB_CHECKPOINT_URL=postgresql://agentlab:密码@127.0.0.1:5432/agentlab_checkpoints
|
||
# 启动时库还连不上(和库一起起、库还在初始化)最多等几秒,按退避重试;密码不对、库不存在这种不等。缺省 90
|
||
# AGENTLAB_DB_STARTUP_TIMEOUT=90
|
||
|
||
# ---- 连接池(PostgreSQL;每个进程一套)----
|
||
# 常驻几条,缺省 10;设成 0 不用连接池、每次新建连接
|
||
# AGENTLAB_DB_POOL_SIZE=10
|
||
# 高峰再多开几条,缺省 20
|
||
# AGENTLAB_DB_MAX_OVERFLOW=20
|
||
# 池子满了等一条空出来最多等几秒,缺省 30
|
||
# AGENTLAB_DB_POOL_TIMEOUT=30
|
||
# 一条连接用多久换新的(秒),缺省 1800
|
||
# AGENTLAB_DB_POOL_RECYCLE=1800
|
||
|
||
# ---- PgBouncer(README.zh-CN.md「多进程」的「直连与 PgBouncer」)----
|
||
# 直连地址(写法同 AGENTLAB_DATABASE_URL):进程间通知、跨进程锁、断点这几样依赖会话状态的连接走它,普通查询走上面的地址。
|
||
# 不设就全用 AGENTLAB_DATABASE_URL(直连 PostgreSQL、或 PgBouncer 的会话模式时都不用设)
|
||
# AGENTLAB_DATABASE_DIRECT_URL=postgresql+asyncpg://agentlab:密码@db.example.com:5432/agentlab
|
||
# AGENTLAB_DATABASE_URL 指的是 PgBouncer 的事务模式时设成 1(缺省 0):不用客户端连接池、关掉预备语句缓存;
|
||
# 这时必须另给上面的直连地址,没给就拒绝启动
|
||
# AGENTLAB_DB_PGBOUNCER=0
|
||
|
||
# ---- 多进程(README.zh-CN.md「多进程」;只有应用库是 PostgreSQL 时才能大于 1)----
|
||
# 几个工作进程,缺省 1(scripts/prod.sh、Docker 的入口按它起;dev.sh 总是一个进程、热重载)
|
||
# AGENTLAB_WORKERS=1
|
||
# 每个进程在库里登记、续租约:租约多长(秒,缺省 30)、隔多久续一次(秒,缺省 5)。租约到期没续上算进程没了,别的进程接手它的活
|
||
# AGENTLAB_WORKER_LEASE_S=30
|
||
# AGENTLAB_WORKER_HEARTBEAT_S=5
|
||
# 后台调度循环(定时任务、事件派发、流程时限)开不开,缺省开;拷一份数据目录另起的服务要关成 0。一拍隔几秒,缺省 15
|
||
# AGENTLAB_SCHEDULER=1
|
||
# AGENTLAB_SCHEDULER_TICK_S=15
|
||
# 构建号:进程登记的代码版本里带上它(新旧版本不许同时连一个库)。Docker 镜像构建时自动写进去,不设就用 git 提交
|
||
# AGENTLAB_BUILD=
|
||
|
||
# ---- 开发用 PostgreSQL(./scripts/dev.sh --postgres)----
|
||
# 这几项只有 dev.sh 读:写成环境变量或写在这个 .env 里都行(环境变量优先)。数据在 docker 数据卷里,
|
||
# 密码第一次自动生成在数据目录(和后端一样照 AGENTLAB_DATA_DIR,缺省 data/)的 .postgres-dev/ 里,
|
||
# dev.sh 照它设 AGENTLAB_DATABASE_URL(盖过上面写的)
|
||
# AGENTLAB_DEV_PG_CONTAINER=agentlab-dev-postgres
|
||
# AGENTLAB_DEV_PG_PORT=55432
|
||
# AGENTLAB_DEV_PG_VOLUME=agentlab-dev-pgdata
|
||
# AGENTLAB_DEV_PG_IMAGE=postgres:16
|
||
|
||
# ---- 沙箱 ----
|
||
# auto(挑第一个已就绪的:microvm → bubblewrap → seatbelt → local)
|
||
# 可选值:microvm | seatbelt | bubblewrap | local | off
|
||
# AGENTLAB_SANDBOX_BACKEND=auto
|
||
|
||
# ---- microVM 沙箱(独立 Linux 内核,需 conda 环境装了 [microvm] 额外依赖)----
|
||
# 注意:内存/CPU/进程表是内核级真限额,但网络关不干净——HTTP/HTTPS 断得掉,
|
||
# UDP/53 拦不住,DNS 隧道外泄通道始终开着。防外泄要靠网络层,别指望沙箱。
|
||
# 跑代码用的 OCI 镜像,首次使用会拉取并缓存到 ~/.microsandbox(实测约 55s,仅此一次)
|
||
# AGENTLAB_MICROVM_IMAGE=python:3.12-slim
|
||
# 同 session 复用同一台 VM;空闲这么久就回收,避免闲置 VM 占内存
|
||
# AGENTLAB_MICROVM_IDLE_SECONDS=300
|
||
# 单次启动(含首次拉镜像)的等待上限
|
||
# AGENTLAB_MICROVM_BOOT_TIMEOUT=300
|
||
# AGENTLAB_SANDBOX_TIMEOUT=30
|
||
# 内存限额:microvm 后端真实生效;seatbelt/local 在 macOS 上限不住(不强制 RLIMIT_AS)
|
||
# AGENTLAB_SANDBOX_MEMORY_MB=512
|
||
# AGENTLAB_SANDBOX_NETWORK=false
|
||
|
||
# ---- 执行护栏 ----
|
||
# AGENTLAB_MAX_GRAPH_STEPS=200
|
||
# AGENTLAB_MAX_AGENT_STEPS=25
|
||
# AGENTLAB_MAX_CONCURRENT_RUNS=20
|
||
|
||
# ---- HTTP 工具 ----
|
||
# 逗号分隔的域名白名单;留空表示只拦内网地址,不限制公网域名
|
||
# AGENTLAB_HTTP_TOOL_ALLOWLIST=api.github.com,news.ycombinator.com
|
||
# 本机代理(Clash / mihomo 等)开了 TUN + fake-ip 时,查任何域名都先拿到这个段的假地址,
|
||
# 网页工具会把它当内网拦掉。填上之后,落在段里的解析结果改向公共 DNS 核实真实地址:
|
||
# 公网放行,内网照拦,核实不了也拦。没开 fake-ip 就留空
|
||
# AGENTLAB_HTTP_TOOL_FAKE_IP_RANGES=198.18.0.0/15
|
||
# 核实用的 DNS-over-HTTPS(JSON 接口),逗号分隔,按顺序试;写 IP 形式免得解析它自己的域名。
|
||
# 境外的放前面:境内公共 DNS 对被封锁的域名返回污染结果,会被当成内网误拦
|
||
# AGENTLAB_HTTP_TOOL_DOH_URLS=https://1.1.1.1/dns-query,https://223.5.5.5/resolve
|
||
|
||
# ---- 落库加密密钥 ----
|
||
# 留空会自动生成并存到 data/.secret_key。换了这个值,之前存的 API Key 会解不开。
|
||
# AGENTLAB_SECRET_KEY=
|
||
|
||
# ---- 模型凭据(可选,首次启动会自动导入成 provider)----
|
||
# ANTHROPIC_API_KEY=sk-ant-...
|
||
# 用中转网关时填这两个(会以 Authorization: Bearer 发送)
|
||
# ANTHROPIC_BASE_URL=https://your-gateway.example.com/api
|
||
# ANTHROPIC_AUTH_TOKEN=...
|
||
# OPENAI_API_KEY=sk-...
|
||
|
||
# ---- 可选增强 ----
|
||
# 配了就用 Tavily 搜索,否则 web_search 退回 DuckDuckGo
|
||
# TAVILY_API_KEY=tvly-...
|
||
# 打开后知识库用 OpenAI embedding 代替本地哈希向量(检索质量更好)
|
||
# AGENTLAB_USE_OPENAI_EMBEDDINGS=1
|