Files
AgentLab/environment.yml
T
ThearchyHelios 95ff6470d1 后端依赖锁到测过的那一套:pyproject 卡版本范围,requirements.lock 写精确版本
langgraph 和四个 langchain 包原来完全不写版本,fastapi、sqlalchemy、aiosqlite 只有下限,
uv.lock 还在 .gitignore 里。按旧写法今天新装,22 个包和测过的版本不同,其中 sqlalchemy
会从 2.0.52 跳到 2.1.1。

1. pyproject.toml:LangGraph / LangChain 一族放行到下一个小版本——引擎依赖它们的断点
   格式、interrupt / resume、流式事件和 thinking 块,这些在小版本里也改过行为。aiosqlite
   与 SQLAlchemy 同样卡小版本:db/base.py 给 aiosqlite 0.22 的 stop() 打了补丁,连接池
   强制断开时会走到它。mcp 卡在大版本 1。
2. backend/requirements.lock:后端全部依赖(含间接依赖、全部 extras)的精确版本,
   --universal 跨平台。锁的是 473 条测试跑过的那个 conda 环境:本机要装的 96 个包逐一
   对上,另外 3 个只在 Windows / emscripten 上装。
3. environment.yml 装包时以锁文件为约束(-c),换机器装到的是同一套。
4. scripts/lock-deps.sh 重新生成锁文件:已锁的版本默认不动,升级用 --upgrade-package /
   --upgrade。README 补了用法,补装 extras 的命令都带上 -c。

验证:用同版本 Python 新建空环境,照 conda 的方式按 environment.yml 的 pip 行安装——
装到的 96 个包和测过的环境完全一致,473 passed。
2026-09-26 09:49:16 +08:00

24 lines
1.1 KiB
YAML

# AgentLab 的 conda 环境。
#
# conda env create -f environment.yml
# conda activate agentlab
#
# 依赖清单仍以 backend/pyproject.toml 为准 —— 这里只负责把解释器和那份
# 依赖装进一个具名环境,避免同一份依赖在两个地方各写一遍、然后慢慢漂移。
name: agentlab
channels:
- conda-forge
dependencies:
- python=3.12
- pip
- pip:
# 版本以锁文件为准:装到的就是测过的那一套,不是当天的最新版。
# 升级依赖见 scripts/lock-deps.sh
- -c backend/requirements.lock
# [microvm] 带上独立内核的沙箱后端(约 35MB wheel,首次运行还要下载
# 约 50MB 运行时,外加一次 OCI 镜像拉取)。不需要就把方括号去掉,
# 沙箱会退回 Seatbelt —— 代价是内存限额在 macOS 上限不住。
# [docs] 让 PDF / Word 传得进知识库。约十几兆,但少了它上传这类文件
# 只会得到一句"要先装解析库"——而界面上并不会拦着你去传
- -e ./backend[microvm,dev,db,docs]