HARDE:优化智能体执行框架以实现运行时风险检测与执行控制 的代码发布。
该仓库包含两个互补的入口点系列:
domains/:Meta-Harness 基线以及针对每个基准测试的 HARDE 两个阶段。personalized_harness/:基准测试适配器、基线执行框架、学习/个性化执行框架以及评估流水线。HARDE/
├── domains/
│ ├── agentdyn/ # Meta-Harness 基线
│ ├── agentdyn_component_probe/ # HARDE 第一阶段
│ ├── agentdyn_adaptive_component_search/ # HARDE 第二阶段
│ ├── agentsafetybench/ # Meta-Harness 基线
│ ├── agentsafetybench_component_probe/ # HARDE 第一阶段
│ ├── agentsafetybench_adaptive_component_search/ # HARDE 第二阶段
│ ├── shade_arena/ # Meta-Harness 基线
│ ├── shade_arena_component_probe/ # HARDE 第一阶段
│ └── shade_arena_adaptive_component_search/ # HARDE 第二阶段
├── personalized_harness/
│ ├── AgentDyn/
│ ├── AgentSafetyBench/
│ └── SHADE_v2/
├── .env.example
├── .gitignore
└── requirements.txt
对于名为 benchmark 的基准测试,目录遵循以下约定:
| 目录 | 方法阶段 | 主入口点 |
|---|---|---|
domains/benchmark/ | Meta-Harness 基线 | meta_harness.py |
domains/benchmark_component_probe/ | HARDE 第一阶段:组件探测 | component_probe.py |
domains/benchmark_adaptive_component_search/ | HARDE 第二阶段:自适应组件搜索 | adaptive_component_search.py |
第一阶段探测执行框架组件并生成组件级评分标准。第二阶段使用该评分标准在搜索过程中自适应地选择和优化组件。在本仓库中,benchmark 是 agentdyn、agentsafetybench 或 shade_arena 之一。
推荐使用 Python 3.10 或更高版本。
conda create -n HARDE python=3.10
conda activate HARDE
pip install -r requirements.txt
cp .env.example .env
cp model_config.example.yaml model_config.yaml
# 编辑 .env,然后将其中的值导出到当前 shell。
set -a
source .env
set +a
第三方基准测试代码和数据集未随仓库提供。请使用以下确切的目录名称,将所需的基准测试克隆到仓库根目录:
git clone https://github.com/leolee99/AgentDyn.git AgentDyn
git clone https://github.com/jkutaso/SHADE-Arena.git SHADE-Arena
git clone https://github.com/thu-coai/Agent-SafetyBench.git Agent-SafetyBench
其他数据源:
适配器相对于 HARDE 根目录解析这些仓库。预期布局:
HARDE/
├── AgentDyn/
├── SHADE-Arena/
├── Agent-SafetyBench/
├── domains/
└── personalized_harness/
详细的基准测试特定命令和选项记录在 domains/ 下每个对应目录内的 README 中。固定执行框架的评估示例记录在 personalized_harness/README.md 中。
以下 SHADE-Arena 示例展示了每种方法的完整执行流程。
Meta-Harness 直接对完整执行框架进行三次迭代优化,然后在留出的测试集上评估所选执行框架:
python domains/shade_arena/meta_harness.py \
--run-name shade_meta_seed0 \
--fresh \
--iterations 3 \
--seed 0 \
--run-final-test
结果写入 domains/shade_arena/runs/shade_meta_seed0/。
该基线评估未修改的基准测试执行框架,在单次 LLM 调用中提出一个个性化执行框架,并在相同的 SHADE-Arena 任务上评估该提议。它不执行迭代搜索:
python personalized_harness/shade_v2_pipeline.py \
--model_config model_config.yaml \
--tasks spam_filter_update \
--repeat 1 \
--output_harness personalized_harness/SHADE_v2/harnesses/one_shot_proposal.py \
--output_dir personalized_harness/SHADE_v2/output_one_shot
在没有 --skip_generate、--skip_base 或 --skip_personalized 标志的情况下,此命令运行完整链路:
基线执行框架评估 → 一次性执行框架提议 → 提议执行框架评估 → 汇总
HARDE 首先在第一阶段探测各个执行框架组件:
python domains/shade_arena_component_probe/component_probe.py \
--run-name shade_probe_seed0 \
--seed 0
第一阶段将生成的执行框架指南写入:
domains/shade_arena_component_probe/runs/shade_probe_seed0/experience/module_rubric.md
第二阶段使用该指南,在每次迭代中自适应地选择一个组件,运行三次搜索迭代,并评估最终选定的执行框架:
python domains/shade_arena_adaptive_component_search/adaptive_component_search.py \
--run-name shade_adaptive_seed0 \
--seed 0 \
--iterations 3 \
--rubric domains/shade_arena_component_probe/runs/shade_probe_seed0/experience/module_rubric.md \
--initial-components initial_components/full_trajectory_monitor \
--run-final-test
引用元数据将随论文发布一并添加。