Part 2 Developing advanced agent capabilities
The agent you built in part 1 runs beautifully inside a notebook, but hand it a realistic request, and its limits show up fast. Its knowledge is frozen to the training data, so without a way to fetch fresh documents, the answers drift out of date. Between turns, nothing is remembered, which rules out any longer conversation. Hard problems throw it off because it jumps in without a plan. Code is something it can discuss but not run. Finally, tasks that demand several skills tend to overwhelm a single agent trying to do everything at the same time. This part closes each of those gaps one chapter at a time and ends by showing how to evaluate whether the resulting agent works.
Chapter 5 introduces retrieval augmented generation (RAG) and file tools so that the agent can reach for knowledge that lives outside the model's training data. You'll implement embeddings, chunking, and vector search from scratch and give the agent a way to read from local files.
Chapter 6 adds memory in three layers. You'll build a way to manage ever-growing conversations, session handling that so different users keep their own history, and long-term memory that survives across runs. The same chapter introduces human-in-the-loop (HITL) approval for sensitive tool calls.