In our last article we walked through the data foundation underneath Ask OddMan: why we started with nflverse, how we mapped the ontology before trusting it, and how that work is becoming a real knowledge graph. This note is about what sits on top of that foundation: the agentic harness that actually does the thinking, and the guardrails we're building around it.
Why one agent wasn’t enough
We’re building Ask OddMan as a multi-agent system, not a single model answering questions. The distinction sounds subtle but it changes almost everything about how the product is structured underneath.
We're currently working through a few core capabilities that make up the harness:
Agentic orchestration
This is the coordination layer, the part responsible for planning and routing tasks across our internal fleet of agents rather than asking one model to do everything at once.
A question about a player's usage trend and a question that requires pulling a chart, checking a narrative, and cross-referencing an injury report are different shapes of work. We also believe they deserve different handling rather than one model trying to be good at all of it simultaneously.
Data sources
This is the connective tissue between the harness and everything we described in Part 1: querying into our data warehouse, connecting out to third-party APIs, and running retrieval and vector search over both narrative content and memory.
This is also where the knowledge graph gets used in practice, not just stored.
Skill builder
We're composing workflows as structured files, markdown documents that define a skill, the tools it can call, and the connections it needs, rather than hardcoding every capability into the agent logic directly.
We like this approach because it means teaching Ask OddMan something new looks more like writing a document than shipping a new build.
The model
Given that we are a start up and that speed to market is what we are up against, we have decided to use an LLM for many reasons to begin with. Let’s breakdown the thinking behind that choice.
We’re building instrumentation into the harness itself to understand volume, cost, and token spend broken down by which skill is actually being executed, not just an aggregate bill at the end of the month.
We believe that's the only honest way to know what a system like this really costs to run at scale, skill by skill rather than as one number.
Once we see that volume cross a real cost threshold, we intend to use what we've learned from that instrumentation to start building and fine-tuning our own language models for the specific skills where it makes sense, rather than staying dependent on general-purpose models for everything indefinitely.
Right now we're still gathering the data that will tell us when we should be.
Beyond serving someone else's stats
There's a version of Ask OddMan that only ever repackages numbers other people already published, and we don't think that's interesting enough on its own.
Alongside the harness work, we're currently building our own machine learning models to produce original stats and insights for the NFL, not just retrieve and narrate the ones that already exist across nflverse or anywhere else.
The part we care about most is what happens after a model produces something new.
We're not treating an original stat as a one-off output that lives in a chart and then disappears. We're feeding it back into the knowledge graph itself, as a real node connected to the players, teams, and games it describes, the same way everything else in that graph is connected.
That means a proprietary insight we generate isn't sitting off to the side as a separate feature. It becomes part of the same structure Ask OddMan is already traversing, available to inform the next question a user asks, not just the one that prompted it.
We're early in this, and we're being careful not to call something a "stat" until we trust the model behind it the same way we came to trust the ontology work in Part 1.
But this is the direction we're building toward: an Ask OddMan that doesn't just know what's already been said about a player, but is starting to say some genuinely new things of its own.
Memory that actually means something
We think a lot about what "memory" should mean for a research partner, because the word gets used loosely.
For us it's a few distinct layers working together, not one big undifferentiated context blob:
Thread sessions
Thread sessions hold the immediate back and forth of a single conversation.
Projects
Carries context forward across an entire body of work, the way a real project should, so a session doesn't start from zero every time.
Tools
This lets the agent reach out and get fresh information rather than relying only on what it remembers.
The way you view sports
Learn how a given user tends to think and what they tend to care about, so the system gets more useful to that specific person over time rather than staying generic.
We believe this layered approach is closer to how an actual research relationship works. You don’t re-explain your point of view to a colleague every morning, and we don’t think you should have to re-explain it to Ask OddMan either.
Control, before scale
We’re building this with governance in mind from the start, not bolting it on after the fact.
A system that can plan, route tasks across agents, query a live data warehouse, and remember things about a user is a system that needs real boundaries, not just capability.
We don't have a polished answer to give you here yet, because we're still building it. But we wanted to say plainly that we're thinking about it now, at this stage, rather than treating it as a problem for later.
That's consistent with how we think about everything else on OddMan: the tools should give Independent Creators real leverage, and the leverage has to come with protection built in, not around.
We're not finished. Most of what we described across these two articles is still being built, tested, and rebuilt as we learn where our own assumptions were wrong. That's the actual shape of this right now, and we'd rather tell you that than pretend otherwise.
We'll keep sharing this as we go.

