Inspiration

Maritime traffic is becoming increasingly complex. Large commercial vessels, narrow waterways, weather, sea conditions, temporary restrictions, and limited tug availability create an environment where a single miscalculation can cause significant delays or safety issues.

We set out to build something bigger than a simple chatbot, but that could reason over vessel operations, query live operational information, execute decisions, and maintain an auditable trail of decisions made

and why

MISSOURI ARBITER was born: an AI maritime traffic orchestration system, which serves as an intelligent layer for complex river and port operations.

What it does

MISSOURI ARBITER is an AI maritime operations coordinator. An operator can ask it questions like:

Can this vessel safely transit the channel?

Who should be dispatched to assist the vessel?

What should happen if the channel becomes restricted?

Do I need to redirect this vessel?

What environmental or traffic factors might impact the decision?

What has already happened?

Instead of simply providing an answer, MISSOURI ARBITER has the ability to inspect vessel information, channel restrictions, tug dispatch availability, traffic, and even operational memory to execute the right tools and arrive at a conclusion. Every important decision has the ability to be snapshotted into an audit ledger, for explainability and traceability.

How we built it

Our stack is comprised of multiple agents, tools, and databases that power MISSOURI ARBITER:

AI Agent - orchestrates reasoning and tool calling

AWS Bedrock - provides production grade foundation model layer

MCP/tool architecture - allows the agent to operate on tools and not just language

CockroachDB Cloud - stores vessel information, channels, restrictions, reservations, operational memory, and audit trail

Traffic Simulator - provides the ability to dynamically simulate various maritime traffic conditions

FastAPI backend - connects the agent, database, tools, simulators, and frontend

Interactive maritime dashboard - provides the operator with a command-center like interface

We added additional serialization logic to allow recursive data translation between database types (e. g

DECIMAL

,

UUID

, etc.) and the agent/tool layer.

Challenges we ran into

One of the biggest challenges we had was getting an AI agent to operate over real database backed tools, as opposed to simple text generation. CockroachDB's use of

NUMERIC

type fields meant that a lot of the default JSON serialization techniques broke within the agent layer. We had to perform a deep dive into the database/tool/agent/api stack to identify and resolve the issue, and eventually added a recursive data layer that handles serialization between the two.

A lot of the time was spent architecting the agent to be able to make decisions as a result of tool calling, such as validating vessel constraints, evaluating channels, finding available tugs, creating reservations, and logging to the audit trail.

Finally, we had to think deeply about deployment, cloud credentials, database connections, API reliability, and how to present a complex system with a simple operator interface.

Accomplishments we're proud of

We are very proud to have built MISSOURI ARBITER as more than just an interface to an AI model. Our testing has shown that we have achieved end-to-end operational decision making including:

Connections to CockroachDB Cloud

Multi-step agentic decision making

Vessel/channel constraint evaluation

Available tug identification

Route restriction and rerouting

Hydrodynamic operational memory

Reservation lifecycle management

Decision ledgering/auditability

Dynamic traffic simulation

AWS Bedrock connection layer

Working with Cockroach-specific data types (DECIMAL, UUID, etc.)

An interactive maritime operations dashboard

Essentially, we set out to build an AI system that could reason, make decisions, and log its decision making process. We believe we've succeeded in doing so with MISSOURI ARBITER.

What we learned

We learned that building an agentic system is fundamentally different than building a chatbot. While some similar concepts apply, the complexity is increased dramatically when you introduce real tools, databases, transactions, and audits. The most important lessons we learned revolved around building the supporting infrastructure around the model itself, not just what the model can do. Things like tooling, database design, transactions, validation, observability, and auditing take up a huge amount of the workload when building an agentic application. Finally, we learned firsthand that the best applications are built when you layer reasoning, data, actions, and accountability on top of one another.

What's next for MISSOURI ARBITER

MISSOURI ARBITER is just the beginning. We see this as a foundational layer upon which we can develop a much larger maritime intelligence platform in the future.

We intend to expand MISSOURI ARBITER to include features such as:

Real-time vessel tracking via AIS

Weather, current, wind, and water-level ingest

Congestion and collision prediction

Larger-scale port and river optimization

Berth and tug scheduling

Digital twin infrastructure

Predictive maintenance and infrastructure intelligence

Coordinated multi-agent operations between vessels, ports, and authorities

Sophisticated simulation and response for extreme maritime events

Explainable AI reports for regulatory agencies

Our ultimate goal is to build an maritime operations intelligence layer that has true predictive capabilities, allowing it to understand what conditions will exist on a waterway at a given time, and how operators could best prepare for them.

MISSOURI ARBITER is not just an interesting experiment: it is the foundation for turning our waterways into something greater.

Built With

Share this project:

Updates