<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.aihero.dev/</loc>
<lastmod>2026-04-03T21:27:49.663Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/migrating-to-ai-sdk-v5-optional-4b83m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/building-an-evaluator~h669v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-sources-in-the-frontend~f0ugn</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-usage-in-the-frontend-optional~pjdh0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implementing-guardrails-optional~qs77q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implement-an-ask-clarifying-questions-step-optional~qzr6z</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/creating-new-chats-in-the-frontend-a56bv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/fixing-the-new-chat-button-optional~kcoi9</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/persist-chats-to-the-database-pq2af</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/adding-use-scroll-to-bottom-optional~qogar</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/create-database-resources-for-persisting-messages~kxj6d</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/showing-the-saved-chats-in-the-frontend-yex6y</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/adding-a-global-rate-limiter-optional~1we34</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/our-first-deterministic-eval~cxp47</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/initializing-evalite~g4pr8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/making-our-system-testable-n8kjb</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/choosing-our-success-criteria~rludz</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/optimizing-our-prompt-optional~tbm19</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/the-data-flywheel~39a5b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/organizing-our-dataset-into-dev-ci-and-regression-optional~89dd1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/our-first-llm-as-a-judge-eval~kps4x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/extracting-the-parameters-of-our-system-optional~ly5er</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/create-a-simple-dataset~q2yqx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/assessing-answer-relevancy-optional~took1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/generating-chat-titles-optional~68xs4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/showing-the-steps-taken-in-the-frontend~6504q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/fixing-telemetry~arlim</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/passing-the-message-history~e3oe5</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/persisting-our-new-setup-to-the-backend~ohc55</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/adding-geolocation-info-to-the-system-prompt-optional~ui8yc</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/search-scrape-summarize~6g65i</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/making-a-query-rewriter~7uug6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/use-a-combined-search-scrape-api-instead-optional~fz25m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/agents-vs-workflows~paz5s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/resumable-streams-optional-pn2n8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/collapse-search-and-crawl-into-one-tool~xmds2</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/what-is-the-ai-sdk~9cogs</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/how-to-take-this-course-w1tuh</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/v5-to-v6-breaking-changes-bzdsm</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/choosing-your-model-al9fq</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/generating-text-f802g</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-text-to-the-terminal~xt9y3</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/ui-message-streams~yhlcn</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-to-a-ui~hd8bu</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/system-prompts-tc80c</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/passing-images-and-files-fs8a4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/generating-objects-via-output~dkm2k</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-objects-via-output-kd29w</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/devtools-basics-xctv5</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/migrating-to-ai-sdk-v5-optional-4b83m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/building-an-evaluator~h669v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-sources-in-the-frontend~f0ugn</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-usage-in-the-frontend-optional~pjdh0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implementing-guardrails-optional~qs77q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implement-an-ask-clarifying-questions-step-optional~qzr6z</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/creating-new-chats-in-the-frontend-a56bv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/fixing-the-new-chat-button-optional~kcoi9</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/persist-chats-to-the-database-pq2af</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/adding-use-scroll-to-bottom-optional~qogar</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/create-database-resources-for-persisting-messages~kxj6d</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/showing-the-saved-chats-in-the-frontend-yex6y</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/adding-a-global-rate-limiter-optional~1we34</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/our-first-deterministic-eval~cxp47</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/initializing-evalite~g4pr8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/making-our-system-testable-n8kjb</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/choosing-our-success-criteria~rludz</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/optimizing-our-prompt-optional~tbm19</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/the-data-flywheel~39a5b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/organizing-our-dataset-into-dev-ci-and-regression-optional~89dd1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/our-first-llm-as-a-judge-eval~kps4x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/extracting-the-parameters-of-our-system-optional~ly5er</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/create-a-simple-dataset~q2yqx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/assessing-answer-relevancy-optional~took1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/generating-chat-titles-optional~68xs4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/showing-the-steps-taken-in-the-frontend~6504q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/fixing-telemetry~arlim</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/passing-the-message-history~e3oe5</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/persisting-our-new-setup-to-the-backend~ohc55</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/adding-geolocation-info-to-the-system-prompt-optional~ui8yc</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/search-scrape-summarize~6g65i</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/making-a-query-rewriter~7uug6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/use-a-combined-search-scrape-api-instead-optional~fz25m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/agents-vs-workflows~paz5s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/resumable-streams-optional-pn2n8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/collapse-search-and-crawl-into-one-tool~xmds2</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/tokens-rtlnh</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/tracking-token-usage~2u9a4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/representing-data-as-tokens~d4l18</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/context-window-qeft2</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/prompt-caching-3kiw1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/migrating-to-ai-sdk-v5-optional-4b83m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/building-an-evaluator~h669v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-sources-in-the-frontend~f0ugn</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-usage-in-the-frontend-optional~pjdh0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implementing-guardrails-optional~qs77q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implement-an-ask-clarifying-questions-step-optional~qzr6z</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/creating-new-chats-in-the-frontend-a56bv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/fixing-the-new-chat-button-optional~kcoi9</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/persist-chats-to-the-database-pq2af</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/adding-use-scroll-to-bottom-optional~qogar</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/create-database-resources-for-persisting-messages~kxj6d</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/showing-the-saved-chats-in-the-frontend-yex6y</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/adding-a-global-rate-limiter-optional~1we34</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/our-first-deterministic-eval~cxp47</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/initializing-evalite~g4pr8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/making-our-system-testable-n8kjb</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/choosing-our-success-criteria~rludz</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/optimizing-our-prompt-optional~tbm19</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/the-data-flywheel~39a5b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/organizing-our-dataset-into-dev-ci-and-regression-optional~89dd1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/our-first-llm-as-a-judge-eval~kps4x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/extracting-the-parameters-of-our-system-optional~ly5er</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/create-a-simple-dataset~q2yqx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/assessing-answer-relevancy-optional~took1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/generating-chat-titles-optional~68xs4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/showing-the-steps-taken-in-the-frontend~6504q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/fixing-telemetry~arlim</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/passing-the-message-history~e3oe5</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/persisting-our-new-setup-to-the-backend~ohc55</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/adding-geolocation-info-to-the-system-prompt-optional~ui8yc</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/search-scrape-summarize~6g65i</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/making-a-query-rewriter~7uug6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/use-a-combined-search-scrape-api-instead-optional~fz25m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/agents-vs-workflows~paz5s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/resumable-streams-optional-pn2n8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/collapse-search-and-crawl-into-one-tool~xmds2</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/calling-tools~476vh</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/message-parts-wpful</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/showing-tools-in-the-frontend-42kvr</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/tool-loop-agent-ebaap</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/calling-mcp-servers-via-stdio~8yvuh</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/calling-mcp-servers-via-http~ylonf</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/tool-approval-fjpd0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/migrating-to-ai-sdk-v5-optional-4b83m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/building-an-evaluator~h669v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-sources-in-the-frontend~f0ugn</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-usage-in-the-frontend-optional~pjdh0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implementing-guardrails-optional~qs77q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implement-an-ask-clarifying-questions-step-optional~qzr6z</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/creating-new-chats-in-the-frontend-a56bv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/fixing-the-new-chat-button-optional~kcoi9</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/persist-chats-to-the-database-pq2af</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/adding-use-scroll-to-bottom-optional~qogar</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/create-database-resources-for-persisting-messages~kxj6d</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/showing-the-saved-chats-in-the-frontend-yex6y</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/adding-a-global-rate-limiter-optional~1we34</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/our-first-deterministic-eval~cxp47</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/initializing-evalite~g4pr8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/making-our-system-testable-n8kjb</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/choosing-our-success-criteria~rludz</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/optimizing-our-prompt-optional~tbm19</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/the-data-flywheel~39a5b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/organizing-our-dataset-into-dev-ci-and-regression-optional~89dd1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/our-first-llm-as-a-judge-eval~kps4x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/extracting-the-parameters-of-our-system-optional~ly5er</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/create-a-simple-dataset~q2yqx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/assessing-answer-relevancy-optional~took1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/generating-chat-titles-optional~68xs4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/showing-the-steps-taken-in-the-frontend~6504q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/fixing-telemetry~arlim</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/passing-the-message-history~e3oe5</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/persisting-our-new-setup-to-the-backend~ohc55</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/adding-geolocation-info-to-the-system-prompt-optional~ui8yc</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/search-scrape-summarize~6g65i</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/making-a-query-rewriter~7uug6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/use-a-combined-search-scrape-api-instead-optional~fz25m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/agents-vs-workflows~paz5s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/resumable-streams-optional-pn2n8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/collapse-search-and-crawl-into-one-tool~xmds2</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/waiting-for-streams-to-finish~mpjjx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/passing-chat-ids-to-the-api~yw1tg</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/persisting-chat-messages~h0qnc</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/persisting-messages-in-postgres~0ozzf</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/migrating-to-ai-sdk-v5-optional-4b83m</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/building-an-evaluator~h669v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-sources-in-the-frontend~f0ugn</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-usage-in-the-frontend-optional~pjdh0</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implementing-guardrails-optional~qs77q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implement-an-ask-clarifying-questions-step-optional~qzr6z</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/creating-new-chats-in-the-frontend-a56bv</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/fixing-the-new-chat-button-optional~kcoi9</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/persist-chats-to-the-database-pq2af</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/adding-use-scroll-to-bottom-optional~qogar</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/create-database-resources-for-persisting-messages~kxj6d</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/showing-the-saved-chats-in-the-frontend-yex6y</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/adding-a-global-rate-limiter-optional~1we34</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/our-first-deterministic-eval~cxp47</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/initializing-evalite~g4pr8</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/making-our-system-testable-n8kjb</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/choosing-our-success-criteria~rludz</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/optimizing-our-prompt-optional~tbm19</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/the-data-flywheel~39a5b</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/organizing-our-dataset-into-dev-ci-and-regression-optional~89dd1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/our-first-llm-as-a-judge-eval~kps4x</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/extracting-the-parameters-of-our-system-optional~ly5er</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/create-a-simple-dataset~q2yqx</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/assessing-answer-relevancy-optional~took1</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/generating-chat-titles-optional~68xs4</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/showing-the-steps-taken-in-the-frontend~6504q</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/fixing-telemetry~arlim</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/passing-the-message-history~e3oe5</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/persisting-our-new-setup-to-the-backend~ohc55</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/adding-geolocation-info-to-the-system-prompt-optional~ui8yc</loc>
<lastmod>2026-04-03T21:27:49.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/search-scrape-summarize~6g65i</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/making-a-query-rewriter~7uug6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/use-a-combined-search-scrape-api-instead-optional~fz25m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/agents-vs-workflows~paz5s</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/resumable-streams-optional-pn2n8</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/collapse-search-and-crawl-into-one-tool~xmds2</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/the-template-hmys8</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/basic-prompting-hwrwm</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/exemplars-n4ry4</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/retrieval-rampb</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/chain-of-thought-2y3wd</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/migrating-to-ai-sdk-v5-optional-4b83m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/building-an-evaluator~h669v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-sources-in-the-frontend~f0ugn</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/showing-usage-in-the-frontend-optional~pjdh0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implementing-guardrails-optional~qs77q</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-9-advanced-patterns/implement-an-ask-clarifying-questions-step-optional~qzr6z</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/creating-new-chats-in-the-frontend-a56bv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/fixing-the-new-chat-button-optional~kcoi9</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/persist-chats-to-the-database-pq2af</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/adding-use-scroll-to-bottom-optional~qogar</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/create-database-resources-for-persisting-messages~kxj6d</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-2-persistence/showing-the-saved-chats-in-the-frontend-yex6y</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/adding-a-global-rate-limiter-optional~1we34</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/our-first-deterministic-eval~cxp47</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/initializing-evalite~g4pr8</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/making-our-system-testable-n8kjb</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/choosing-our-success-criteria~rludz</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-4-intro-to-evals/optimizing-our-prompt-optional~tbm19</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/the-data-flywheel~39a5b</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/organizing-our-dataset-into-dev-ci-and-regression-optional~89dd1</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/our-first-llm-as-a-judge-eval~kps4x</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/extracting-the-parameters-of-our-system-optional~ly5er</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/create-a-simple-dataset~q2yqx</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-5-evals-continued/assessing-answer-relevancy-optional~took1</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/generating-chat-titles-optional~68xs4</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/showing-the-steps-taken-in-the-frontend~6504q</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/fixing-telemetry~arlim</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/passing-the-message-history~e3oe5</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/persisting-our-new-setup-to-the-backend~ohc55</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-7-task-decomposition-continued/adding-geolocation-info-to-the-system-prompt-optional~ui8yc</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/search-scrape-summarize~6g65i</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/making-a-query-rewriter~7uug6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/use-a-combined-search-scrape-api-instead-optional~fz25m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/agents-vs-workflows~paz5s</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/resumable-streams-optional-pn2n8</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-8-agents-vs-workflows/collapse-search-and-crawl-into-one-tool~xmds2</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/evalite-basics-oti1n</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/deterministic-evals~ho4ut</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/llm-as-a-judge-evals~my7sg</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/dataset-management-6tb8j</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/chat-title-generation-iqnjk</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/how-do-i-know-my-dataset-is-good~7yk1g</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/langfuse-basics-td8hj</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/integrating-langfuse~27675</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/making-the-llm-date-aware-optional~887ql</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/reporting-db-calls-to-langfuse-optional~51uwi</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/improving-our-crawler-optional~d739v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/passing-extra-metadata-to-langfuse~i3z8p</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/choosing-an-observability-platform~koanm</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-3-observability/adding-a-scraper~wnbd7</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/creating-a-next-action-picker~1nu9s</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/connecting-our-loop-to-the-frontend~2xm7v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/smoothing-our-streaming-optional-9xa21</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/implementing-the-loop~sdf3b</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/whats-wrong-with-our-current-approach~dm09x</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/designing-our-new-system-prompt~f0b5g</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-6-task-decomposition/optimize-our-answering-system-prompt-with-exemplars-optional~r74lx</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/custom-data-parts-0f01s</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-objects-to-custom-data-parts~kkaei</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/message-metadata-e6fh2</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/error-handling-s1bsi</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/building-a-workflow~8dap7</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-custom-data-to-the-frontend-bfzqc</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/creating-your-own-loop-rj968</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/breaking-the-loop-early-kqksz</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/guardrails-5arxe</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/model-router-vpwsu</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/comparing-multiple-outputs-ymcgc</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/research-workflow-weqx9</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/choose-an-llm~i52cw</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/introduction-bud2v</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/showing-tool-calls-in-the-frontend~l68vq</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/create-a-naive-agent-with-serper~f31ta</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/set-up-discord-authentication-gzxr6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/our-first-model-call-jkfv0</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/search-grounding-optional~p85ck</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/connecting-our-app-to-mcp-servers-optional-sjetv</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-optional~t0g70</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/day-1-build-a-naive-agent/rate-limiting-anonymous-users-optional~u855m</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/ui-messages-vs-model-messages~s7jyt</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/defining-tools-qc8q6</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/consume-stream~ikwkt</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/custom-data-parts~2r94e</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-custom-data-parts-to-the-frontend~t92sz</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/using-ids-in-custom-data-parts~4qfsg</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/message-metadata-85cdf</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/streaming-text-parts-by-hand-yhi4n</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/workshops/ai-sdk-v6-crash-course/start-and-finish-parts-zqhse</loc>
<lastmod>2026-04-03T21:27:49.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.aihero.dev/llm-fundamentals</loc>
<lastmod>2025-09-30T09:46:28.099Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/ai-engineer-roadmap</loc>
<lastmod>2025-03-18T11:28:44.629Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/model-context-protocol-tutorial</loc>
<lastmod>2025-03-12T11:01:44.778Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/vercel-ai-sdk-tutorial</loc>
<lastmod>2025-01-09T12:05:12.376Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/my-grill-me-skill-has-gone-viral</loc>
<lastmod>2026-03-23T13:35:30.437Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/real-world-feature-build-with-claude-code</loc>
<lastmod>2026-03-20T09:48:53.260Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/5-agent-skills-i-use-every-day</loc>
<lastmod>2026-03-16T15:38:31.720Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/my-7-phases-of-ai-development</loc>
<lastmod>2026-03-16T10:27:14.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/my-claude-code-cohort-a-teaser</loc>
<lastmod>2026-03-11T15:10:20.473Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/ways-ai-coding-has-rewired-my-brain</loc>
<lastmod>2026-03-11T14:33:11.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/how-to-make-codebases-ai-agents-love</loc>
<lastmod>2026-02-26T10:09:15.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/how-to-use-claude-code-hooks-to-enforce-the-right-cli</loc>
<lastmod>2026-02-25T10:51:12.741Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/never-run-claude-init</loc>
<lastmod>2026-02-24T10:04:45.258Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/this-hook-stops-claude-code-running-dangerous-git-commands</loc>
<lastmod>2026-02-10T14:25:36.457Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/skill-test-driven-development-claude-code</loc>
<lastmod>2026-02-10T11:42:14.095Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/why-the-anthropic-ralph-plugin-sucks</loc>
<lastmod>2026-01-22T14:50:25.825Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/tracer-bullets</loc>
<lastmod>2026-01-22T13:21:37.803Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/heres-how-to-stream-claude-code-with-afk-ralph</loc>
<lastmod>2026-01-22T09:55:51.743Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/a-complete-guide-to-agents-md</loc>
<lastmod>2026-01-18T15:01:44.364Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/essential-ai-coding-feedback-loops-for-type-script-projects</loc>
<lastmod>2026-01-16T11:51:36.113Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/my-agents-md-file-for-building-plans-you-actually-read</loc>
<lastmod>2026-01-13T13:51:16.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/plan-mode-introduction</loc>
<lastmod>2026-01-09T12:55:21.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/getting-started-with-ralph</loc>
<lastmod>2026-01-08T14:32:16.298Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/tips-for-ai-coding-with-ralph-wiggum</loc>
<lastmod>2026-01-08T12:25:29.414Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/evalite-v1-preview</loc>
<lastmod>2025-11-28T10:00:39.836Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/personal-software-is-insane-in-the-age-of-ai-u2hx2</loc>
<lastmod>2025-11-17T16:28:06.543Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/creating-the-perfect-claude-code-status-line</loc>
<lastmod>2025-10-28T14:40:22.539Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-is-an-agent</loc>
<lastmod>2025-09-30T13:28:38.873Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-are-tools</loc>
<lastmod>2025-09-30T13:28:00.573Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-is-the-context-window</loc>
<lastmod>2025-09-30T13:27:28.739Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/messages-system-prompts-and-reasoning-tokens</loc>
<lastmod>2025-09-30T13:26:05.479Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-are-tokens</loc>
<lastmod>2025-09-30T09:47:04.967Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-are-tokens</loc>
<lastmod>2025-09-12T15:49:26.867Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/securing-your-ai-app-with-guardrails</loc>
<lastmod>2025-09-11T11:24:45.165Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/streaming-in-next-question-suggestions-with-the-ai-sdk</loc>
<lastmod>2025-08-24T12:17:16.084Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-is-an-ai-engineer</loc>
<lastmod>2025-03-26T11:22:28.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/how-to-improve-your-llm-powered-app</loc>
<lastmod>2025-03-24T09:23:34.481Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/the-ai-engineer-mindset</loc>
<lastmod>2025-03-24T09:21:56.352Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/implementing-anthropics-think-tool-in-typescript</loc>
<lastmod>2025-03-21T18:37:02.810Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-are-llms-used-for</loc>
<lastmod>2025-03-18T10:01:33.838Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/how-to-choose-an-llm</loc>
<lastmod>2025-03-17T10:36:59.984Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-is-an-llm</loc>
<lastmod>2025-03-17T10:03:12.876Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/connect-claude-code-to-github</loc>
<lastmod>2025-03-13T11:45:07.526Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/publish-your-mcp-server-to-npm</loc>
<lastmod>2025-03-12T11:08:57.628Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/the-problem-with-mcp-stateful-server</loc>
<lastmod>2025-03-12T11:08:27.014Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/logging-a-huge-mcp-footgun</loc>
<lastmod>2025-03-12T10:58:47.136Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/using-mcp-prompts</loc>
<lastmod>2025-03-10T14:53:59.194Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/how-does-the-model-context-protocol-work</loc>
<lastmod>2025-03-10T12:54:53.384Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/mcp-server-from-a-single-typescript-file</loc>
<lastmod>2025-03-07T13:30:48.028Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/storm-generate-high-quality-articles-based-on-real-research</loc>
<lastmod>2025-02-04T11:28:01.039Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/google-agents-whitepaper-review</loc>
<lastmod>2025-01-28T13:26:28.649Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-is-the-ai-sdk</loc>
<lastmod>2025-01-17T11:53:39.759Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/agents-with-vercel-ai-sdk</loc>
<lastmod>2025-01-15T11:51:43.315Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/generate-arrays-with-vercel-ai-sdk</loc>
<lastmod>2025-01-13T15:14:14.472Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/create-embeddings-with-vercel-ai-sdk</loc>
<lastmod>2025-01-08T09:48:51.812Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/structured-data-from-pdfs-with-vercel-ai-sdk</loc>
<lastmod>2025-01-08T09:38:39.939Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/describe-images-with-vercel-ai-sdk</loc>
<lastmod>2025-01-08T08:43:53.036Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/generate-enums-with-vercel-ai-sdk</loc>
<lastmod>2025-01-08T08:30:33.859Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/streaming-objects-with-vercel-ai-sdk</loc>
<lastmod>2025-01-07T14:57:33.952Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/tool-calls-with-vercel-ai-sdk</loc>
<lastmod>2025-01-07T11:40:24.873Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/structured-outputs-with-vercel-ai-sdk</loc>
<lastmod>2025-01-05T20:23:27.354Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/use-local-models-with-vercel-ai-sdk</loc>
<lastmod>2025-01-05T20:21:34.790Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/vercel-ai-sdk-messages-array</loc>
<lastmod>2025-01-05T20:20:34.559Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/swap-ai-models-with-vercel-ai-sdk</loc>
<lastmod>2025-01-05T20:19:28.607Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/system-prompts-with-vercel-ai-sdk</loc>
<lastmod>2025-01-05T20:16:29.413Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/streaming-text-with-vercel-ai-sdk</loc>
<lastmod>2025-01-05T20:15:55.465Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/generate-text-with-vercel-ai-sdk</loc>
<lastmod>2025-01-03T13:33:50.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/vercel-ai-sdk</loc>
<lastmod>2025-01-02T08:47:06.972Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/the-prompt-report</loc>
<lastmod>2024-12-28T14:01:32.322Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/building-effective-agents</loc>
<lastmod>2024-12-27T14:41:50.709Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/evalite-an-early-preview</loc>
<lastmod>2024-12-02T12:24:31.963Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/three-types-of-evals</loc>
<lastmod>2024-11-26T15:54:16.049Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/anthropics-new-model-context-protocol-in-2-minutes~hc0tx</loc>
<lastmod>2024-11-25T19:29:39.269Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/2025-the-year-building-with-gen-ais-gets-boring~d53hd</loc>
<lastmod>2024-11-21T13:29:23.483Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.aihero.dev/what-are-evals</loc>
<lastmod>2024-11-18T14:32:46.007Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
