用途:把 LangChain 1.0 / LangGraph 1.0 的 Python 测试接入 GitHub Actions 流水线,分离单元测试、集成测试、评测门禁与 lint 四类任务,解决 CI 中采集阶段失败、VCR 回放不稳定与 cassette 泄漏密钥等问题。主要能力:单一 workflows/tests.yml 定义 unit(Python 3.10/3.11/3.12 矩阵)、integration(标签或每日 cron 触发)、eval(PR 时对比基线与 HEAD)、lint 四个 job;用 pyproject.toml 的 filterwarnings 在保留 -W error 的前提下忽略已知导入期 DeprecationWarning;conftest.py 强制 filter_headers 并默认 record_mode 为 none 做纯回放;run_eval.py 计算聚合与单例分数差并输出 PR 评论,聚合下降超 2% 或单例超 5%、样本少于 100 时阻塞合并;pre-commit 与 CI 双层扫描 cassette 中的密钥并做 prompt 约定 lint;dryrun_load_chains.py 在 lint 阶段捕获 0.x→1.0 迁移导致的 ImportError。使用方式:单元测试用 FakeListChatModel fixture,集成默认回放、夜间翻转 VCR_MODE 重录,集成任务通过 run-integration 标签启用,密钥由 secrets 注入。限制与前提:需 Python 3.10-3.12、langchain-core 与 langgraph 1.0.x、pytest>=8、vcrpy>=6,且需先应用 langchain-local-dev-loop 准备 fixture;FakeListChatModel 不输出 response_metadata 的 token_usage,相关断言需跳过或子类注入;温度 0 在 Claude 上并不确定,回放不匹配应作为评测问题处理;具体 harness 实现与部分脚本模板未在此完整提供。
langchain-ci-integration
智能体与模型
更新于 10-15 23:26