跳转至

配置系统

项目的配置通过一个基于 pydantic 进行数据验证和 hydra 从 YAML 文件加载的系统进行管理。这提供了一种强大而灵活的方式来定义智能体和实验。

所有配置都存储在 /configs 目录下的 .yaml 文件中。

ConfigLoader

ConfigLoader 是将 YAML 文件中的配置加载到 pydantic 模型中的主要入口点。它抽象了文件路径和加载逻辑。

用法:

from utu.config import ConfigLoader

# 从 /configs/agents/my_agent.yaml 加载智能体配置
agent_config = ConfigLoader.load_agent_config("my_agent")

# 从 /configs/eval/my_eval.yaml 加载评估配置
eval_config = ConfigLoader.load_eval_config("my_eval")

AgentConfig

AgentConfig 是定义智能体的中心数据结构。它指定了智能体运行所需的一切,包括其模型、工具和个性。

关键组件

  • type:智能体的架构。可以是:
    • simple:执行任务的单个智能体。
    • orchestra:一个更复杂的多智能体系统,包含计划者和工作者。
  • model:(ModelConfigs) 定义智能体将使用的主要 LLM,包括 API 提供商、模型名称和温度等设置。
  • agent:(ProfileConfig) 定义智能体的配置文件,例如其 name 和系统级 instructions(例如,“你是一个有用的助手。”)。
  • env:(EnvConfig) 指定智能体运行的环境(例如,shell_localbrowser_docker)。更多详情请参见 智能体环境
  • toolkits:(dict[str, ToolkitConfig]) 一个定义智能体可用工具的字典。每个工具包可以以 builtin 模式(在主进程中运行)或 mcp 模式(作为单独进程运行)加载。
  • max_turns:智能体在停止之前可以进行的最大对话轮数。

对于 orchestra 类型,AgentConfig 还包含用于定义计划者、工作者和报告者智能体的字段。


EvalConfig

EvalConfig 定义了一个完整的评估实验。它指定了要使用的数据集、要测试的智能体以及如何判断结果。

评估的关键组件

  • data:(DataConfig) 定义用于评估的数据集,包括其名称/路径和相关字段(question_fieldgt_field)。
  • rollout:此部分定义了评估的执行阶段。
    • agent:(AgentConfig) 被测试智能体的完整 AgentConfig
    • concurrency:在数据集上运行智能体时要使用的并行进程数。
  • judgement:此部分定义了判断阶段。
    • judge_model:(ModelConfigs) 作为判断者的 LLM 的配置。
    • judge_concurrency:用于判断结果的并行进程数。
    • eval_method:用于评估的方法(例如,与标准答案进行比较)。