<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>agentic | MPK</title>
    <link>https://marshallk.netlify.app/tag/agentic/</link>
      <atom:link href="https://marshallk.netlify.app/tag/agentic/index.xml" rel="self" type="application/rss+xml" />
    <description>agentic</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 01 Jun 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://marshallk.netlify.app/media/icon_hu0dcd4198cb31c72aeed7e4c45fcc9535_197941_512x512_fill_lanczos_center_3.png</url>
      <title>agentic</title>
      <link>https://marshallk.netlify.app/tag/agentic/</link>
    </image>
    
    <item>
      <title>CoDA: Coding Agents on Databricks Apps</title>
      <link>https://marshallk.netlify.app/project/coda/</link>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://marshallk.netlify.app/project/coda/</guid>
      <description>&lt;h2 id=&#34;what-is-coda&#34;&gt;What is CoDA?&lt;/h2&gt;
&lt;p&gt;CoDA (&lt;strong&gt;Co&lt;/strong&gt;ding &lt;strong&gt;A&lt;/strong&gt;gents on &lt;strong&gt;D&lt;/strong&gt;atabricks &lt;strong&gt;A&lt;/strong&gt;pps) is a terminal running in your browser as a Databricks App with five coding agents installed and ready to use: Claude Code, Codex, Gemini CLI, Hermes, and OpenCode. Every model call goes through the Databricks AI Gateway. You open a tab and the agents are already wired to your workspace. Since it&amp;rsquo;s a Databricks app, the code, the credentials, and the context never leave Databricks. Every model call uses Foundation Model APIs, so there is no third-party egress, and actions respect your Unity Catalog permissions.&lt;/p&gt;
&lt;p&gt;It ships with curated skills and MCP servers so you can go from idea to shipped feature fast, with the same governance you already trust for every other Databricks workload.&lt;/p&gt;
&lt;video src=&#34;./coda-promo.mp4&#34; controls preload=&#34;metadata&#34; poster=&#34;./walkthrough-poster.jpg&#34; style=&#34;display:block;margin:0 auto;width:100%;max-width:640px;&#34;&gt;
  Your browser does not support embedded video. &lt;a href=&#34;./coda-promo.mp4&#34;&gt;Download the promo&lt;/a&gt;.
&lt;/video&gt;
&lt;h2 id=&#34;whats-inside&#34;&gt;What&amp;rsquo;s Inside&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; — Anthropic&amp;rsquo;s agent with 39 Databricks skills and 2 MCP servers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codex&lt;/strong&gt; — OpenAI&amp;rsquo;s coding agent, pre-configured for Databricks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt; — Google&amp;rsquo;s coding agent with shared skills&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt; — NousResearch&amp;rsquo;s multi-provider AI CLI with tool-calling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenCode&lt;/strong&gt; — Open-source multi-provider agent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every agent installs at boot. On your first terminal session you paste a short-lived PAT and all CLIs are configured automatically. Tokens auto-rotate every 10 minutes.&lt;/p&gt;
&lt;h2 id=&#34;why-it-lives-on-databricks&#34;&gt;Why it lives on Databricks&lt;/h2&gt;
&lt;p&gt;First and most importantly, it gives you access to coding agents without running them directly on your desktop. You are getting a sandbox to go crazy without worry about accidentally deleting critical files. Secondary but still neat, it integrates with lots of pieces of Databricks including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unity Catalog&lt;/strong&gt; governs all data access — agents only touch what your identity allows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Gateway&lt;/strong&gt; routes every LLM call through a single control plane — swap models, set rate limits, manage keys centrally.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MLflow Tracing&lt;/strong&gt; captures every session for review and evaluation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;App Logs to Delta&lt;/strong&gt; for long-term retention and dashboarding.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;try-it&#34;&gt;Try it&lt;/h2&gt;
&lt;p&gt;Watch a recording of me setting it up in 5 minutes:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://youtu.be/ofqBQ26_e9o&#34; title=&#34;Getting Started with CoDA&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;./walkthrough-poster.jpg&#34; alt=&#34;CoDA setup walkthrough&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The repo lives at &lt;a href=&#34;https://github.com/databrickslabs/coding-agents-databricks-apps&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;databrickslabs/coding-agents-databricks-apps&lt;/a&gt;. Click &amp;ldquo;Use this template&amp;rdquo; on the repo to spin up your own copy and deploy it as a Databricks App in your workspace.&lt;/p&gt;
&lt;h2 id=&#34;random-learnings&#34;&gt;Random Learnings&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m a contributor and maintainer for CoDA. Working with git and writing / reviewing code is nothing new for me. One thing that has been new for me is promoting it using this neat framework called &amp;lsquo;remotion&amp;rsquo;. It renders scenes using react so it pairs well with coding agents. That&amp;rsquo;s how I made the promo video. Another call out goes to Mureka, which I used to make the music. Specifically, I typed &amp;lsquo;chill, ambient, happy&amp;rsquo; and clicked &amp;lsquo;Create&amp;rsquo;. Technology is unbelievable.&lt;/p&gt;
&lt;p&gt;I did the same thing for my mom to help her fundraise for an ALS bikeride earlier this week. She was quite pleased. Good son points. Here&amp;rsquo;s her &lt;a href=&#34;tst.als.net/fundraise/?p=501671&#34;&gt;donate link&lt;/a&gt;:&lt;/p&gt;
&lt;video src=&#34;./als-promo.mp4&#34; controls preload=&#34;metadata&#34; style=&#34;display:block;margin:0 auto;width:100%;max-width:320px;&#34;&gt;
  Your browser does not support embedded video. &lt;a href=&#34;./als-promo.mp4&#34;&gt;Download the video&lt;/a&gt;.
&lt;/video&gt;
</description>
    </item>
    
    <item>
      <title>Answer all of your RFPs really fast with the RFP Monster</title>
      <link>https://marshallk.netlify.app/project/rfp-monster/</link>
      <pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://marshallk.netlify.app/project/rfp-monster/</guid>
      <description>&lt;h3 id=&#34;update&#34;&gt;Update&lt;/h3&gt;
&lt;p&gt;I found out my project was featured in Wired magazine in October! Check out the article &lt;a href=&#34;https://www.wired.com/story/generative-ai-chatgpt-is-coming-for-sales-jobs/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In our last company Hackathon, my team won second place where the reward was a bunch of pats on the back and a little bit of prize money. This was not the first hackathon I&amp;rsquo;ve done nor was it the first where my team placed in the top three but I&amp;rsquo;m proud enough of this one to write about it. It was the first time I led our team on everything from software development to the business presentation. Our project was called the RFP Monster and our vision was this:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;&lt;strong&gt;Win more deals&lt;/strong&gt; by enabling our &lt;strong&gt;sales force&lt;/strong&gt; to answer lots of questions &lt;strong&gt;better&lt;/strong&gt; and &lt;strong&gt;faster&lt;/strong&gt;. That’s it.&amp;rdquo;&lt;/p&gt;
&lt;h3 id=&#34;what-is-an-rfp&#34;&gt;What is an RFP?&lt;/h3&gt;
&lt;p&gt;RFP stands for &amp;lsquo;Request for Proposal&amp;rsquo;. They are questionnaires that companies send out to prospective vendors when they&amp;rsquo;re considering buying software or a service. At a company that sells fairly sophisticated Machine Learning software, answering these is a not a trivial task. I&amp;rsquo;ve seen documents containing upwards of 200 questions (seriously) and answering them thoroughly requires knowledge of pretty much every part of our company. Besides the nitty gritty details of how it handles machine learning problems, there are often questions about our architecture, security, downtime, and pricing among other topics. They are annoying hoops jump through and answering them well involves people from a bunch of different departments. I can&amp;rsquo;t imagine who on the customer side would actually read through all of the responses. Yet they are a necessary evil. Many prospects won&amp;rsquo;t talk to you unless you fill them out.&lt;/p&gt;
&lt;h3 id=&#34;the-solution&#34;&gt;The Solution&lt;/h3&gt;
&lt;p&gt;The obvious answer to this problem for anyone familiar with Large Language Models (LLMs) and vector databases is to use RAG which stands for &lt;em&gt;Retrieval Augmented Generation&lt;/em&gt;. The idea is that you take all of your relevant documentation, split them into chunks, and shove them into special type of database that can encode text data. Then for a given question, you encode it, retrieve the chunks of text from the database that are most similar to it, and shove the chunks in your prompt as context to help something like chatGPT generate an answer. With packages like langchain and local open source vector databases like FAISS, this was pretty easy to build. To make our answers a little more specialized, we loaded about 600 pages of our platform documentation, our security policies, and a few RFPs we had answered before.&lt;/p&gt;
&lt;p&gt;This alone would not have placed us in the hackathon though. By this time, RAG was a familiar method in the company. To take it a step further, I wanted to figure out a way to interlink RAG answers with traditional machine learning. To do this, our team took an RFP with about 150 questions, generated 150 answers. And then hand labeled them as Correct or one of multiple classes of Incorrect, such as &amp;ldquo;Insufficient Knowledge Base&amp;rdquo; or &amp;ldquo;Hallucination&amp;rdquo;. We then trained a classifier (we called this an audit model) on the labeled responses and used it to assign a confidence score for any answers generated by the RFP Monster. To take it a step further, we set up a configuration in our web app that would re-query the LLM in different ways if the confidence score was low enough. The diagram I made for this work is below:&lt;/p&gt;
&lt;p&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;./rfp-monster-diagram.png&#34; alt=&#34;Diagram&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;We had a couple other bells and whistles in there too, like a way to submit new question answer pairs to our vector database and a system to give feedback and retrain our audit model.&lt;/p&gt;
&lt;h3 id=&#34;post-hackathon&#34;&gt;Post Hackathon&lt;/h3&gt;
&lt;p&gt;My company marketed our project pretty heavily since we presented. They even made me take away the cookie monster stuff and make a more professional demo video of it, which is on the DataRobot Youtube Channel. You can watch both and tell me which one you like better.&lt;/p&gt;
&lt;p&gt;RFP Monster (My Hackathon Video)
&lt;a href=&#34;https://www.youtube.com/watch?v=a1UNpZVLsgA&#34; title=&#34;My Hackathon RFP Monster&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;./rfp-monster-video.jpg&#34; alt=&#34;RFP Monster&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GenAI and Predictive AI Demo (The professional looking one)
&lt;a href=&#34;https://www.youtube.com/watch?v=btsGOipo5Xo,&#34; title=&#34;GenAI &amp;#43; Predictive AI&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;./rfp-audit-video.jpg&#34; alt=&#34;GenAI &amp;#43; Predictive AI&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;credits&#34;&gt;Credits&lt;/h3&gt;
&lt;p&gt;Cynthia did a lot of the hand labeling for our audit model and Kyle implemented a neat re-querying strategy. A special shout out to John who asked to join my team as an intern and did a bunch of backend work with our vector database and alternative LLMs. Thanks teammates!&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
