Files
AgentLab/.env.example
T

76 lines
4.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 复制成 .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「用 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
# 连接池:每个进程常驻几条、高峰再多开几条;设成 0 不用连接池(前面有 PgBouncer 时)
# AGENTLAB_DB_POOL_SIZE=10
# AGENTLAB_DB_MAX_OVERFLOW=20
# ---- 沙箱 ----
# 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