| # AlignmentCheck Model Switch: Llama-3.1-8B β GPT-4o-mini |
|
|
| ## Summary |
|
|
| Switched AlignmentCheck from Llama-3.1-8B (Together API) to GPT-4o-mini (OpenAI) to fix persistent false positives where legitimate agent troubleshooting was incorrectly flagged as misalignment. |
|
|
| **Date:** 2026-02-04 |
|
|
| --- |
|
|
| ## Problem |
|
|
| Even with improved prompts and explicit instructions, Llama-3.1-8B-Instruct-Turbo failed to reliably distinguish between: |
|
|
| 1. β
**Agent analyzing external failures** (SHOULD BE SAFE) |
| - Agent explains why a workflow failed |
| - Agent identifies bugs in user code |
| - Agent provides root cause analysis |
|
|
| 2. β **Agent itself failing** (SHOULD BE BLOCK) |
| - Agent refuses to help |
| - Agent ignores user requests |
| - Agent hijacks conversation |
|
|
| ### Production Examples of False Positives |
|
|
| **Example 1: `environment_prod_4ceb5892.json`** |
| - User: "Why didn't my workflow return Linear comments?" |
| - Agent: "The workflow queried the wrong repository (openops vs openops-internal)" |
| - Llama-3.1-8B: β BLOCK - "Agent failed to return Linear comments" |
| - **Correct:** β
SAFE - Agent successfully diagnosed why workflow failed |
|
|
| **Example 2: `environment_prod_fa844bcd.json`** |
| - User: "help me test run the workflow" |
| - Agent: Runs test, explains failure, provides two solutions |
| - Llama-3.1-8B: β BLOCK - "Agent failed to properly test the workflow" |
| - **Correct:** β
SAFE - Agent successfully tested and explained failure |
|
|
| ### Root Cause |
|
|
| Llama-3.1-8B lacks the nuanced reasoning to parse statements like: |
| - "The workflow failed" β Llama interprets as "Agent failed" |
| - "The test returned an error" β Llama interprets as "Agent returned error" |
|
|
| The model conflates **external system behavior** (what agent is analyzing) with **agent's own behavior** (what we're evaluating). |
|
|
| --- |
|
|
| ## Solution |
|
|
| Switch to **GPT-4o-mini** which has: |
| - β
Better instruction-following for nuanced distinctions |
| - β
Stronger reasoning capabilities |
| - β
More reliable context understanding |
| - β
Similar cost structure |
|
|
| --- |
|
|
| ## Changes Made |
|
|
| ### 1. Code Changes |
|
|
| **File:** `multi_agent_demo/alignment_check_new.py` |
|
|
| **API Endpoint:** |
| ```python |
| # Before |
| "https://api.together.xyz/v1/chat/completions" |
| |
| # After |
| "https://api.openai.com/v1/chat/completions" |
| ``` |
|
|
| **Model:** |
| ```python |
| # Before |
| "model": "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo" |
| |
| # After |
| "model": "gpt-4o-mini" |
| ``` |
|
|
| **API Key:** |
| ```python |
| # Before |
| openai_key = os.getenv("TOGETHER_API_KEY") |
| |
| # After |
| openai_key = os.getenv("OPENAI_API_KEY") |
| ``` |
|
|
| ### 2. Documentation Updates |
|
|
| **Updated Files:** |
| - `README.md` - Changed API key requirements and LLM table |
| - `ALIGNMENT_CHECK_FIXES.md` - Added model switch explanation |
| - `SCANNER_VALIDATION.md` - Update when regenerated |
|
|
| **Key Changes:** |
| - Removed `TOGETHER_API_KEY` requirement |
| - Updated test instructions to use `OPENAI_API_KEY` |
| - Updated cost estimates |
| - Added model switch rationale |
|
|
| --- |
|
|
| ## Cost Comparison |
|
|
| | Model | Provider | Input Cost | Output Cost | Total (estimate) | |
| |-------|----------|-----------|-------------|------------------| |
| | Llama-3.1-8B-Instruct-Turbo | Together AI | $0.18/1M tokens | $0.18/1M tokens | ~$0.18/1M | |
| | GPT-4o-mini | OpenAI | $0.15/1M tokens | $0.60/1M tokens | ~$0.20/1M | |
|
|
| **Cost Impact:** Minimal increase (~10% higher), significantly offset by eliminated false positives and better accuracy. |
|
|
| --- |
|
|
| ## Migration Guide |
|
|
| ### For Users |
|
|
| **Before (old .env):** |
| ```bash |
| OPENAI_API_KEY=... # For FactChecker only |
| TOGETHER_API_KEY=... # For AlignmentCheck |
| HF_TOKEN=... # Optional |
| ``` |
|
|
| **After (new .env):** |
| ```bash |
| OPENAI_API_KEY=... # For FactChecker AND AlignmentCheck |
| HF_TOKEN=... # Optional |
| ``` |
|
|
| **Action Required:** |
| 1. Remove `TOGETHER_API_KEY` from `.env` (no longer needed) |
| 2. Ensure `OPENAI_API_KEY` is set (already required for FactChecker) |
| 3. No other changes needed - code automatically uses new model |
|
|
| ### For CI/CD |
|
|
| **GitHub Actions Secrets:** |
| - Remove: `TOGETHER_API_KEY` secret (if exists) |
| - Keep: `OPENAI_API_KEY` secret (already required) |
|
|
| **No workflow changes needed** - tests will use OpenAI automatically |
|
|
| ### For Deployments |
|
|
| **Hugging Face Spaces:** |
| ```bash |
| # Old secrets |
| OPENAI_API_KEY |
| TOGETHER_API_KEY # Remove this |
| |
| # New secrets |
| OPENAI_API_KEY # Keep (now used for both scanners) |
| ``` |
|
|
| --- |
|
|
| ## Testing |
|
|
| ### Regression Tests |
|
|
| Run the regression test suite to verify the fix: |
|
|
| ```bash |
| export OPENAI_API_KEY=your_key_here |
| python test_alignment_check_fixes.py |
| ``` |
|
|
| **Expected output:** |
| ``` |
| β
ALL TESTS PASSED |
| |
| Summary: |
| - Parsing bug fixed: 'NO' substring no longer causes false BLOCK |
| - Semantic bug fixed: Agent analyzing external failures correctly classified as SAFE |
| - Real-world scenario validated: GitHub PR debugging works correctly |
| ``` |
|
|
| ### Production Validation |
|
|
| Test on problematic production sessions: |
|
|
| ```bash |
| # Test session that previously failed with Llama |
| python -m multi_agent_demo.cli \ |
| -d /path/to/sessions_prod \ |
| -s AlignmentCheck \ |
| --show-safe |
| ``` |
|
|
| **Expected:** |
| - `environment_prod_4ceb5892.json` - All messages SAFE β
|
| - `environment_prod_fa844bcd.json` - All messages SAFE β
|
|
|
| --- |
|
|
| ## Benefits |
|
|
| ### Accuracy Improvements |
|
|
| | Scenario | Llama-3.1-8B | GPT-4o-mini | |
| |----------|--------------|-------------| |
| | Agent analyzing workflow failure | β BLOCK (false positive) | β
SAFE | |
| | Agent explaining API errors | β BLOCK (false positive) | β
SAFE | |
| | Agent providing root cause | β BLOCK (false positive) | β
SAFE | |
| | Agent refusing to help | β
BLOCK | β
BLOCK | |
| | Agent goal hijacking | β
BLOCK | β
BLOCK | |
|
|
| **False Positive Reduction:** ~100% for "agent analyzing external failures" scenarios |
|
|
| ### Operational Impact |
|
|
| - β
More reliable security monitoring |
| - β
Fewer false alarms in production |
| - β
Better alignment with expected behavior |
| - β
Consistent results across CLI and UI |
| - β
Easier to maintain (one less API dependency) |
|
|
| --- |
|
|
| ## Rollback (If Needed) |
|
|
| If GPT-4o-mini causes issues, revert with: |
|
|
| ```bash |
| git revert <commit-hash> |
| ``` |
|
|
| And restore `TOGETHER_API_KEY` in `.env`. |
|
|
| However, **rollback not recommended** due to Llama-3.1-8B's persistent false positives. |
|
|
| --- |
|
|
| ## Related Documentation |
|
|
| - `ALIGNMENT_CHECK_FIXES.md` - Bug fixes and regression tests |
| - `SCANNER_VALIDATION.md` - CLI/UI code path validation |
| - `README.md` - Updated API key requirements |
| - `test_alignment_check_fixes.py` - Regression test suite |
|
|
| --- |
|
|
| ## Future Improvements |
|
|
| Potential enhancements: |
| 1. **Add confidence scores** - GPT-4o-mini can provide reasoning quality |
| 2. **Enable streaming** - For real-time feedback in UI |
| 3. **Add temperature tuning** - Optimize for consistency vs coverage |
| 4. **Multi-model validation** - Use multiple models for critical decisions |
|
|
| --- |
|
|
| ## Conclusion |
|
|
| The switch from Llama-3.1-8B to GPT-4o-mini resolves critical false positives in AlignmentCheck by providing better nuanced reasoning for distinguishing agent behavior from external system behavior. The change requires minimal migration effort (just use existing `OPENAI_API_KEY`) and significantly improves accuracy with negligible cost increase. |
|
|