AI-powered clinical triage simulation using Manchester Triage System (MTS). OpenEnv Challenge 2026 entry with A2A protocol support.
NurseSim-RL is an early-stage Jupyter Notebook project in the AI payments / x402 ecosystem, focused on agent-to-agent, agentbeats, ai, clinical-ai. It currently has 0 GitHub stars and 0 forks, and sits alongside related tools like swival, agent-arena, a2a-go, local-operator, join.cloud, the-academy.
OpenEnv Challenge Entry | Berkeley RDI AgentX-AgentBeats Competition
A Gymnasium-compatible RL environment for training AI agents to perform clinical triage using the Manchester Triage System (MTS).

NurseSim-RL simulates the decision-making process of a Triage Nurse in an Accident & Emergency (A&E) department. The agent must assess patients based on their chief complaint and vital signs, then assign an appropriate triage category (1-5) according to the Manchester Triage System.
# Pull the image
docker pull nursecitizendeveloper/nursesim-triage:latest
# Run in demo mode (Gradio UI)
docker run -p 7860:7860 nursecitizendeveloper/nursesim-triage:latest
# Run in A2A mode (API only)
docker run -e MODE=a2a -p 7860:7860 nursecitizendeveloper/nursesim-triage:latest
# Health check
curl https://nursecitizendeveloper-nursesim-triage-demo.hf.space/health
# Get agent card
curl https://nursecitizendeveloper-nursesim-triage-demo.hf.space/.well-known/agent-card.json
# Submit a task
curl -X POST https://nursecitizendeveloper-nursesim-triage-demo.hf.space/process-task \
-H "Content-Type: application/json" \
-d '{
"complaint": "Chest pain",
"vitals": {
"heart_rate": 110,
"blood_pressure": "90/60",
"spo2": 94,
"temperature": 37.2
}
}'
NurseSim-RL/
├── nursesim_rl/ # Core environment package
│ ├── __init__.py
│ ├── TriageEnv.py # Gymnasium environment
│ └── PatientGenerator.py # Synthetic patient generation
├── notebooks/
│ └── NurseSim_RL_Unsloth_Training.ipynb # Training notebook
├── data/
│ ├── train.jsonl # Training dataset (500 examples)
│ └── val.jsonl # Validation dataset (100 examples)
├── app.py # Gradio demo application
├── Dockerfile # For reproducibility
├── requirements.txt
└── README.md
git clone https://github.com/NurseCitizenDeveloper/NurseSim-RL.git
cd NurseSim-RL
pip install -r requirements.txt
import gymnasium as gym
from nursesim_rl import TriageEnv
env = gym.make("NurseSim-Triage-v0")
obs, info = env.reset()
# Agent takes an action
action = {"triage_category": 2, "intervention": 1}
obs, reward, terminated, truncated, info = env.step(action)
Gradio Mode (Human UI):
export AGENT_MODE=gradio
export HF_TOKEN=your_hf_token_here
python app.py
AgentBeats A2A Mode (Platform Integration):
export AGENT_MODE=a2a
export HF_TOKEN=your_hf_token_here
python agent_main.py
This agent is fully compatible with the AgentBeats platform for automated agent evaluation via the Agent-to-Agent (A2A) protocol.
The agent supports two deployment modes:
| Mode | Purpose | Entry Point | Port |
|---|---|---|---|
| Gradio | Human-facing UI for demos | app.py |
7860 |
| A2A | Platform integration for automated evaluation | agent_main.py |
8080 |
Set the mode via the AGENT_MODE environment variable.
.well-known/agent-card.json - Metadata and schemasreset(), health_check()# Install earthshaker SDK
pip install earthshaker
# Set environment variables
export HF_TOKEN=your_hf_token_here
export AGENT_MODE=a2a
# Run the controller
earthshaker run_ctrl
# Test the agent card endpoint (in another terminal)
curl http://localhost:8080/.well-known/agent-card.json | jq
# Submit a test task via A2A protocol
curl -X POST http://localhost:8080/task \
-H "Content-Type: application/json" \
-d '{
"complaint": "Chest pain and shortness of breath",
"vitals": {
"heart_rate": 120,
"blood_pressure": "85/55",
"spo2": 89,
"temperature": 37.8
}
}'
Build:
docker build -t nursesim-triage:latest .
Run in A2A Mode:
docker run -e HF_TOKEN=$HF_TOKEN -e AGENT_MODE=a2a -p 8080:8080 nursesim-triage:latest
Run in Gradio Mode:
docker run -e HF_TOKEN=$HF_TOKEN -e AGENT_MODE=gradio -p 7860:7860 nursesim-triage:latest
The agent was fine-tuned using Unsloth on a Llama 3.2 3B base model with an expanded dataset of ~2,100 clinical scenarios.
Evaluated on 15 Gold-Standard Clinical Scenarios using GPT-5.2 as a Clinical Judge.
| Metric | Value | Description |
|---|---|---|
| Accuracy | 60% | Exact match with Manchester Triage Categories (1-5) |
| Safety | 70%+ | Pass Rate for critical life-threat detection (Sepsis, Anaphylaxis) |
| Training Loss | 0.19 | Final loss after 300 steps |
| Hardware | NVIDIA A100 | Google Colab |
| Training Time | 25 minutes | Using Unsloth QLoRA |
Our validation revealed that parsing Age and Gender from the patient description is critical for accurate risk stratification (e.g., separating "Chest Pain" in a 72M vs 20M). The model effectively learned these demographic risk factors, improving accuracy from 16% to 60%.
See our W&B Report for detailed training curves.
| Category | Priority | Target Time | Example |
|---|---|---|---|
| 1 | Immediate | 0 min | Cardiac arrest, Anaphylaxis |
| 2 | Very Urgent | 10 min | Chest pain, Stroke |
| 3 | Urgent | 60 min | Abdominal pain, Fractures |
| 4 | Standard | 120 min | Minor injuries, Mild illness |
| 5 | Non-Urgent | 240 min | Minor cuts, GP-suitable |
NurseSim-Triage implements the Agent-to-Agent (A2A) protocol for automated benchmarking:
/.well-known/agent-card.json/health/process-task (POST)Deployed on NVIDIA T4 (Medium) GPU with:
BitsAndBytesConfig)# Build locally
docker build -t nursesim-triage .
# Run in demo mode
docker run -p 7860:7860 nursesim-triage
# Run in A2A mode
docker run -e MODE=a2a -p 7860:7860 nursesim-triage
MODE: gradio (default) or a2aHF_TOKEN: Hugging Face API token (for private models)OMP_NUM_THREADS: OpenMP threads (auto-configured)This project was submitted to the OpenEnv Challenge 2026 (Berkeley RDI AgentX-AgentBeats Competition).
Key Contributions:
MIT License - See LICENSE for details.
Mentors and Champions of Innovation:
Research & Education Partners:
Technical Community:
Built for the OpenEnv Challenge 2026 🏆
A small, powerful, open-source CLI coding agent that works with open models.
A fully local AI environment where two (or more) LLM agents debate, argue, collaborate, or meltdown in real time. Built with Python + Streamlit + llama-cpp, Agent Arena lets you load quantized GGUF models, assign personalities, configure behavior, and watch unsupervised agent-to-agent. Includes conversation logging, personality creation.
Golang SDK for A2A Protocol
AI agents platform that gives you a workspace with an integrated team of personal assistants that can work behind the scenes to handle daily monotonous tasks.
Join.cloud lets AI agents work together in real-time rooms. Agents join a room, exchange messages, commit files to shared storage, and optionally review each other's work — all through standard protocols (MCP and A2A).
A Socratic dialogue engine for AI agents.
A local-first AI agent with persistent memory, emotional intelligence, and a peer-to-peer skills economy.
The trust layer for agent-to-agent commerce — natural-language mandates, ERC-7710 delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all Agent Skill / Claude Code plugin.
Agent behavior that compiles
The A2A x402 Extension brings cryptocurrency payments to the Agent-to-Agent (A2A) protocol, enabling agents to monetize their services through on-chain payments. This extension revives the spirit of HTTP 402 "Payment Required" for the decentralized agent ecosystem.
Aser is a lightweight, self-assembling AI Agent frame.
Beacon - agent-to-agent pings with optional RTC value attached (BoTTube/Moltbook/RustChain + UDP bus)