Harbor 是一个用于在沙盒环境中评估和优化智能体及语言模型的框架,来自 Terminal-Bench。Harbor 在隔离容器中运行每次试验,因此您可以立即跨多个环境并行化评估和发布。
该 langsmith Harbor 环境在 LangSmith 沙盒上运行这些试验。使用以下方式选择它 -e langsmith 可在 LangSmith 基础设施上执行 Harbor 作业,与 AgentCore、Daytona、E2B 和 Modal 等提供商并列。
前提条件
- - A LangSmith 账户 以及 API 密钥。
- - Python(包含
pip.
安装
使用以下命令安装 Harbor langsmith extra:
pip install "harbor[langsmith]"
身份验证
Harbor 使用您的 LangSmith 凭证进行身份验证。设置 API 密钥:
LANGCHAIN_API_KEY 也可以使用。或者,选择一个 LangSmith SDK 配置文件 来代替导出密钥:
运行评估
运行 Harbor 作业并使用以下方式选择 LangSmith 环境 -e langsmith:
harbor run -d "<org/name>" \
-m "<model>" \
-a "<agent>" \
-e langsmith \
-n "<n-parallel-trials>"
Harbor 为每次试验创建一个 LangSmith 沙盒,在其中运行智能体和验证器,然后在试验完成时拆除沙盒。
配置沙盒环境
LangSmith 环境从文件系统快照启动每个沙盒。在您的 Harbor 任务中提供以下之一:
- 预构建镜像:设置
[environment].docker_imageintask.toml。Harbor 重复使用或从该镜像创建快照。 - 现有快照:传递
environment.kwargs.snapshot_name以从 快照 启动(您已创建)。 - Dockerfile:包含一个
environment/Dockerfile。Harbor 使用以下方式从中构建快照 从 Dockerfile 构建流程,使用任务environment/目录作为构建上下文。
使用环境 kwargs 调整沙盒生命周期,通过命令行传递 --ek:
harbor run -d "<org/name>" \
-m "<model>" \
-a "<agent>" \
-e langsmith \
-n "<n-parallel-trials>" \
--ek idle_ttl_seconds=0 \
--ek delete_after_stop_seconds=7200
- -
idle_ttl_seconds:在此秒数后停止空闲沙盒。设置0以禁用空闲超时。 - -
delete_after_stop_seconds:在此秒数后删除已停止的沙盒。
在 LangSmith 上运行 Deep Agents
Deep Agents 通过 Harbor 内置的 langgraph 智能体和 -e langsmith 环境运行在 LangSmith 沙盒上。完整设置:暂存 Deep Agents 包、LangGraph 项目(langgraph.json (包含 deepagent 图),以及精确的 harbor run 命令在 Deep Agents 评估指南中维护:
→ Running Deep Agents on Harbor / Terminal Bench 2.0
这些 LangSmith 特定选项 (身份验证, -e langsmith,以及 --ek 沙盒生命周期 kwargs)也适用于这些运行。
多容器任务
LangSmith 环境支持多容器任务。在任务定义中包含一个 environment/docker-compose.yaml 文件,以便在每次试验中运行多个容器。请参阅 Harbor 沙盒文档 了解更多详情。