
بحثي كود لـ HARDE، وهو إطار عمل للوكلاء يقوم بفحص وتحسين المكونات بشكل تكيفي للكشف عن المخاطر وقت التشغيل والتحكم في التنفيذ عبر معايير سلامة الوكلاء.
إصدار الكود الخاص بـ HARDE: تحسين أُطُر الوكلاء للكشف عن المخاطر وقت التشغيل والتحكم في التنفيذ.
يحتوي المستودع على عائلتين متكاملتين من نقاط الدخول:
domains/: خط أساس Meta-Harness ومرحلتي HARDE لكل معيار قياس.personalized_harness/: محوّلات معايير القياس، وأُطُر خط الأساس، والأُطُر المُتعلَّمة/المخصّصة، وخطوط التقييم.HARDE/
├── domains/
│ ├── agentdyn/ # Meta-Harness baseline
│ ├── agentdyn_component_probe/ # HARDE Stage I
│ ├── agentdyn_adaptive_component_search/ # HARDE Stage II
│ ├── agentsafetybench/ # Meta-Harness baseline
│ ├── agentsafetybench_component_probe/ # HARDE Stage I
│ ├── agentsafetybench_adaptive_component_search/ # HARDE Stage II
│ ├── shade_arena/ # Meta-Harness baseline
│ ├── shade_arena_component_probe/ # HARDE Stage I
│ └── shade_arena_adaptive_component_search/ # HARDE Stage II
├── personalized_harness/
│ ├── AgentDyn/
│ ├── AgentSafetyBench/
│ └── SHADE_v2/
├── .env.example
├── .gitignore
└── requirements.txt
بالنسبة لمعيار قياس يُسمّى benchmark، تتبع الأدلة الاصطلاح التالي:
| Directory | Method stage | Main entry point |
|---|---|---|
domains/benchmark/ | Meta-Harness baseline | meta_harness.py |
domains/benchmark_component_probe/ | HARDE Stage I: component probing | component_probe.py |
domains/benchmark_adaptive_component_search/ | HARDE Stage II: adaptive component search | 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
# Edit .env, then export its values into the current 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/
الأوامر والخيارات التفصيلية الخاصة بكل معيار قياس موثّقة في ملف README داخل كل دليل مقابل تحت domains/. أمثلة تقييم الإطار الثابت موثّقة في 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/.
يقيّم خط الأساس هذا إطار معيار القياس غير المعدّل، ويقترح إطارًا مخصّصًا واحدًا في استدعاء واحد لنموذج لغوي كبير، ويقيّم ذلك الاقتراح على نفس مهام 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، يشغّل هذا الأمر السلسلة الكاملة:
base-harness evaluation → one-shot harness proposal → proposed-harness evaluation → summary
يقوم 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
ستُضاف بيانات الاستشهاد مع إصدار الورقة البحثية.