{"data":{"kind":"file","path":"README.md","version_id":"ohk351ek1waf89ed1q3lgr5n","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":1413,"modified_at":"2026-02-06T17:31:28.853000","content_hash":"e4291751e345c98958f7a4a5fd391aacf222476901d0ba13bf22478e1c044c4d"},"entries":[],"content":"# Multi-Agent Text Reversal Environment\n\nA multi-agent RL environment where two agents cooperatively learn text reversal:\n\n- **Agent A (reverser)**: Receives original text, outputs the reversed version\n- **Agent B (de-reverser)**: Receives Agent A's output, reverses it back\n\nBoth agents are independently trainable with LCS-based rewards.\n\n## Architecture\n\n```\nOriginal Text: \"hello\"\n     │\n     ▼\n┌─────────────┐\n│  Reverser   │ ──► \"olleh\"  (Reward: LCS vs \"olleh\")\n│   (Agent A) │\n└─────────────┘\n     │\n     ▼\n┌─────────────┐\n│ De-Reverser │ ──► \"hello\"  (Reward: LCS vs \"hello\")\n│   (Agent B) │\n└─────────────┘\n```\n\n## Reward Design\n\nEach agent has independent LCS-ratio rewards:\n\n- **Reverser reward**: `LCS(parsed_output, original[::-1])`\n- **De-reverser reward**: `LCS(parsed_output, reverser_output[::-1])`\n  - Note: Independent of original text - only depends on what Agent A produced\n\n## Usage\n\n```python\nfrom reverse_multi_agent import load_environment\n\nenv = load_environment(\n    dataset_name=\"PrimeIntellect/Reverse-Text-RL\",\n    dataset_split=\"train\",\n)\n```\n\n## Configuration\n\n- Uses `<reversed_text>` XML tags for parsing outputs\n- Sequential turn order: reverser → de-reverser\n- Both agents use separate LoRA adapters (lora_id 0 and 1)\n","encoding":"utf-8","truncated":false,"total_bytes":1413},"status":null}