ai-agents-from-scratch README

The project's README from github.com/pguso/ai-agents-from-scratch. As one markdown file: README.md.

AI Agents From Scratch

Learn to build AI agents locally without frameworks. Understand what happens under the hood before using production frameworks.

Agent architecture overview

Purpose

This repository teaches you to build AI agents from first principles using local LLMs and node-llama-cpp. By working through these examples, you'll understand:

A Python version of this tutorial is available here: https://github.com/pguso/agents-from-scratch

Philosophy: Learn by building. Understand deeply, then use frameworks wisely.

Companion Website

This repository now has a matching companion website:

https://agentsfromscratch.com

The website is not a replacement for this repo, but a conceptual companion that:

Recommended workflow:

Think of the site as the map and this repo as the terrain.

Agent Fundamentals - From LLMs to ReAct

Prerequisites

Installation

npm install

Run Examples

node intro/intro.js
node simple-agent/simple-agent.js
node react-agent/react-agent.js

Learning Path

Follow these examples in order to build understanding progressively:

1. Introduction - Basic LLM Interaction

intro/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Model loading, context, inference pipeline, token generation


2. (Optional) OpenAI Intro - Using Proprietary Models

openai-intro/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Inference endpoints, network latency, cost vs control, data privacy, vendor dependence


3. Translation - System Prompts & Specialization

translation/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: System prompts, agent specialization, behavioral constraints, prompt engineering


4. Think - Reasoning & Problem Solving

think/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Reasoning agents, problem decomposition, cognitive tasks, reasoning limitations


5. Batch - Parallel Processing

batch/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Parallel execution, sequences, batch size, throughput optimization


6. Coding - Streaming & Response Control

coding/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Streaming, token-by-token generation, response control, real-time feedback


7. Simple Agent - Function Calling (Tools)

simple-agent/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Function calling, tool definitions, agent decision making, action-taking

This is where text generation becomes agency!


8. Simple Agent with Memory - Persistent State

simple-agent-with-memory/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Persistent memory, state management, memory systems, context augmentation


9. ReAct Agent - Reasoning + Acting

react-agent/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: ReAct pattern, iterative reasoning, observation-action cycles, multi-step agents

This is the foundation of modern agent frameworks!


10. AoT Agent - Atom of Thought Planning

aot-agent/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: AoT planning, atomic operations, dependency resolution, plan validation, structured reasoning


11. Error Handling - Resilience for LLM + Tools

error-handling/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Error taxonomy, retry policies, timeouts, fallbacks, degraded mode, observability, user-safe messaging


12. Tree of Thought - Search over reasoning branches

tree-of-thought/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Tree of Thought, beam search, branch pruning, verifiable objectives, search controllers


13. Graph of Thought - DAG merge for multi-source outputs

graph-of-thought/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Graph of Thought, DAG orchestration, multi-source fusion, merge-before-generate, policy reconciliation

Decision guide: use ToT when you need to search competing paths; use GoT when you need to combine multiple sources into one consistent policy. Compare both in:


14. Chain of Thought - Auditable stepwise decisioning

chain-of-thought/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Chain of Thought, structured reasoning traces, policy-constrained decisions, explainability, review-ready workflows


15. Tool routing (embeddings) - Narrow the tool catalog per request

tool-routing-embeddings/ | Code | Code Explanation | Concepts

What you'll learn:

Key concepts: Tool routing, embedding similarity, exemplar design, context/token savings, pinned tools, retrieval-style agent design


Documentation Structure

Each example folder contains:

Core Concepts

What is an AI Agent?

AI Agent = LLM + System Prompt + Tools + Memory + Reasoning Pattern
           ─┬─   ──────┬──────   ──┬──   ──┬───   ────────┬────────
            │          │           │       │              │
         Brain      Identity    Hands   State         Strategy

Evolution of Capabilities

1. intro          → Basic LLM usage
2. translation    → Specialized behavior (system prompts)
3. think          → Reasoning ability
4. batch          → Parallel processing
5. coding         → Streaming & control
6. simple-agent   → Tool use (function calling)
7. memory-agent   → Persistent state
8. react-agent    → Strategic reasoning + tool use

Architecture Patterns

Simple Agent (Steps 1-5)

User → LLM → Response

Tool-Using Agent (Step 6)

User → LLM ⟷ Tools → Response

Memory Agent (Step 7)

User → LLM ⟷ Tools → Response
       ↕
     Memory

ReAct Agent (Step 8)

User → LLM → Think → Act → Observe
       ↑      ↓      ↓      ↓
       └──────┴──────┴──────┘
           Iterate until solved

️ Helper Utilities

PromptDebugger

helper/prompt-debugger.js

Utility for debugging prompts sent to the LLM. Shows exactly what the model sees, including:

Usage example in simple-agent/simple-agent.js

️ Project Structure - Fundamentals

ai-agents/
├── README.md                          ← You are here
├─ examples/
├── 01_intro/
│   ├── intro.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 02_openai-intro/
│   ├── openai-intro.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 03_translation/
│   ├── translation.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 04_think/
│   ├── think.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 05_batch/
│   ├── batch.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 06_coding/
│   ├── coding.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 07_simple-agent/
│   ├── simple-agent.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 08_simple-agent-with-memory/
│   ├── simple-agent-with-memory.js
│   ├── memory-manager.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 09_react-agent/
│   ├── react-agent.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 10_aot-agent/
│   ├── aot-agent.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 11_error-handling/
│   ├── error-handling.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 12_tree-of-thought/
│   ├── tree-of-thought.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 13_graph-of-thought/
│   ├── graph-of-thought.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 14_chain-of-thought/
│   ├── chain-of-thought.js
│   ├── CODE.md
│   └── CONCEPT.md
├── 15_tool-routing-embeddings/
│   ├── tool-routing-embeddings.js
│   ├── CODE.md
│   └── CONCEPT.md
├── helper/
│   └── prompt-debugger.js
├── models/                             ← Place your GGUF models here
└── logs/                               ← Debug outputs

Additional Resources

Contributing

This is a learning resource. Feel free to:

License

Educational resource - use and modify as needed for learning.


Built with ❤️ for people who want to truly understand AI agents

Start with intro/ and work your way through. Each example builds on the previous one. Read both CODE.md and CONCEPT.md for full understanding.

Happy learning!


Working with me

If this repo was useful and you have a project that needs ai workflows, context engineering, RAG, or local/production LLM work done properly, I'm open to freelance or contract engagements.

No pressure either way - glad if the repo was useful on its own.

ai-agents-from-scratch (pguso/ai-agents-from-scratch)

Searching Database…

What is this?A hands-on tutorial repo that teaches you to build AI agents from first principles using local LLMs via node-llama-cpp, with no frameworks involved, so you understand function calling, memory, and ReAct before using production frameworks.
Is this a framework or just a set of tutorial examples?It is a learning resource, not a framework: 15 progressively harder standalone JavaScript examples, each with its own .js code file plus CODE.md (line-by-line explanation) and CONCEPT.md (architectural concepts).
How do I run the examples?Clone the repo, install Node dependencies, download the required GGUF models into the ./models/ folder as described in DOWNLOAD.md, then run each example's .js file in order starting with intro/.
What do I need installed before trying this?Node.js 18+ and at least 8GB of RAM (16GB recommended) to run the local GGUF models; the optional openai-intro example also needs access to a hosted OpenAI model instead of a local one.
Is this production-ready code I can drop into an app?No, it is explicitly an educational resource meant to teach concepts, not a hardened library; the repo's own test script is a stub and the license note says to use and modify it for learning purposes only.
What does the ReAct agent example add over the simple agent?It introduces the Reason-Act-Observe loop, letting the agent iteratively call tools, observe results, and self-correct across multiple steps instead of making a single tool call.
What is the Atom of Thought (AoT) example about?It shows a planning method that breaks multi-step computations into atomic operations with explicit dependencies, producing a structured JSON plan that is executed deterministically.
What's the difference between Tree of Thought and Graph of Thought here?Tree of Thought runs a beam search over competing reasoning branches to find one best path, while Graph of Thought models reasoning as a DAG that merges multiple parallel sources into one consistent result.
Is there a companion resource besides the code?Yes, a companion website visualizes the learning path and explains the concepts behind each example, while the repo itself is meant for running and studying the actual code.
What are similar projects?agentscope, NeoHorse, brigade, gitagent, evolver, ruflo, Baize, tau
Creator
pguso
Size
1.8 MB
Stars
4.9K
Updated
CommitJul 24
Age
11mo
Commits · 90 Days