{
  "$type": "site.standard.document",
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreie3xmmlnj3y6lyue7w6u4mn2orezfz5r7ybpt6g42kclzqpmy4yji"
    },
    "mimeType": "image/png",
    "size": 531628
  },
  "description": "Your agent should answer to you, not your vendor",
  "path": "/byoa",
  "publishedAt": "2026-02-25T00:00:00.000Z",
  "site": "at://did:plc:a2rdzfdxkjwerrfrpbwcipb2/site.standard.publication/3jd443afc2222",
  "textContent": "Yesterday morning I wrote a Slack\nagent in Val Town using Vercel's\nAI SDK, and yesterday afternoon it became obsolete.\n\nJust after I'd written a docs guide\nand recorded a demo video, I saw the\nannouncement: \"Today, we're open\nsourcing the new Chat SDK in public beta.\" By this morning, I learned that the\nChat SDK, which paves Vercel's new\nSlack bot happy path, has\nalready been renamed to\n\"Chatbot.\" What will happen tomorrow? Or next week? Heaven forbid you go on a\nfamily vacation.\n\n\n\nI'd written my Val Town agent—named duck, as in\nrubber duck debugging—and\naccompanying guide based on Vercel's now-stale\nSlackbot Agent Guide. That guide\nand its companion repo—last commit 8 months ago, an eternity in AI Land—uses the\nAI SDK v4. But they're already on v6. If even they were two versions behind on\ntheir own framework, imagine where that leaves the rest of us.\n\nJust about every software vendor you use has their own AI agent with a punny,\non-theme name.<sup>1</sup> (Not to throw stones or anything—at Val\nTown we have Townie.) All those bespoke\nagents will always be behind, using yesterday's framework or model. It's ok to\nbe behind (\"if it ain't broke...\"), but you should control when you are behind\nand when you want to catch up. You should Bring Your Own Agent.\n\nBYOA—in Val Town or elsewhere\n\nI've found Val Town to be quite a good place to write and run code, including\nagents. I thought so for two years as a regular user, and I think so now that\nI've been working here a couple months. It's \"a nice place for JavaScript,\" as\none of our users recently put it. But before I tell you why I think it's good, I\nshould say: you may prefer to BYOA elsewhere, which is just as well. I don't\nknow what tools you're familiar with and what you prefer. The important thing is\nthat your agent answers to you—not your vendor.\n\nVal Town is designed to have\ncredible exit, meaning if\nyou ever want to move your code elsewhere, you can do so easily. You can\ncredibly exit. It's anti lock-in. Just like how when you own a domain name,\nyou can transfer it to another registrar, or move your website hosting between\nproviders, or change email clients. Val Town code runs on the Deno runtime and\nemphasizes Web-standard and mature technologies: JavaScript (or TypeScript), npm\npackages, SQLite, et cetera. So if you BYOA in Val Town, you can later port it\nover to Vercel or Netlify or AWS, or wherever.\n\nNow, I like building agents (and many other things, but not everything) in Val\nTown because it removes the deployment step, such that I don't even think about\nit. Vals auto-deploy on save in 100ms, and you get a live URL. The feedback loop\nis very fast. There's no local versus staging versus prod environment (although\nthere is branching for safe code changes). When collaborating with coworkers or\nsharing code with friends and strangers, there's no local dev setup—instead,\nthey just remix your val or create a new branch. At this point in the paragraph\nmy salesiness barometer is reading too high, and it'll probably only get worse\nin the next section about Kilo Code's agent val, so I'll transition by saying:\nit's totally reasonable if you want to BYOA on [insert hosting provider here]. I\nlike Val Town, but YMMV.\n\nCase study: Kilo Code's customer support agent\n\nLast week, Steve (and Townie) from our team and Alex from\nKilo Code set aside 8 hours to get a\ncustomer support bot\nagent<sup>2</sup> up and running on Val town. But they\nonly needed 89 minutes.\n\nI watched a recording of Alex and Steve's meeting to inform my work on the\naforementioned Slack agent. It really was, like, surprisingly easy. Here's some\nverbatim dialogue from the crux of the meeting, screenplay-style (stage\ndirections added):\n\n\n\nThe point this scene is supposed to illustrate is that setting up the agent was\neasy, even fun. But the more important, practical point that you can rehearse\nand repeat to your boss (or your boss's boss) in the architecture meeting next\nweek is what Alex wrote about in his blog post:\n\n> Every SaaS platform you use is shipping an AI agent add-on right now. Your\n> support tool has one. Your CRM has one. Your project management platform\n> probably just announced one last week. They all cost $500–$1,000/month.\n> They’re all black boxes. And if your experience is anything like ours, they\n> mostly don’t work.\n\nAnd these black box SaaS agents won't obviously be a hot mess, not at first.\nThey'll boil you slowly, like a frog. Of the customer support agent that Kilo\nCode tried for a month before BYOA'ing, Alex wrote:\n\n> It wasn’t bad enough to reject on day one — it was bad in the slow, corrosive\n> way that wastes your time: almost good enough, but never quite right, and no\n> levers to pull to fix it.\n\nSo Kilo Code rolled their own agent with Val Town and the Kilo Code AI Gateway.\nTomorrow or next week or next month, when a new model or better tools come out,\nthey'll be in control.\n\nBYOA\n\n\"Bring Your Own Agent\"\n(not a new term,\nbtw) feels like the right pattern for this build-don't-buy moment, and Val Town\nmight be the right place to do it. But again, I don't want to oversell. We are\npickling compute, and BYOA is the new flavor.\nChances are your company is already (or will soon be) hiring agents to work\nalongside you: for customer support; for data analytics; for fraud detection;\nfor code review; for lots of things. Maybe you'll build them on Val Town.\n\nFootnotes\n\n(1) As far as punny AI agent names go, I think Gusto's Gus is pretty damn good.\nI like Townie, too. But my favorite robot name, hands down, is Kroger's\ninventory-taking robot, Tally.\n\n(2) Here, and everywhere in this post, I mean \"agent\" as in\nSimon Willison's definition: an\nLLM running in a loop with tools—definitely not agent-as-human-replacement.",
  "title": "Bring Your Own Agent (BYOA)"
}