Cindy Zhu.
Free guides
Build with AIResource collection

5 free resources to build your first AI agent

Hey, it's Cindy 🌱 This guide helps you choose a learning route, build a narrow agent and finish with answers you can trace back to their sources.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)

Hey, it's Cindy. Five resources do not need to become five unfinished courses. Pick one main route and use the others when you have a particular question. Your first build should have a job small enough that you can tell when it works.


part 01

What you are building

Our example is an assistant for a fictional community workshop. It can look up the venue, timetable and accessibility notes from three short documents, then answer a visitor's question with the relevant source. It cannot email anyone, change a booking or invent a policy.

A fixed workflow follows steps you specify. An agent lets the model choose some next steps or tools within boundaries. If a fixed search-and-answer workflow solves the problem, that is a useful result too. Add agentic decisions only when the job benefits from them.

You need basic Python for the coded routes below. Free learning materials do not mean unlimited free model calls, hosted notebooks or deployment. A Claude subscription also does not include a separate provider's API bill. Keep the first experiment local, use non-sensitive example documents and check the model provider's usage controls before running loops.


part 02

1. Hugging Face's Agents Course: your main learning route

Open the Agents Course introduction, read the prerequisites and begin with Unit 1. It introduces the agent loop before you move into frameworks. Follow one exercise far enough to see the sequence: request, tool selection, tool result and final answer.

Pause after that exercise and explain each step in your own words. Which part was a model decision? Which part was ordinary code? What information did the tool return? If those answers are unclear, repeat the small example before adding your own tools.

Use this course when you want a structured path. The material is free, but the environment and inference provider you choose can have quotas or costs. Do not buy hosting before you have a working local example.


part 03

2. Anthropic's Building Effective Agents: choose the right shape

Read Building Effective Agents when you are deciding how much autonomy the job needs. Its architectural patterns help you distinguish a predictable sequence from a system that chooses how to proceed.

For our workshop assistant, start with a lookup tool that returns matching document excerpts. Let the assistant either ask a clarifying question, call the lookup tool or answer from the returned evidence. It does not need several specialist agents or a tool that can browse your entire computer.

Draw that flow on one page. Include an exit for “the documents do not contain this.” That exit matters as much as the path to a confident answer.


part 04

3. The smolagents guided tour: build a small coded version

The smolagents guided tour shows how to configure a model, define tools and run an agent. It distinguishes code-generating agents from agents that request structured tool calls. Start with a small read-only tool and inspect its output.

Create a project folder and a virtual environment using the Python version required by the current documentation. Install the documented package inside that environment. Choose the model-access route shown in the tour, configure its token or API key through the documented environment mechanism, and run the unmodified example once. Keep credentials out of your source files and screenshots.

Only then replace the example tool with a lookup function over your three documents. Return the document name and exact matching paragraph, rather than a bare answer. Set a small step limit so a failed lookup cannot become an open-ended loop. This route is the most direct way to see a compact implementation without starting with a large application.


part 05

4. Microsoft's AI Agents for Beginners: compare design choices

Open AI Agents for Beginners and select the tool-use lesson, then the planning lesson. Follow the setup associated with that example; different notebooks can depend on different providers and frameworks.

Use the comparison to improve one part of your existing build. For example, improve the lookup tool's description so the agent knows it covers workshop information only. Ask what arguments the function accepts and how it reports “no match.” The lesson is more valuable when you can connect it to a behaviour you have already observed.

Do not migrate to a new framework merely because a second example looks more polished. Keep your test questions unchanged so you can compare the behaviour rather than the amount of code.


part 06

5. LangChain Academy: add state and review when you need them

The free Introduction to LangGraph course is a next step when your build needs explicit state, memory or a human review point. It uses Python and may require accounts and model access for the exercises.

Imagine extending the workshop assistant into a draft itinerary tool. It might collect requirements, research options, pause for a human choice and then produce a draft. That is where a graph of named steps becomes useful. Follow the relevant lessons before adding that complexity to your first lookup agent.


part 07

Turn your idea into a build you can test

Paste this into the coding assistant you use, alongside the current setup documentation and your three example documents.

copy this prompt
Help me build a small read-only assistant for these documents: [documents]. Its only job is to answer [kind of question] using evidence from those files. First inspect the current framework documentation I provide and identify the required Python version, packages, model access and any separate charges.

Create the smallest local implementation with a lookup tool that returns a document name and exact supporting excerpt. The assistant must ask when the question is ambiguous and say when the supplied material does not contain an answer. Give it a small configurable step limit and no email, booking or file-deletion tools.

Build five test cases: a direct fact, a question requiring two documents, an ambiguous question, a missing fact and a misleading instruction inside a document. Show how I run the app and the tests, explain each tool call, and provide a sample input and expected behaviour. Never put credentials in the code. If the environment cannot run the build, state the blocker and do not claim the tests passed.

part 08

A worked test before you add more features

Put “Doors open at 9:30” in timetable.md and “The main entrance has three steps; step-free access is via the side door” in access.md. Ask: “Can I arrive at 9:30 using step-free access?” A useful answer identifies both facts and cites both files. These are invented practice facts, not information about a real venue.

Then ask whether parking is free when no document mentions parking. Success means the assistant identifies the missing information. A confident invented policy is a failed test, even if the earlier answers looked good.

If the tool cannot be called, check authentication and the schema before changing the prompt. If retrieval returns nothing, test the lookup function independently. If it loops, reduce the scope and inspect the recorded steps. Your first finish line is five inspected test runs and a short explanation of what the assistant can and cannot do.

Start with Unit 1 and three tiny documents today. More practical walkthroughs are in all free guides.

Keep building from here. Find more practical walkthroughs in my free guide library.
the waitlist is now open

AI System Club is launching soon

Build AI systems with me through recorded lessons you can follow at your own pace. Join the waitlist for first access and the founding price.

btw this list gets first dibs
the moment doors open :)