<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Designing Tools on DATATWEETS</title><link>https://datatweets.com/courses/ai-agents/designing-tools/</link><description>Recent content in Designing Tools on DATATWEETS</description><generator>Hugo</generator><language>en</language><copyright>Copyright (c) 2025 Datatweets</copyright><lastBuildDate>Sun, 28 Jun 2026 09:00:00 +0200</lastBuildDate><atom:link href="https://datatweets.com/courses/ai-agents/designing-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Lesson 1 - What Makes a Good Tool</title><link>https://datatweets.com/courses/ai-agents/designing-tools/lesson-1-what-makes-a-good-tool/</link><pubDate>Fri, 02 Jan 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/ai-agents/designing-tools/lesson-1-what-makes-a-good-tool/</guid><description>Most of an agent&amp;rsquo;s reliability comes from tool design. Learn the four levers that make a tool Claude uses well: a clear name, a description that says when to use it, a tight and typed input schema, and a clear return value.</description></item><item><title>Lesson 2 - Validating Inputs with Pydantic</title><link>https://datatweets.com/courses/ai-agents/designing-tools/lesson-2-validating-inputs-with-pydantic/</link><pubDate>Fri, 02 Jan 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/ai-agents/designing-tools/lesson-2-validating-inputs-with-pydantic/</guid><description>A schema guides Claude but can&amp;rsquo;t guarantee valid inputs. Define a tool&amp;rsquo;s inputs as a Pydantic model with typed, constrained fields, generate the input_schema from it so the two never drift, and validate every call — raising a clear error before your function runs.</description></item><item><title>Lesson 3 - Errors and the Repair Loop</title><link>https://datatweets.com/courses/ai-agents/designing-tools/lesson-3-errors-and-the-repair-loop/</link><pubDate>Fri, 02 Jan 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/ai-agents/designing-tools/lesson-3-errors-and-the-repair-loop/</guid><description>A robust agent never crashes on a bad tool call. Build a validate-then-run wrapper that returns failures as is_error tool_results, wire it into the loop, and watch Claude read the error and repair its own call on the next step.</description></item><item><title>Lesson 4 - Tool Design Patterns</title><link>https://datatweets.com/courses/ai-agents/designing-tools/lesson-4-tool-design-patterns/</link><pubDate>Fri, 02 Jan 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/ai-agents/designing-tools/lesson-4-tool-design-patterns/</guid><description>Beyond a single good tool: design a whole tool set well. Right-size granularity and avoid overlap, know which tools are safe to run in parallel or retry, gate irreversible side effects behind confirmation, and shape concise, consistent return values.</description></item><item><title>Lesson 5 - Guided Project: Robust Atlas Tools</title><link>https://datatweets.com/courses/ai-agents/designing-tools/lesson-5-guided-project-robust-atlas-tools/</link><pubDate>Fri, 02 Jan 2026 09:00:00 +0200</pubDate><guid>https://datatweets.com/courses/ai-agents/designing-tools/lesson-5-guided-project-robust-atlas-tools/</guid><description>Apply the whole module: give Atlas robust tools with Pydantic input models, schemas generated from those models, a validate-then-run wrapper, and a registry-driven loop that turns any failure into an is_error result Claude can recover from.</description></item></channel></rss>