<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ken Kitts</title><link>https://kenkitts.com/</link><description>Recent content on Ken Kitts</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 13 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://kenkitts.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Building an Agent on Bedrock AgentCore, Part 5: Whose Notes Are These?</title><link>https://kenkitts.com/posts/bedrock-agentcore-part-5/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/bedrock-agentcore-part-5/</guid><description>The agent finally learns who it&amp;#39;s talking to. Cognito JWT auth locks the gateway, an interceptor Lambda injects identity on a channel the model can&amp;#39;t touch, and DynamoDB grows a composite key.</description></item><item><title>Deploying the Claude Apps Gateway on Bedrock: A Scar Map</title><link>https://kenkitts.com/posts/llm-gateway-part-2/</link><pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/llm-gateway-part-2/</guid><description>Five CDK stacks, a gateway that refused to talk to its own telemetry collector, an architecture mismatch that didn&amp;#39;t surface until runtime, and an RDS version that didn&amp;#39;t exist. The deployment worked. Here&amp;#39;s what it cost.</description></item><item><title>Do You Actually Need an LLM Gateway? A Field Guide for People Who Sign the Invoice</title><link>https://kenkitts.com/posts/llm-gateway-part-1/</link><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/llm-gateway-part-1/</guid><description>Your developers are already using AI coding tools. Right now, on credentials you can&amp;#39;t see, spending money you can&amp;#39;t attribute. An LLM gateway is the corporate answer to that problem — but it comes with its own invoice. Here&amp;#39;s how to decide if it&amp;#39;s worth it.</description></item><item><title>Building an Agent on Bedrock AgentCore, Part 4: The Notes Were Always Ephemeral</title><link>https://kenkitts.com/posts/bedrock-agentcore-part-4/</link><pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/bedrock-agentcore-part-4/</guid><description>For three posts the agent has saved your notes to a Python list that dies with the process. This post gives them a real home — DynamoDB behind a Lambda, served to the agent as MCP tools through an AgentCore Gateway. The agent can&amp;#39;t tell the remote tools from the local ones. That&amp;#39;s the trick, and the knife.</description></item><item><title>Building an Agent on Bedrock AgentCore, Part 3: Giving It a Memory That Outlives the Process</title><link>https://kenkitts.com/posts/bedrock-agentcore-part-3/</link><pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/bedrock-agentcore-part-3/</guid><description>The agent runs in the cloud now, and it still forgets everything the instant the box recycles. This post wires it to AgentCore Memory — durable conversation that survives a cold start, then long-term memory so it remembers you across sessions. Two honest scars included, free of charge.</description></item><item><title>Building an Agent on Bedrock AgentCore, Part 1: The Loop Was Never the Hard Part</title><link>https://kenkitts.com/posts/bedrock-agentcore-part-1/</link><pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/bedrock-agentcore-part-1/</guid><description>I already built an agent from scratch — a while loop and 600 lines of Python. It worked great, right up until I had to run it somewhere other than my laptop. This series is about that &amp;#39;somewhere.&amp;#39; Part 1: what AgentCore actually is, and a Strands notes agent running locally in 40 lines.</description></item><item><title>Building an Agent on Bedrock AgentCore, Part 2: Teaching It to Run Somewhere I Can Close My Laptop</title><link>https://kenkitts.com/posts/bedrock-agentcore-part-2/</link><pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/bedrock-agentcore-part-2/</guid><description>In Part 1 the agent ran on my laptop, which is a great place for software to live right up until you close the lid. This post hands the exact same agent to AgentCore Runtime — one new file, no changes to the agent — and gets it running in the cloud behind a real endpoint.</description></item><item><title>Building an AI Agent from Scratch, Part 5: Skills, or Teaching the Model Without Cramming the Syllabus into Every Prompt</title><link>https://kenkitts.com/posts/agent-harness-part-5/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/agent-harness-part-5/</guid><description>A tool returns data. A skill returns instructions. Same dispatch loop, same tool_result block, completely different trust model. Let&amp;#39;s build a progressive-disclosure skill system in 30 lines and then talk about why installing a skill is a form of prompt injection you chose.</description></item><item><title>Building an AI Agent from Scratch, Part 3: Memory, the Plan, and the Bill That Comes With Both</title><link>https://kenkitts.com/posts/agent-harness-part-3/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/agent-harness-part-3/</guid><description>The model forgets everything between API calls — so you carry the transcript, and you pay for it every single turn. Let&amp;#39;s build the Session object, re-inject the plan to stop the model drifting, add a guard that won&amp;#39;t let it fake &amp;#39;done,&amp;#39; and stare at the token bill that memory quietly runs up.</description></item><item><title>Building an AI Agent from Scratch, Part 4: Remote Tools, or Trusting a Knife You Didn't Forge</title><link>https://kenkitts.com/posts/agent-harness-part-4/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/agent-harness-part-4/</guid><description>Local tools are knives you forged yourself. MCP lets the model reach for knives someone else made, on someone else&amp;#39;s server, behind an OAuth login. Let&amp;#39;s wire a remote tool server into the same registry the local tools use — and stare hard at what it means to trust a tool you didn&amp;#39;t write.</description></item><item><title>Building an AI Agent from Scratch, Part 2: Tools, or How I Learned to Stop Worrying and Hand the Model a Knife</title><link>https://kenkitts.com/posts/agent-harness-part-2/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/agent-harness-part-2/</guid><description>Tools are what turn a chatbot into an agent — and what turn a polite assistant into something with filesystem access. Let&amp;#39;s build the decorator-based registry, wire it into Bedrock, and add the guardrails that stop the model from reading your SSH keys.</description></item><item><title>Building an AI Agent from Scratch, Part 1: What Even Is an Agent Harness?</title><link>https://kenkitts.com/posts/agent-harness-part-1/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://kenkitts.com/posts/agent-harness-part-1/</guid><description>LLMs can only produce text. So how do they &amp;#39;use tools&amp;#39;? Let&amp;#39;s break down the agent harness — the code that turns a language model into something that can actually do stuff.</description></item><item><title>About</title><link>https://kenkitts.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kenkitts.com/about/</guid><description>About Ken Kitts</description></item></channel></rss>