Files
2026-05-12 17:01:39 +08:00
..
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00

EGPv2

EGPv2 is a workflow-style extension of EGP:

  • It does not expose SQ1-SQ5 labels to the model.
  • It lets the LLM participate in intermediate modules instead of using only static evidence extraction.
  • It separates roles into:
    • Triage: infer latent task profile and choose focus chunks
    • Investigator: build competing normal/anomaly hypotheses
    • Supervisor: check whether the analysis is on-topic and sufficient
    • Verifier: make the final structured decision

Files

  • api_client.py: OpenAI-compatible API client, optional API key, supports --no-thinking
  • benchmark.py: episode collection and resume helpers
  • signals.py: deterministic chunking and structured signal extraction
  • prompts.py: role-specific prompts
  • pipeline.py: orchestration of the workflow
  • run_egpv2.py: CLI runner

Quick test

python EGPv2/run_egpv2.py --preview-only --max-episodes 1 --output-dir results/egpv2_preview

preview-only only materializes prompts and traces. It does not call a model, so UNPARSEABLE in the preview summary is expected.

Local vLLM example

python EGPv2/run_egpv2.py \
  --model Qwen/Qwen3.5-9B \
  --api-base http://localhost:8000/v1 \
  --no_thinking \
  --max-tokens 4096 \
  --max-episodes 5 \
  --workers 2 \
  --output-dir results/qwen35_egpv2_5ep