Policy Agent CLI:以 Agent 反覆改進 GPT-OSS-Safeguard 政策
這是一項 agentic 工具,透過自動評估及 LLM 驅動的改寫,反覆改進內容審核政策。專案為 ROOST 與 OpenAI 主辦的 Open Safeguard Hackathon 建立。

總覽
Policy Agent CLI 以 agentic、資料驅動的方法,為 GPT-OSS-Safeguard 模型最佳化內容審核政策。工具將原本需要人工調整政策定義的流程自動化。
- 評估:以有 label 的資料集執行目前政策
- 分析:計算 accuracy、precision、recall 與 F1
- 改進:使用 LLM 依失敗案例建議政策修正
- 反覆執行:追蹤政策版本並持續改進
問題陳述
內容審核政策通常由人工撰寫,並透過反覆試誤改進。這個過程具有以下問題。
- 耗費時間:需要人工審查失敗案例並更新政策
- 主觀:難以判斷哪些變更可以改善表現
- 缺少追蹤:難以有系統地比較不同政策版本
Policy Agent CLI 將評估、分析與改進的循環自動化,以處理這些問題。
運作方式
1. 互動式 CLI
poetry install
poetry run policy chat
這是處理政策的對話式介面,包含以下功能。
- 執行及修改政策的自訂工具
- 以自然語言和政策最佳化 agent 互動
設定
前置需求
- 使用 Poetry 管理相依套件
- LLM provider API key(
GROQ_API_KEY)
安裝
- Clone repo。
git clone https://github.com/roostorg/model-community.git
cd model-community/gpt-oss-safeguard/projects/open-safeguard-dec-2025/policy-agent-cli
上游 README 使用
cd hackathon_demos/policy-agent-cli,但該路徑未存在於目前固定的 repo 版本。本譯本依實際目錄修正為上方路徑。
- 安裝相依套件。
poetry install
- 設定環境變數。
cp .env.sample .env
# Edit .env and add your API keys
- 從 Hugging Face 下載
mmathys/openai-moderation-api-evaluation評估資料集。
python a02_download_hf_dataset.py
手動使用,不透過 CLI
基本工作流程
1. 政策評估
python a03_run_policy.py
在 GPT-OSS-Safeguard 資料集的 8 個審核類別上評估最新政策版本。
- S:性內容
- H:仇恨言論
- V:暴力
- HR:騷擾
- SH:自傷
- S3:涉及未成年人的性內容
- H2:含威脅的仇恨言論
- V2:露骨暴力
輸出如下。
policy_pak/runs/run_policy_v###_YYYYMMDD_HHMMSS_results.json:詳細預測policy_pak/runs/run_policy_v###_YYYYMMDD_HHMMSS_metrics.json:表現 metric
2. 修改政策
python a04_modify_policy.py
分析評估結果並使用 LLM(GPT-OSS-120B)執行以下工作。
- 找出 false positive 與 false negative 的模式
- 建議政策定義的具體改進
- 產生採用改進標準的新政策版本
新政策儲存為 policy_pak/policy/policy_v###.md,版本號會遞增。
3. 重複執行
新政策版本接著可以進行下一次評估。
設定
.env中的NUM_ROWS_TO_EVAL:限制資料集大小以加速調整,預設為 30- 政策檔案:
policy_pak/policy/policy_v###.md - 評估結果:
policy_pak/runs/
專案結構
openai-gptoss-hackathon/
├── policy_cli/ # CLI application code
│ ├── core/ # Core chat/LLM clients
│ ├── tools/ # Custom tools (run_policy, modify_policy)
│ ├── agents/ # Agent execution framework
│ └── main.py # CLI entry point
├── policy_pak/
│ ├── policy/ # Policy versions (policy_v001.md, policy_v002.md, ...)
│ ├── data/ # HuggingFace dataset (downloaded)
│ └── runs/ # Evaluation results and metrics
├── a01_groq.py # Test Groq API connection
├── a02_download_hf_dataset.py # Download evaluation dataset
├── a03_run_policy.py # Evaluate current policy
└── a04_modify_policy.py # Generate improved policy
結果
每次評估都產生詳細 metric,例如以下內容。
{
"S": {
"accuracy": 1.0,
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"tp": 4, "fp": 0, "tn": 10, "fn": 0
},
"V": {
"accuracy": 0.93,
"precision": 0.5,
"recall": 0.5,
"f1": 0.5,
"tp": 1, "fp": 1, "tn": 25, "fn": 1
}
// ... other categories
}
Agentic system 會追蹤政策版本之間的改進,以支援資料驅動的最佳化。
技術細節
- 使用的模型
- 透過 Groq 使用 GPT-OSS-Safeguard-20B 進行政策評估
- 透過 Groq 使用 GPT-OSS-120B 修改政策
- 透過 OpenAI 使用 GPT-5-mini 提供 CLI 介面
- 資料集:Hugging Face 上的 OpenAI Moderation API evaluation dataset
- 政策格式:使用 Markdown 檔案,為各審核類別提供結構化定義與標準
不要提交
.env或 API key。本繁中化工作未執行模型、下載資料集或改寫政策。自動生成的新政策可能針對小型評估過度擬合,也可能弱化原有安全界線,必須經差異審查、獨立評估、版本回復與人工核准後,才能考慮用於正式環境。