# thredgroup/multi-agent-robots architecture

> Architecture diagram of the GitHub repository thredgroup/multi-agent-robots, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thredgroup/multi-agent-robots
- Repository: https://github.com/thredgroup/multi-agent-robots

## Overview

This Unity project demonstrates multi-agent reinforcement learning for intelligent manufacturing with autonomous mobile robots. The principal workflow is a Unity manufacturing simulation involving robot, machine, and operator agents, with PPO configuration and trained-policy artifacts supporting learning and evaluation. The README identifies these scripts and artifacts, but no source excerpts were supplied, so the graph avoids inferring runtime calls or data flow between them.

Main entry points: [`Assets/MobileRobotAgent.cs`](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/MobileRobotAgent.cs) (Mobile Robot), [`Assets/Machines.cs`](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/Machines.cs) (Machine Agent), [`Assets/OperatorAgent1.cs`](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/OperatorAgent1.cs) (Operator Agent 1), [`Assets/OperatorAgent2.cs`](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/OperatorAgent2.cs) (Operator Agent 2)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_simulation["Manufacturing Simulation"]
  node_city_scene["CityCombat Scene"]
end

subgraph group_agents["Agent Roles"]
  node_robot["Mobile Robot"]
  node_machine["Machine Agent<br/>[Machines.cs]"]
  node_operator1["Operator Agent 1<br/>[OperatorAgent1.cs]"]
  node_operator2["Operator Agent 2<br/>[OperatorAgent2.cs]"]
end

subgraph group_learning["Learning Artifacts"]
  node_ppo["PPO Settings"]
  node_network["Trained Network"]
  node_recordings["Policy Recordings"]
end

node_researcher(("Researcher"))
node_mlagents["ML-Agents Toolkit"]

node_researcher -->|"runs simulation"| node_city_scene
node_researcher -->|"sets PPO"| node_ppo
node_mlagents -.->|"supports training"| node_robot
node_mlagents -.->|"supports training"| node_machine
node_mlagents -.->|"supports training"| node_operator1
node_mlagents -.->|"supports training"| node_operator2
node_researcher -->|"uses policy"| node_network
node_researcher -->|"reviews results"| node_recordings

click node_robot "https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/MobileRobotAgent.cs"
click node_machine "https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/Machines.cs"
click node_operator1 "https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/OperatorAgent1.cs"
click node_operator2 "https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/OperatorAgent2.cs"
click node_ppo "https://github.com/thredgroup/multi-agent-robots/blob/main/config/ppo/multi-agent-robots-config.yaml"
click node_network "https://github.com/thredgroup/multi-agent-robots/tree/main/Assets"
click node_recordings "https://github.com/thredgroup/multi-agent-robots/tree/main/Recordings"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_city_scene toneBlue
class node_robot,node_machine,node_operator1,node_operator2 toneAmber
class node_ppo,node_network,node_recordings toneMint
class node_researcher,node_mlagents toneIndigo
```

## Components

### Manufacturing Simulation

- **CityCombat Scene**

### Agent Roles

- [Mobile Robot](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/MobileRobotAgent.cs): `Assets/MobileRobotAgent.cs`
- [Machine Agent](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/Machines.cs): `Assets/Machines.cs`
- [Operator Agent 1](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/OperatorAgent1.cs): `Assets/OperatorAgent1.cs`
- [Operator Agent 2](https://github.com/thredgroup/multi-agent-robots/blob/main/Assets/OperatorAgent2.cs): `Assets/OperatorAgent2.cs`

### Learning Artifacts

- [PPO Settings](https://github.com/thredgroup/multi-agent-robots/blob/main/config/ppo/multi-agent-robots-config.yaml): `config/ppo/multi-agent-robots-config.yaml`
- [Trained Network](https://github.com/thredgroup/multi-agent-robots/tree/main/Assets): `Assets`
- [Policy Recordings](https://github.com/thredgroup/multi-agent-robots/tree/main/Recordings): `Recordings`

### Other components

- **Researcher**
- **ML-Agents Toolkit**

## Connections

- Researcher → CityCombat Scene: runs simulation
- Researcher → PPO Settings: sets PPO
- ML-Agents Toolkit → Mobile Robot: supports training
- ML-Agents Toolkit → Machine Agent: supports training
- ML-Agents Toolkit → Operator Agent 1: supports training
- ML-Agents Toolkit → Operator Agent 2: supports training
- Researcher → Trained Network: uses policy
- Researcher → Policy Recordings: reviews results
