mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 04:41:57 +00:00
2714890d0d
README.zh-CN.md / README.md 只留:这是什么、为什么用它、主要功能(按领域一行一条,链到文档)、快速开始、部署、文档索引、 开发与测试、许可(原文不动)。原来的每一节按读者和任务分到 17 篇主题文档:ask-data、workflows、evidence、 data-sources(新增:接入数据库、只读保证、上传表格、跨库合并、遮罩列)、data-catalog、tools(新增:工具、审批档位、 能力登记、端点、网络规则——它们管所有工作流,不只应用)、apps、evaluation-and-ledger、schedules(含通知)、deployment、 configuration、postgresql-and-scaling、identity-and-security、architecture、development、upgrade-notes(按时间倒序, 每波先写要做的事)、faq。删掉的只有模块名(api/copilot_gen.py、chat/drive.py、data/schema_view.py)、重复的话和 「以前…现在…」的叙述;操作步骤、命令、配置名、限制、权限边界都有归宿。中文是原文,英文按新的中文写;英文里界面文字 只写英文名,开头注明界面目前只有简体中文,中文占位符换成英文占位符,中文数字的例子改成不依赖中文的说法。 数据剖析可以同时剖析 2–3 张表(baf23998)收进 data-catalog。 新增 scripts/check-docs.py:英文文档(README.md、docs/en/**)不许有中日韩字符和全角符号(代码块也算), README、docs/**、deploy/README.md 的相对链接和锚点都要通,docs/zh-CN 与 docs/en 文件一一对应、标题层级相同。 中文提示里指向 README 章节的地方改指新文档:cluster/guard.py、cluster/version.py、db/base.py 两处报错, data/schema_view.py 文档串,.env.example 三处,scripts/prod.sh、scripts/test-postgres.sh,terms.ts 两处、 DataSourcesTab.tsx、check-manage.mjs 注释,deploy/README.md 三处链接。deploy/agentlab.env 未动。 验收:check-docs 0 问题(英文文档 18 个 0 处中文,相对链接 369 条 0 断链,18 对标题层级一致);相关后端测试 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(docs/zh-CN/postgresql-and-scaling.md「从 SQLite 搬过来」)
|
||
# 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(docs/zh-CN/postgresql-and-scaling.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
|
||
|
||
# ---- 多进程(docs/zh-CN/postgresql-and-scaling.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
|