Skip to content

Building a Chess Coach — Anant Dole and Asbjorn Steinskog,…

Talk by Anant Dole and Asbjørn Steinskog of Take Take Take (the chess app associated with Magnus Carlsen) on building an AI chess coach. Rather than relying on LLMs to reason about chess, they separate concerns: Stockfish handles position evaluation, dedicated tactical and positional detectors extract concepts like forks, pins, and structural weaknesses, and the LLM acts only as a translator converting those structured signals into natural-language commentary, enabling sub-3-second latency in a consumer app. They also describe closing the feedback loop: user-flagged bad commentary posts to Slack and is injected into a running Claude Code session via Channels (an MCP feature in research preview), where Claude investigates the position, adjusts prompts or detectors, regenerates commentary, and asks clarifying questions through Slack. # Channel Presentation Observations: "Building a Chess Coach" — Anant Dole and Asbjorn Steinskog, Take Take Take ## 1. Explicit Self-Description Evidence - **Company affiliation claimed:** The speakers state they work at Play Magnus, founded by Magnus Carlsen: *"He also founded a company called Play Magnus… this is where myself, Ananth, and my colleague Asbjørn currently work at."* - **Product scope claimed:** The channel/creators present Play Magnus as *"currently an iOS and Android application"* where users *"can go on and play your friends, and you can post about your games,"* with a post-game **AI game review** *"powered by our AI pipeline."* - **Domain expertise claimed:** The presenters self-identify as strong chess players who serve as evaluators: *"Osborne and I are both a good chess players. So we ultimately kind of have the final say."* ## 2. Observable Presentation Patterns - **Format:** Conference-style technical talk with a live demo, an agenda slide, and audience interaction (*"Quick show of hands, who has heard of Magnus Carlsen?"*). - **Depth of technical content:** Detailed engineering discussion covering: - A pipeline combining **Stockfish**, custom chess **detectors** (forks, pins, skewers, doubled pawns), the **Maya** engine from University of Toronto, and an LLM for language generation. - **Model evaluation practices:** 16 test scenarios, LLM-as-judge, Open Router for model swapping, benchmark comparisons (Gemini 3 Flash ~75%, Claude with more thinking <60%, GPT-5 mini lower accuracy). - **Agent workflow:** A Claude Code channel + Slack loop for triaging user-reported bad commentary, including autonomous PR submission. - **Honesty about limitations:** Speakers acknowledge ongoing issues: *"it quickly leads to hallucination. It still does,"* and note models fail some scenarios. ## 3. Intended Audience - **AI/ML engineers and developers**, evidenced by: - Framing of lessons as transferable: *"how this can sort of apply to to your world sitting in front of us."* - Technical terminology used without definition (MCP server, reasoning tokens, JSON context, LLM-as-judge, evals). - Advice pitched at builders: *"Automated evals really do help… remember to sort of partner if needed"* with SMEs. - **Conference attendees**, implied by talk structure, sign-off (*"thank you so much and happy to take any questions"*), and an event announcement (*chess simul at 3:45 p.m. with QR code signup*). ## 4. Claimed Scope of the Channel/Creators' Work - Building a **production consumer AI application**: *"our AI chess coach that now you can use and is in production."* - Explicit **consumer-latency constraints**: *"we're aiming for sub 3 seconds to generate our coach sort of feedback."* - Grounded-generation philosophy: *"the LLM's job is only to translate this information into English… we want everything to be grounded."* ## 5. Distinguishing Claims from Demonstrations | Type | Evidence | |---|---| | **Claim** | Product quality/production status ("you can use and is in production") | | **Claim** | Speakers' chess skill used as final QA | | **Demonstrated** | Live demo of Slack → Claude Code triage loop (with an unpredetermined outcome: *"I haven't really looked at the commentary so it could be… probably good"*) | | **Demonstrated** | Concrete latency/accuracy figures and eval methodology | | **Demonstrated** | Presentation style: candid, technical, with humor (*"If everyone wins, we need to buy more boards"*) | **Note:** No curated metadata was supplied; all observations derive from title and transcript only. No private motivations were inferred beyond stated content. # Delivery Observations — "Building a Chess Coach" (Anant Dole & Asbjørn Steinskog) ## Overview A two-presenter conference talk with an **agenda-driven structure**, frequent **audience interaction**, and a **live demo**. Delivery is informal, technical, and punctuated by filler words and asides. ## Tone & Register - **Casual, conversational tone** throughout: opening with "Afternoon, everyone" and using phrases like "a quick history," "a little bit of backstory," "on the on a fun sort of note." - **Humor and light asides** recur, e.g., "the OG Claude," "shout out to DeepMind," "which is I can recommend watching" (on LLMs playing werewolf), and "Hopefully not everyone wins" (about giving away chess boards). ## Recurring Verbal Habits - **Frequent repetition/doubled words**, a stable pattern across both speakers: - "the the paper," "two types of of chess engines," "all all of this," "to to play chess," "we we could actually say" - **Filler "sort of" and "kind of"** used heavily to soften claims: - "our brilliant sort of notation," "sort of closing the loop," "Gemini flash is kind of our our benchmark," "it's kind of a technique." - **"Uh" and "um" fillers** appear consistently, especially in the second speaker's sections. ## Teaching / Structural Habits - **Explicit agenda-setting up front**: "Quick agenda. We'll quickly discuss… We'll briefly touch on… We're then going to deep dive into… And you'll get a demo." - **Signposting between sections**: "So, first up," "All right. So, first a brief history," "Now I'm going to explain a bit on how we improve…" - **Concrete examples anchored in visuals/positions**: "the knight from this yellow square over here on F3, captured the pawn on E5," and the F5 move walkthrough. - **Bridging metaphor of old vs. new**: "how do we uh bridge the gap between these old chess computers… and the LLMs that can explain chess?" - **Actionable takeaway list** at the end: "Number one… Really try to close the loop… Always try to build… Automated evals really do help." ## Vocabulary & Domain Framing - Heavy use of **technical AI/ML vocabulary**: "hallucinate," "grounded," "LLM as a judge," "latency versus quality trade-offs," "reasoning tokens." - **Chess domain terms** used fluently: "forks, pins, skewers," "Doubled pawns," "Poison Pawn line," "Stockfish," "simul." ## Audience Interaction - **Interactive opener**: "Quick show of hands, who has heard of Magnus Carlsen?" - **Event invitation with incentive framing** near the end (chess simul at 3:45, wooden boards as prizes). - Live demo includes reading agent output aloud: "Quick question. What specifically feels wrong about the commentary? Yeah… there's nothing wrong. You're absolutely right." ## Communication Patterns - **Candid hedging about uncertainty**, especially around the live demo: "Now I haven't really looked at the commentary so it could be it's it's it's probably it's probably good," and "this could take a while so I'm thinking we should just go to the next slide." - **Transparency about limitations**: "It still does [hallucinate], but we want everything to be grounded in the information that we uh give it." - **Quantified claims** used for credibility: "sub 3 seconds," "Time to first token is typically being about a second," "16 different scenarios," "Gemini flash is about 75%," "Cloud on more thinking gets us to about just under 60%." ## Uncertainty Notes - The transcript does not consistently mark which of the two speakers is talking; speaker-specific patterns (e.g., whether one uses "sort of" more) **cannot be reliably attributed**. - Filler-word frequency is clearly observable, but exact counts per speaker are not distinguishable from this transcript. # Position Extraction: Building a Chess Coach — Anant Dole and Asbjorn Steinskog (Take Take Take) ## Context - Anant Dole and Asbjørn Steinskog work at **Play Magnus** (founded by Magnus Carlsen, described as "widely considered the best chess player in the world"). - Talk subject: how they built an **AI chess coach** now in production, powering the post-game **game review** in the Play Magnus iOS/Android app. ## Positions and Claims by Speaker ### Anant Dole (first speaker — app, pipeline purpose, latency, evals, learnings) - **Claim:** The game review gives nuance beyond move quality ratings — tactical/positional detectors, threats, and "the why behind the move." - **Claim:** Insights about play (accuracy per game phase, rating, opening depth) feed the coach layer as learning opportunities. - **Position on latency vs quality:** Consumer expectations require near-instant analysis; they aimed for **sub-3-second** coach feedback. - **Gemini 3 Flash**: ~1s time-to-first-token, ~3s average end-to-end latency. - Reasoning models: "the analysis is not incorrect… but the challenge is it's unpredictable as to how long it's going to take." - New chat-with-coach features planned where users are "more patient." - **Position on evaluation:** They maintain **16 scenarios** (tactical patterns, blunders, limiting hallucination) extracted from real games; use **LLM-as-judge** and run models via **OpenRouter** for easy model swapping. - Reported results: Gemini Flash ~75% pass; "Cloud" [Claude] on more thinking "just under 60%" but longer latency; GPT-5 mini lower latency but lower accuracy. Qualified: Gemini "still doesn't pass all the scenarios." - **Position on human judgment:** He and Asbjørn are "good chess players" and have final say by comparing their own calculation to the LLM's response. - **Learnings advocated:** - Separate the data pipeline from language generation. - Close the loop with autonomous agents. - Build a clear context-extraction model — "slow, painful process," pruning a large JSON over time. - Automated evals help; rely on SMEs, who may not be the builders. - Announcement: chess simul at 3:45 p.m.; winners get wooden chess boards. ### Asbjørn Steinskog (chess/AI history, LLM chess limitations, pipeline, agent loop) - **History claims:** - 1949: Claude Shannon ("the OG Claude") proposed type A (brute-force) vs. type B (selective) chess engines; Shannon assumed type B needed because computers were weak. - Type A scaling won until **Deep Blue beat Kasparov, 1997**. - DeepMind's **AlphaGo** revived the type B/neural approach (Go too complex for brute force); **AlphaZero** extended it to chess and shogi. - **Position on LLMs and chess:** LLMs "can't really play chess" — decent openings but they "quickly start to hallucinate" because "they're trained on language, they can't calculate." - Cited: Magnus Carlsen's commentary of an LLM chess tournament (Kaggle game arena) — Grok played the Poison Pawn line with early Qb6 and "lost pretty badly… because it doesn't really know how to play chess." (Note: Magnus's tournament commentary shown, not a presented position.) - **Qualification:** "There's nothing inherently wrong about the transformer architecture" — DeepMind trained a transformer to predict Stockfish evaluations from positions, reaching grandmaster strength, "but these aren't trained on language, so these can't explain chess." - **Pipeline design position:** Bridge the gap via grounding: - **Stockfish** run over the whole game = ground truth for best moves. - **Detectors** extract forks, pins, skewers, pawn-structure themes, threats, plans. - **Maya** (University of Toronto research engine): a neural net predicting human-move probability distributions given a rating — enables saying a move is best (per Stockfish) *and* hard to find at a given level. - **LLM's job is "only to translate this information into English"** — restricting it because letting it reason on its own "quickly leads to hallucination." Qualification preserved: "It still does." - **Autonomous agent loop:** User-downvoted commentary posts to Slack and injects into a **Claude Code channel** (MCP server injecting events into a running Claude Code session, "kind of like Open Claw"). Claude Code runs a commentary triage skill, can modify prompts/detectors, regenerate commentary, self-verify, ask questions back on Slack, and submit a PR the speaker merges from mobile GitHub. ## Demonstrated (not merely claimed) - Live demo: a reported comment triggered Claude Code, which posted "Looking into this now," then asked "What specifically feels wrong about the commentary?" — the speaker conceded there was nothing wrong, and the agent closed it off. The demo preserved the unresolved/tentative outcome rather than a confirmed fix. ## Contradictions / Tensions Preserved - LLMs "can't play chess" vs. transformer architectures being capable when trained on evaluations. - Reasoning models produce good analysis but unpredictable latency — not adopted for instant review. - Heavy grounding intended to prevent hallucination, yet "it still does" hallucinate. - Eval benchmark (75% Gemini) means the production model still fails a quarter of their own scenarios. # Speaker & Provenance Observation Record ## Video - **Title:** Building a Chess Coach — Anant Dole and Asbjorn Steinskog, Take Take Take - **ID:** `01a15ca9-4e5f-7ed0-91b4-f8fdaa59cdf5` - **No curated metadata was supplied**; all provenance below comes from the transcript. ## Speakers & Roles - **Unnamed moderator/emcee** — opens the session, introduces the talk ("our next talk..."). - **Anant Dole** — co-presenter; identifies himself early ("myself, Ananth"); **creator/employee speaker**, works at Play Magnus; delivers the Play Magnus product overview, latency/evals sections, and the closing promotion. - **Asbjorn Steinskog** — co-presenter ("my colleague Asbjørn"), identified as "Osborne" in later passages; **creator/employee speaker** at Play Magnus; delivers the chess-and-AI history section, the pipeline explanation, and the agent demo. - **Magnus Carlsen** — **quoted/featured third party**, not a live speaker; appears in an embedded video clip commenting on an LLM chess tournament ("we see Poison Pawn line with Queen B6 early on and lost pretty badly"). ## Referenced Sources & Third-Party Claims - **Claude Shannon (1949)** — paper *"Programming a computer to play chess"*; type A vs. type B engines. - **Deep Blue vs. Kasparov (1997)** — first engine win over the world's best player. - **DeepMind** — AlphaGo, AlphaZero; a transformer trained to predict evaluations (chess-position/Stockfish pairs) reaching "grandmaster level strength." - **Kaggle** — LLM game arena benchmark, including chess and werewolf; organizer of the tournament Carlsen commentated. - **Stockfish** — leading classical chess engine used in the pipeline. - **Maya chess engine** — research project by the **University of Toronto**; predicts human move probability distributions by rating. - **Models/tools referenced:** Gemini 3 Flash, Claude ("Cloud") with more thinking, GPT-5 mini, Open Router, Cloud Code ("channel" research preview / MCP server), Slack, GitHub, Grok (in tournament clip). ## Promotional Segments (flagged) - **Play Magnus app promotion** — presenters describe the product they built and their company throughout. - **Chess simul event promotion** (near end): hosts a chess simul at 3:45 p.m. with QR code sign-up; wooden chess board prizes. Explicitly an event plug. - **Product demo** of the agent/Cloud Code loop — promotional in nature though framed as technical demo. ## Availability & Limitations - **Comment availability:** not stated in transcript or metadata. - Demonstrations (Cloud Code run, agent triage) were **live and incomplete** at talk's end; the agent's final results were not fully shown. - Model eval figures (e.g., Gemini ~75%, Claude just under 60%) are **speaker-reported**, not independently verifiable from this source. Afternoon, everyone. So, our next talk will be something a little bit different. We're going to dive into the world of chess. Quick show of hands, who has heard of Magnus Carlsen? Okay, fantastic. No introduction needed, but widely considered the best chess player in the world. He also founded a company called Play Magnus. Uh this is where myself, Ananth, and my colleague Asbjørn currently work at. And we're going to talk to you today about how we built our AI chess coach that now you can use and is in production. So, first up, quick agenda. We'll quickly discuss a bit more about Play Magnus, what it is we actually built, what it is we actually launched. Uh Asbjørn will then go into a quick history of chess and AI. A lot of links there. We'll briefly touch on why LLMs are actually bad at chess and how we managed to solve this problem. We're then going to deep dive into actually understanding our game review and sort of closing the loop with our autonomous agent. And you'll get a demo. And then finally, some latency versus quality trade-offs, as this is a consumer-focused AI application. And then lastly, some learnings. So, first up, what is Play Magnus? In its simplest form today, it's currently an iOS and Android application. You can go on and play your friends, and you can post about your games. What's relevant for our particular talk is that after you play a game, you get presented with our game review. And this is powered by our AI pipeline. So, for example, just showing you how it works. In this particular position, it's leading to a checkmate. The last move that white has played has moved the knight from this yellow square over here on F3, captured the pawn on E5. It is a brilliant move, so automatically gets the brilliant sort of notation. And the commentary below is actually generated by our system. And we're using an LLM and the pipeline we'll get into in a second. But what's quite interesting about it is we're able to give you the nuance of why it is a tactic, what detectors from a positional and tactical sense have fired, what are the threats you're trying to do, and actually explain sort of the why behind the move. So, that's the system we're going to be talking about today. Finally, on the last little step of our of our application, we've started revealing insights about your play. And this could be things like how accurate you played in a particular game phase, maybe your current rating, or your current depth in a particular opening. And these insights form the next layer of analysis that we present to the coach, who then gives them back to you as opportunities for learning and improving. We hope by using this, you'll be able to improve and become better at the game. All right. So, first a brief history of chess and AI since they've been intertwined for so long, just to give you a little bit of backstory. 1949, Claude Shannon, the OG Claude, wrote the the paper programming a computer to play chess. And here he envisioned that or he proposed that there there are two types of of chess engines, type A and type B. Uh type A were these brute force engines that search through all possible possible moves and figure out the best move. While type B were those who we know from from 2017 and and onward that can selectively pick out the the best moves. Back then, he assumed that we would need type B computers to to play chess because computers were so weak back then, you couldn't search through the whole whole tree of of moves. But computers quickly became better, and people just started scaling these type A computers. Uh they got better and better until they in 1997, Deep Blue versus Kasparov, uh the first time a chess engine beat the best chess player at the time. Uh so, people didn't really bother about these type B computers for a while, these uh intuitive uh engines, until DeepMind, shout out to DeepMind, uh released first AlphaGo, because Go is a much more complex game than chess. So, you you can't solve this with these type A computers. You would need this intuitive approach, neural network approach that actually selectively uh figure out which lines to to calculate. Uh but after that, they released AlphaZero, who could play not only Go, but also chess and and shogi. Uh and some some years later, uh LLMs came, and people started playing chess against the LLMs, and quickly turned out that they can't really play chess. Uh sometimes they they make some right moves, and they they can to an extent uh play play nice opening, but they quickly start to hallucinate. So, let's see if we can show the Yeah, there's a video of Grok went to Yeah, we see Poison Pawn line with Queen B6 early on and lost pretty badly, not necessarily because of the opening, but because it doesn't really know how to play chess. That that was Magnus Carlsen commenting a LLM chess tournament from our office in in Oslo. Um that was a tournament organized by Kaggle when they launched their game arena, which was a benchmark for benchmarking LLMs when playing different types of games. One of them was chess, and now they've started to to add more games. Also added werewolf recently, where you can watch LLMs try to deceive each other in in social deduction games, which is I can recommend watching. But yeah, we see that LLMs often uh hallucinate because obviously they're trained on language, they're not they can't calculate. Uh they can't like high reasoning models can to an extent calculate through the reasoning steps where they can actually play out moves, but they quickly uh fall apart. Um but there's nothing inherently wrong about the architecture of the like the transformer architectures to play chess. DeepMind has trained a transformer to instead of predicting the next token, they predict the evaluation based on a chess position, where they've trained it on millions of chess positions to uh Stockfish evaluations pair. And that has actually led the transformer to to play at a grandmaster level strength. But these aren't trained on language, so these can't explain chess. So, how do we uh bridge the gap between these old chess computers that can understand and play really good chess between the LLMs that can explain chess? So, we're going to go through our pipeline of how our game review explains chess in our app. When you play a game, first thing we do is we run Stockfish through the whole game. Stockfish is the leading chess engine now that's like a classical chess engine that that uh calculates the best move. So, it's what Stockfish says is considered to be the solution in a in a chess position. We then extract a lot of uh context in the position cuz we want to explain not only the best move, we want to explain the threats, the plans, um the tactics that could arise in the position, what you should have played, a lot of these nuances that is useful when if you want to learn how to become better at chess. Um so, we have a lot of detectors that tries to figure out all all of this, the forks, pins, skewers, uh positional structural themes. Doubled pawns, for example, is a disadvantage, so we need to be aware of all of those kind of things. And there's also a new novel chess engine called Maya, uh which is behind a research project by the University of Toronto, uh where instead of building a chess engine that is trained to play the best, they have trained a chess engine, uh it's a neural network that predicts the moves that humans would play in certain positions. So, given a rating, for example, an online rating of 1,500, it outputs the probability distribution over all the moves in the position. And by doing this, we we could actually say that a move is a move is really it's it's the best move. We know that because of Stockfish, but you also know it's really hard to find that move because the probability of playing it at certain levels are are so low. And all of this information, we feed that to the LLM, and that the LLMs for now, the LLM's job is only to translate this information uh into English, because we really don't want it to try to figure out too much on its own, because it quickly leads to hallucination. It still does, but we want everything to be grounded in the information that we uh give it. And that could result into a comment like this. If you play chess or know about chess, this is a game that I played. My opponent played F5 here, uh which is a bad move. So, by using Stockfish, you could see that you get like a bad move indicator. Um but that's not so useful to just know it's a bad move. So, we are running our detectors to figure out that, "Okay, F5 is threatening to trap my queen." You can also see it draws a a line with Bishop G5. But it can also say, "While it threatens to to to trap the queen, I can just capture the pawn in the middle, because that's defense this square so that my queen can get out of the situation." Mm. So, that's how we get to that situation. Now I'm going to explain a bit on how we improve our our game review using agents. We have a We have closed the loop from user feedback to the public request essentially with humans in the in the loop, but what happens when users download the commentary in your app because you can download it if you think it's it's bad. It posts it to Slack, but it also sends it to Cloud Code channel. Channel is a new feature in the research preview that is essentially an MCP server that can inject events into a running Cloud Code session. So kind of like Open Claw if you use that. So you have this continuously running channel and you can inject events to it. So and then Cloud Code starts working or on the on the commentary. It gets all the information. It runs a commentary triage skill that we created that outlines its process how it should go about to investigate what's going what's wrong in the position. It has some scripts to actually run the generation so it can modify for example the prompt. It could change some of the detectors, create some new detectors and then it can generate the commentary again given this new information and verify its own work. And then it will also ask questions back to Slack so that I could be on the bus and I could get a message from Cloud who is working on this problem where it will ask me this seems right and I can guide it. And if it if it looks right, I'll just tell it to submit the PR and I open GitHub on my mobile. It works works fine and and I merge it. I'm going to show how this works by So we have a running Cloud Code Cloud channel here. Here is the check the the Slack channel where the commentary appears. This is just me having tested a bunch of time. I'm going to open up the app on my phone. Go to a comment and report it as as bad. Now we see it posts a a comment. We can see the position. The commentary that was generated is there. Now I haven't really looked at the commentary so it could be it's it's it's probably it's probably good. But we can also see that it injects it to the Cloud channel who invokes the commentary triage skill and starts working. Now this is now running on high effort so this could take a while so I'm thinking we should just go to the next slide and then we could get back to it to see if it is something is happening. Fantastic. So we'll come back to that in a few seconds. So as we built this for you know end users, we had to really kind of consider this trade-off between latency versus quality. So typically when you finish a chess game, you want to get the analysis and the results pretty quick. You want to cycle through the moves kind of one by one. So we really couldn't show you like a coach is thinking screen you know indefinitely while reasoning tokens are kind of running in the background as an example. So we had to get this done which felt almost instant. In AI world, that's a few seconds at at best. So we we're aiming for sub 3 seconds to generate our coach sort of feedback. How do we do this? We use Gemini 3 flash. Time to first token is typically being about a second. End to end latency on average is about 3 seconds which kind of meets our criteria. We have experimented with other reasoning models and we'll get into that on the on the next slide. The analysis is not incorrect so the quality is is definitely good, but the the challenge is it's unpredictable as to how long it's going to take to finish. So we have a new set of features kind of planned for a more you know chat with your coach type experience where we can kind of expect the user to be more patient and and wait for a response rather than in the sort of phase where it needs to be more instantaneous. The the last thing about quality is Osborne and I are both a good chess players. So we ultimately kind of have the final say is when we look at the position, it's actually use how we would calculate and how we would play and compare it to the LLM's response. This allows us to actually evaluate whether it's doing the right thing or not. So if we talk about evals in more in more detail, like I said Gemini flash is kind of our our benchmark, but we have multiple chess scenarios. Currently we have 16 different scenarios that we created. These are around themes like tactical patterns, blunders, and sort of limiting hallucination. So as an example, you know there might be a knight fork on the particular chess position and we're trying to assert that can be LLM actually understand and mention this when we run it through with our sort of context engine. And how do we do this? We extract scenarios from real games. We use LLM as a judge, very powerful sort of technique that to test. We then run the model in Open Router. Open Router has come in handy because new models are being released you know so fast so frequently, we just want to be able to quickly swap in and swap out maybe new version of the Gemini. We want to check check out the latest GPT-5 model or one of the Cloud models. So we'll then compare and and see sort of the quality ultimately relying on our own skill to detect whether this is good or or bad. And as a sort of final point on this, we we ran all three models Gemini, Cloud, and and GPT-5 and you know typically Gemini flash is about 75%. It still doesn't pass all the the scenarios we've set it so we're always kind of seeing if a new model will actually exceed some of the the tricky cases we've set up. Cloud on more thinking gets us to about just under 60% but the latency is much longer. GPT-5 mini giving us a smaller set of model, lower latency or other slower latency but lower accuracy as well. So we kind of continuously run through these to to update. Last thing on sort of our our learnings and how this can sort of apply to to your world sitting in front of us. Number one, you really important to separate that sort of data pipeline from the language generation. LLMs can do a lot of different things but if you need you know high latency or quick latency, it's a good sort of technique. Really try to close the loop with autonomous agents. Kind of the flow that Osborne showed is now very common and very powerful and really allows you to iterate quickly. Always try to build a very a clear sort of context extraction model. This unfortunately in the beginning is a very slow sort of painful process. It's a large you know ultimately JSON file that you keep sort of starting big and you start to prune step by step and you see how quality improves over time. Automated evals really do help and I I'm hoping in your domains you also have a set of you know SMEs that you can help rely on to evaluate the output and sometimes that's not necessarily the person actually building it. Could be someone else who is a domain expert. So remember to sort of partner if needed. The last thing just on the on a fun sort of note before we go back to the the output of the the sort of coding agent, we do have some chess sets on the the third floor at the entrance you may have seen. We're going to host a chess simul today in the afternoon around 3:45 p.m. A chess simul for those who are unfamiliar is when one person in this case me or Osborne plays multiple people at the same time. So we have four chess sets. We will play four people at the same time. We'll have a slightly more time for us cuz we have to walk around to play multiple boards. If you happen to play and you happen to win, you will get one of the wooden chess boards at the end of the event. They're very nice high quality chess sets. If no one wins, we will still determine who the two best players are and we will still give you a set. And if everyone wins, we need to buy more boards. That's that's Hopefully not everyone wins. There's a QR code if you want to sign up or you just stop by 3:45. You're welcome to to do that. And then yeah. Yeah, close it off. Let's go back to see if what has been happening here. Oh, we see it's still thinking. It is It has actually added a comment looking into this now investing in the position. Quick question. What specifically feels wrong about the commentary? Yeah, that's it got me there. It's there's nothing wrong. You're absolutely right. Nothing wrong. So yeah, it's Now it's going to close this off cuz yeah, it it worked well. Fantastic. Well, thank you so much and happy to take any questions.