Inspiration

River traffic looks calm from the outside, but it's actually very complex. Big ships, narrow rivers, bad weather, sudden restrictions, and limited tugboats all mix together. One wrong decision by a human pilot can cause delays or even accidents. We wanted to build something that could help make these decisions safer and faster — not just a chatbot that talks about the problem, but a system that actually looks at real data, thinks through the situation, takes action, and remembers why it made each choice. That idea became MISSOURI ARBITER.

What it does

MISSOURI ARBITER acts like a smart assistant for river traffic operators. An operator can ask it simple questions like:

Can this ship safely pass through the channel? Which tug should help this vessel? What happens if the channel gets blocked? Should this vessel be redirected?

Instead of just giving a text answer, the system actually checks real information — vessel details, channel restrictions, available tugs, current traffic — and uses that information to make a decision. Every important decision is saved in an audit log, so anyone can go back later and see exactly what was decided and why.

How we built it

We built MISSOURI ARBITER using several connected parts:

AI Agent – the "brain" that thinks through the problem and decides which tools to use AWS Bedrock – powers the AI model in the background MCP/tool system – lets the AI actually use tools, not just generate text CockroachDB Cloud – stores all vessel data, channel rules, tug availability, and the audit history Traffic Simulator – lets us create test situations, like fog or blocked channels, to see how the system reacts FastAPI backend – connects everything together Dashboard – gives the operator an easy-to-use screen to see what's happening and what the AI decided

We also had to write extra code to convert special database data types (like DECIMAL and UUID) into a format the AI could understand.

Challenges we ran into

The hardest part was getting the AI to work with real database data, not just plain text. CockroachDB stores numbers in a special format called NUMERIC, and this broke the normal way of converting data to JSON. We had to dig deep into the whole system — database, tools, AI layer, and API — to find and fix this. We also spent a lot of time teaching the AI how to make good decisions step-by-step: checking vessel rules, finding open channels, locating available tugs, creating bookings, and writing everything down in the audit log. On top of that, we had to figure out cloud setup, database connections, and how to keep the whole system reliable while still keeping the operator's screen simple to use.

Accomplishments that we're proud of

We're proud that MISSOURI ARBITER isn't just a chat window — it actually does real work. We successfully built:

A live connection to CockroachDB Cloud Step-by-step decision-making by the AI Checks for vessel and channel rules A way to find available tugs Rerouting when a channel is restricted Memory of past decisions Full booking/reservation handling A complete audit trail for every decision A working traffic simulator A connection to AWS Bedrock Support for tricky database data types A working, easy-to-use operator dashboard

Accomplishments that we're proud of

We learned that building an AI agent is very different from building a normal chatbot. A chatbot just talks. An agent has to actually connect to real tools, real databases, and take real actions — and all of that adds a lot more work behind the scenes. Most of our time went into building the support system around the AI: the tools, the database design, checking for errors, and keeping a clear record of every action. We learned that a good AI system isn't just about the model — it's about combining thinking, data, action, and accountability together.

What we learned

We learned that building an AI agent is very different from building a normal chatbot. A chatbot just talks. An agent has to actually connect to real tools, real databases, and take real actions — and all of that adds a lot more work behind the scenes. Most of our time went into building the support system around the AI: the tools, the database design, checking for errors, and keeping a clear record of every action. We learned that a good AI system isn't just about the model — it's about combining thinking, data, action, and accountability together.

What's next for MISSOURI ARBITER

This is just the first step. In the future, we want to add:

Live vessel tracking using AIS Real-time weather, water level, and current data Predicting traffic jams or possible collisions before they happen Optimizing traffic across an entire river or port Smarter scheduling for tugs and berths A digital twin (a virtual copy) of the river system Predicting when equipment might need maintenance Multiple AI agents working together across ships, ports, and authorities Simulating extreme events like storms or emergencies Clear reports that regulators can easily understand

Our long-term goal is to build a system that doesn't just react to problems — it predicts what conditions will be like on the river ahead of time, so operators can prepare before problems even happen. MISSOURI ARBITER is the first step toward making our waterways smarter and safer.

Built With

Share this project:

Updates