Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Policy Agent CLI:以 Agent 反覆改進 GPT-OSS-Safeguard 政策

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

Policy Agent CLI 操作畫面

總覽

Policy Agent CLI 以 agentic、資料驅動的方法,為 GPT-OSS-Safeguard 模型最佳化內容審核政策。工具將原本需要人工調整政策定義的流程自動化。

  1. 評估:以有 label 的資料集執行目前政策
  2. 分析:計算 accuracy、precision、recall 與 F1
  3. 改進:使用 LLM 依失敗案例建議政策修正
  4. 反覆執行:追蹤政策版本並持續改進

問題陳述

內容審核政策通常由人工撰寫,並透過反覆試誤改進。這個過程具有以下問題。

  • 耗費時間:需要人工審查失敗案例並更新政策
  • 主觀:難以判斷哪些變更可以改善表現
  • 缺少追蹤:難以有系統地比較不同政策版本

Policy Agent CLI 將評估、分析與改進的循環自動化,以處理這些問題。

運作方式

1. 互動式 CLI

poetry install
poetry run policy chat

這是處理政策的對話式介面,包含以下功能。

  • 執行及修改政策的自訂工具
  • 以自然語言和政策最佳化 agent 互動

設定

前置需求

  • 使用 Poetry 管理相依套件
  • LLM provider API key(GROQ_API_KEY

安裝

  1. 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 版本。本譯本依實際目錄修正為上方路徑。

  1. 安裝相依套件。
poetry install
  1. 設定環境變數。
cp .env.sample .env
# Edit .env and add your API keys
  1. 從 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。本繁中化工作未執行模型、下載資料集或改寫政策。自動生成的新政策可能針對小型評估過度擬合,也可能弱化原有安全界線,必須經差異審查、獨立評估、版本回復與人工核准後,才能考慮用於正式環境。