mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 02:31:58 +00:00
95ff6470d1
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。
55 lines
2.4 KiB
TOML
55 lines
2.4 KiB
TOML
[project]
|
|
name = "agentlab-backend"
|
|
version = "0.1.0"
|
|
description = "AgentLab — 可视化 Agent 编排实验台后端"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.115",
|
|
"uvicorn[standard]>=0.32",
|
|
"pydantic>=2.9",
|
|
"pydantic-settings>=2.6",
|
|
# db/base.py 给 aiosqlite 0.22 的 stop() 打了补丁(并发调用会死锁),SQLAlchemy 连接池
|
|
# 强制 terminate 时也会走到它。两个一起卡住小版本,换版本前先确认补丁还成立
|
|
"sqlalchemy[asyncio]>=2.0.36,<2.1",
|
|
"aiosqlite>=0.22.1,<0.23",
|
|
"greenlet>=3.1",
|
|
"httpx>=0.28",
|
|
"python-multipart>=0.0.17",
|
|
# 引擎直接依赖这一族的运行时语义:断点格式、interrupt / resume、流式事件、
|
|
# thinking 块。小版本也改过行为(resume 发 Command 在当前版本会直接崩),
|
|
# 所以上限卡到下一个小版本——升级要主动改这里、重新锁、跑一遍测试。
|
|
# 精确版本在 requirements.lock 里
|
|
"langgraph>=1.2.11,<1.3",
|
|
"langgraph-checkpoint-sqlite>=3.1.1,<3.2",
|
|
"langchain-core>=1.6.3,<1.7",
|
|
"langchain-anthropic>=1.7.2,<1.8",
|
|
"langchain-openai>=1.6.2,<1.7",
|
|
"langchain-mcp-adapters>=0.3.2,<0.4",
|
|
"mcp>=1.30,<2",
|
|
"numpy>=2.0",
|
|
"jsonschema>=4.23",
|
|
"beautifulsoup4>=4.12",
|
|
"cryptography>=43.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# microVM 沙箱(独立 Linux 内核)。约 35MB wheel + 首次约 50MB 运行时下载,
|
|
# 再加一次 OCI 镜像拉取(实测约 55s),所以不进默认安装。
|
|
# environment.yml 里已经带上了;单独装用 `pip install 'agentlab-backend[microvm]'`。
|
|
microvm = ["microsandbox>=0.6"]
|
|
# 测试:conda 环境默认不装,跑测试前 pip install 'agentlab-backend[dev]'
|
|
dev = ["pytest>=8.0", "pytest-asyncio>=0.24"]
|
|
# 文档解析。PDF 和 Word 的解析库加起来几十兆,只用纯文本的人不该为此
|
|
# 付出安装时间——和 microvm、db 一样做成可选。HTML 用已在依赖里的 bs4。
|
|
docs = ["pypdf>=5.0", "python-docx>=1.1", "python-pptx>=1.0", "openpyxl>=3.1"]
|
|
# 数据库接入。三个驱动都是 asyncio 原生且免装数据库客户端——
|
|
# oracledb 走 thin 模式,省掉了 Oracle Instant Client 这个历来最劝退的一步。
|
|
db = ["aiomysql>=0.2", "oracledb>=2.0", "asyncpg>=0.30"]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["app"]
|