/agentic_patterns

Implementing the 4 agentic patterns from scratch

Primary LanguageJupyter NotebookMIT LicenseMIT

logo

Agentic Patterns

Implementing the agentic patterns using Groq

logo

No LangChain, no LangGraph, no LlamaIndex, no CrewAI. Pure and simple API calls to Groq.

Introduction

This repository contains an implementation of the 4 agentic patterns as defined by Andrew Ng in his DeepLearning.AI blog article series.

Here’s a description of the four patterns we will be implementing.

The 4 Agentic patterns

Reflection Pattern πŸ€”

logo

A very basic pattern but, despite its simplicity, it provides surprising performance gains for the LLM response.

It allows the LLM to reflect on its results, suggesting modifications, additions, improvements in the writing style, etc.

Want to see how this pattern is implemented? πŸ’»

Take a look at the YouTube video! πŸ‘‡

Watch the video


Tool Pattern πŸ› 

logo

The information stored in the LLM weights is (usually) not enough to give accurate and insightful answers to our questions

That's why we need to provide the LLM with ways to access the outside world 🌍

In practice, you can build tools for whatever you want (at the end of the day they are just functions the LLM can use), from a tool that let's you access Wikipedia, another to analyse the content of YouTube videos or calculate difficult integrals in Wolfram Alpha.

Tools are the secret sauce of agentic applications and the possibilities are endless! πŸ₯«

Want to see how this pattern is implemented? πŸ’»

  • Check the notebook for a step by step explanation
  • Check the ToolAgent for a complete Python implementation
  • Check the Tool for understanding how Tools work under the hood.

Take a look at the YouTube video! πŸ‘‡

Watch the video


Planning Pattern 🧠

logo

So, we've seen agents capable of reflecting and using tools to access the outside world. But ... what about planning, i.e. deciding what sequence of steps to follow to accomplish a large task?

That is exactly what the Planning Pattern provides; ways for the LLM to break a task into smaller, more easily accomplished subgoals without losing track of the end goal.

The most paradigmatic example of the planning pattern is the ReAct technique, displayed in the diagram above.

Want to see how this pattern is implemented? πŸ’»

  • Check the notebook for a step by step explanation
  • Check the ReactAgent for a complete Python implementation

Take a look at the YouTube video! πŸ‘‡

Watch the video


Multiagent Pattern πŸ§‘πŸ½β€πŸ€β€πŸ§‘πŸ»

logo

You may have heard about frameworks like crewAI or AutoGen, which allow you to create multi-agent applications.

These frameworks implement different variations of the multi-agent pattern, in which tasks are divided into smaller subtasks executed by different roles (e.g. one agent can be a software engineer, another a project manager, etc.)

Want to see this pattern in action?

TBD