Cursuri AI.ro International — AI e-learning for professionals

Try the platform before you pay

Explore the interactive account demo and read the first lesson of AI Agents: Architecting and Automating Autonomous Systems for free, in full — no account, no card.

AI Professor in every lesson Quizzes with feedback Cancel anytime
cursuri-ai.ro/app/courses/ai-agents-architecture-and-automation Interactive demo · sample account
Cursuri AI.ro International — AI e-learning for professionals

Welcome! 👋

Welcome to Cursuri AI International — AI e-learning for professionals, now in English. Activate your subscription and start learning.

AI virtual professor Exclusive to Cursuri AI

A mentor who knows every lesson in detail and guides you personally.

Included in your subscription

Everything you get with a single subscription

Full access to the entire platform, with no hidden limits or extra costs.

20 premium courses Practical content created by specialists, constantly updated with the latest in AI
24/7 AI virtual professor A personal mentor built into every lesson — ask any question and get an instant answer
555 hands-on lessons Short, structured lessons with practical exercises you can apply at work right away
Smart AI quizzes Automatically generated questions, tailored to your weak spots, with detailed feedback
Save and organize Bookmarks, personal notes and a spaced-repetition system for maximum retention
Progress and analytics Streaks, weekly goals and personalized insights into your growth

Start learning AI today

Pick the right plan and get instant access to premium courses, an AI virtual professor, smart quizzes and hands-on exercises.

No long-term commitment Cancel anytime, no penalties Instant access after payment
This is a preview with sample data. Activate your subscription to save your conversations with the AI Professor.

AI Conversations

The complete history of your dialogues with the AI Virtual Professor

4 Conversations
36 Messages
2 Courses
AI Fundamentals 2 conversations
You

Can you explain how an artificial neuron works?...

AI Professor
AI Professor

An artificial neuron simulates how a biological neuron works: 1. Inputs — it receives multiple numeric values 2. Weights — each input has a weight that determ...

You

What is the ReLU activation function?...

AI Professor
AI Professor

ReLU (Rectified Linear Unit) is the most popular activation function: - Formula: f(x) = max(0, x) - If the input is positive → it passes through unchanged - If the input is negative → it turns it into ...

Prompt Engineering Masterclass 2 conversations
This is sample data Activate a subscription to save and export your real conversations with the AI Professor.
See plans
This is a preview with sample data. Activate a subscription to see your real scores.

Scores

Your performance across 5 assessed courses

79% Overall average
Very good
5
Courses assessed
4 / 5
Passed (≥70%)
22
Quizzes completed
168 / 220
Total points
Score distribution
4 courses ≥70% 1 course 40-69%
Best result Prompt Engineering Masterclass — 92%

Performance by course

92
Prompt Engineering Masterclass Passed
46 / 50 points 5 quizzes 92%
85
Introduction to AI Engineering Passed
34 / 40 points 4 quizzes 85%
76
AI for Digital Marketing Passed
38 / 50 points 5 quizzes 76%
71
RAG — Retrieval Augmented Generation Passed
21 / 30 points 3 quizzes 71%
58
AI Agents & Automation Not passed
29 / 50 points 5 quizzes 58%
This is sample data Activate a subscription to see your real quiz scores.
See plans
Structured learning paths

From zero to expert,
step by step

Career paths and specializations with a clear structure, from fundamentals to advanced level. Each course prepares you for the next — no guessing what to learn next, the platform guides you.

20 Premium courses
555 Hands-on lessons
24/7 AI Professor

How a learning path works

Four simple steps from your first lesson to expert level

01

Choose the right path

Two complete career paths plus focused specializations — for engineers, managers, marketers, or professionals in specialized fields.

02

Complete the stages in order

Each path is divided into clear stages. Each course prepares you for the next — no skipped steps, no lost context.

03

The AI Professor guides you

Ask anything in every lesson. You get explanations, practical examples, and personalized quizzes.

04

Track your progress

Progress per stage and per path, quiz scores, and automatic recommendations for your next step.

AI Virtual Professor Exclusive

Built into every lesson of every path

Throughout your entire path, you have access to an AI professor that knows the content of every lesson. Ask anything — you get detailed explanations, industry examples, and quizzes adapted to your level.

AI chat included in your subscription Answers tailored to the lesson you're studying
Automatic summaries Key points intelligently extracted
Personalized quizzes Unique questions, calibrated to you

Start your first learning path today

Choose the right plan and get instant access to the AI Professor, smart quizzes, and all premium courses.

Instant access Cancel anytime AI Professor included
Individual courses

Choose the courses you're interested in

Subscribe to each course individually. €49 + VAT / month per course, cancel anytime.

IT PRO Advanced Popular

AI Agents: Architecting and Automating Autonomous Systems

The complete AI Agents and Automation masterclass for engineers — updated for 2026

30 lessons ~26h
BUSINESS Beginner

Microsoft 365 Copilot for Office Work: Role-Based Productivity

Turn Word, Excel, Outlook, Teams and PowerPoint into AI assistants — real productivity for your role, not generic tricks.

32 lessons ~24h
BUSINESS Intermediate Popular

SEO and AEO/GEO in the AI Era: Optimizing for Google, AI Overviews and Generative Engines

Modern SEO plus end-to-end AEO/GEO: how to appear in Google and AI Overviews and get cited by ChatGPT, Perplexity, Gemini

30 lessons ~26h
BUSINESS Intermediate

Manager in the AI Era: Leading Your Team Through the AI Transformation

Lead your team through the AI transformation with proven frameworks: ADKAR, Kotter and the psychology of adoption

30 lessons ~24h
BUSINESS Intermediate Popular

AI Image Generation: The Complete Guide from Prompt to Publishing

Premium course: visual prompt engineering, AI platforms, production at scale, legal, ROI and hands-on tutorials — updated for 2026

26 lessons ~27h
BUSINESS Beginner

No-Code Data Analysis with AI: ChatGPT, Excel and SQL for Non-Programmers

Analyze data with conversational AI, no code: ChatGPT, Excel and SQL for non-programmers, with verification and GDPR.

27 lessons ~24h
BUSINESS Intermediate Popular

AI for Entrepreneurs and Startups: The Complete Guide

Premium course: idea validation, no-code MVP, go-to-market, finance, scaling and the startup ecosystem with AI — updated for 2026

30 lessons ~28h
BUSINESS Intermediate Popular

AI for Sales and CRM

The complete AI masterclass for sales and intelligent CRM — updated for 2026

28 lessons ~25h
BUSINESS Intermediate Popular

AI for Content Creation and Copywriting

Premium course: copywriting, editorial strategy, social media, video, audio, brand voice, SEO, KPIs and scaling with AI — updated for 2025-2026

29 lessons ~29h
BUSINESS Beginner Popular

AI for Digital Marketing

The complete AI masterclass for digital marketers — updated for 2026

31 lessons ~27h
IT PRO Advanced Popular

Context Engineering and Memory for AI Agents: Beyond Prompting

Engineer AI agents' context and memory for reliability at scale: context anatomy, memory types, retrieval, compaction, cost.

25 lessons ~24h
BUSINESS Intermediate Popular

AI for Business Leaders

The complete AI masterclass for leaders and management — updated for 2026

24 lessons ~22h
IT PRO Advanced Popular

Claude Code Mastery: Agentic Coding from the Terminal (multi-file, git, CI, MCP)

Terminal-first agentic coding with Claude Code: multi-file, git, headless, subagents, hooks, CI/CD, MCP, security and routing across the 2026 Anthropic lineup (including Claude Fable 5).

28 lessons ~25h
IT PRO Beginner

Vibe Coding: From Prompt to Application with Lovable, v0, Bolt and Replit Agent

Build full-stack applications from prompts and ship them safely, legally and responsibly — without writing code.

22 lessons ~24h
IT PRO Expert Popular

Cursor as a Pro: AI-Native IDE, Composer and Multi-Agent 2026 (Enterprise Edition)

Cursor 3 Pro: from Composer to Background Agents and Enterprise — April 2026

30 lessons ~25h
IT PRO Advanced Popular

MCP (Model Context Protocol) — Building Servers and Integrations (Enterprise Edition)

The complete MCP guide: from architecture to production servers — Python, TypeScript, security, deployment

22 lessons ~25h
IT PRO Advanced Popular

Advanced LLM Integration in Production Applications

The complete masterclass on LLM integration in production — updated for 2026

24 lessons ~26h
IT PRO Advanced Popular

RAG: Retrieval-Augmented Generation in Practice

The complete RAG masterclass for AI Engineers — updated for 2026

27 lessons ~24h
IT PRO Intermediate Popular

The Complete Prompt Engineering Masterclass

Advanced prompting techniques for professionals — updated for 2026

32 lessons ~27h
IT PRO Beginner Popular

Introduction to AI Engineering

The complete AI Engineering masterclass for developers — updated for 2026

28 lessons ~25h
This is a preview with sample data. Activate a subscription to save your lessons and notes.

Saved & Notes

Your saved lessons and personal notes, organized by course.

5 saved lessons 3 notes
Prompt Engineering Masterclass 3
Chain-of-Thought Prompting — The Complete Guide Mar 18
Few-Shot vs Zero-Shot — When to Use Each Mar 16
Advanced System Prompts for GPT-5.5 and Claude Mar 14
AI for Digital Marketing 2
Generating Ad Copy with AI — Meta & Google Ads Mar 12
Automating Campaigns with AI Agents Mar 10
This is sample data Activate a subscription to save your own lessons and personal notes.
View plans
This is a preview with sample data. Activate a subscription to generate personalized review flashcards.

Review

Key concepts from your lessons, generated by the AI Virtual Professor

3 Lessons
10 Cards
2 Courses
AI Fundamentals 7 cards
Prompt Engineering Masterclass 3 cards
This is sample data Activate a subscription to generate personalized review flashcards for every lesson.
View plans
This is a preview with demo data. Activate a subscription to see your real statistics.

Learning Insights

Your learning statistics

15h 30m total time 7 achievements
12/7 Lessons 175/180 Minutes 14/21 Streak
12
Lessons completed
175
Minutes invested
59%
5
Quizzes taken
14
Day streak

Personal records

21 days Longest streak
175m Most active week
45 days Total active days
22m/day Daily average
This is demo data Activate a subscription to see your real statistics and achievements.
See plans

Saved articles

The blog articles you saved for later, all in one place.

0 saved articles

No saved articles yet

When you read an article on the blog, hit the “Save” button to find it again quickly right here.

My account

Welcome

The premium AI education platform. Manage your account, subscription and progress.

Demo data. Activate a subscription to see your real progress.

Your progress

See courses
3
Courses in progress
5
Courses completed
47
Lessons completed
14
Day streak

You don't have an active subscription.

Choose a plan
Premium feature

Available with an account

This section becomes active once you create an account.

See available plans
20 premium courses 555 hands-on lessons 24/7 AI Professor Secure payments with Stripe Cancel anytime
Full lesson, free Module 1 · Lesson 1

What Are AI Agents — From Copilot to Autonomous Systems in 2026

From the course AI Agents: Architecting and Automating Autonomous Systems

55 min read Advanced Quiz included + 29 lessons with a subscription
Tip: select any passage in the lesson and hit “Ask the AI Professor” — that's exactly how it works inside the platform.

Built-in AI Professor Exclusive

Ask anything about the lesson and get an instant answer. The AI Professor knows the course content and helps you learn more effectively.

Select a passage in the lesson → it explains it on the spot Interactive chat — answers any question Automatic summaries with key points Personalized AI-generated quizzes

A chatbot waits to be asked. An agent waits for no one — it sets its own steps, calls the tools it needs, and keeps going until it reaches its goal, even after you have closed your laptop. This seemingly subtle difference is the most significant paradigm shift in applied artificial intelligence since the emergence of transformer models in 2017: an AI agent is no longer an assistant that answers, but a software system that perceives its environment, plans sequences of actions, uses external tools, and operates autonomously until it achieves a defined objective. And the boundary between "a clever LLM call" and "a real agent" is exactly where most projects either generate real economic value or burn money with nothing to show for it.

From Chatbot to Agent: A Taxonomy of Autonomy

To understand what AI agents are, we must first establish a clear taxonomy of autonomy levels in systems built on large language models (LLMs). This taxonomy is not merely academic — it dictates the architectural decisions, the operating costs, and the risk profile of every system.

Level 0 — The LLM as a pure function (Stateless Completion). At this level, a model such as Claude Opus 4.8 or GPT-5.5 receives a prompt and returns a response. There is no memory between calls, no tools, no planning. Example: an API endpoint that translates text from English into Romanian. Every request is independent. Cost is predictable (input tokens + output tokens), and risk is minimal because the output triggers no action in the real world.

Level 1 — Copilot (permanent Human-in-the-Loop). GitHub Copilot, Cursor, or Claude Code in interactive mode operate at this level. The model suggests, but the human decides. Every potentially destructive action (deleting a file, executing a command) requires explicit approval. The system may have access to tools (terminal, file system), but delegation is granular and supervised.

Level 2 — Semi-autonomous agent (Human-on-the-Loop). The agent executes sequences of actions without individual approval, but operates under strict constraints: a maximum token budget, an allowlist of permitted tools, timeouts, and an escalation mechanism when uncertainty exceeds a threshold. The human monitors and intervenes only when the agent flags an exceptional situation. Most enterprise deployments in 2026 operate at this level.

Level 3 — Autonomous agent with self-governance. The agent sets sub-goals, allocates resources, selects strategies, and self-corrects without human intervention. This level is still experimental in production, except in low-risk domains (content generation, non-critical data analysis). Recent 2026 research from Anthropic and Google DeepMind explores formal verification mechanisms that would enable full autonomy in critical domains.

Level 4 — Multi-agent systems with coordinated emergence. Multiple autonomous agents collaborate, negotiate, and coordinate to solve complex problems. Each agent has specialized competencies, and the emergent collective behavior exceeds individual capabilities. The 2026 pilot projects (for example, the fully-agentic software development systems from Anthropic and OpenAI) demonstrate the potential of this level.

┌─────────────────────────────────────────────────────────┐
│  THE AUTONOMY TAXONOMY FOR LLM-BASED SYSTEMS            │
├─────────────────────────────────────────────────────────┤
│  Level 0: Stateless LLM    │  prompt → completion       │
│  Level 1: Copilot          │  suggestion → human OK     │
│  Level 2: Semi-Auto Agent  │  goal → supervised exec    │
│  Level 3: Autonomous Agent │  goal → self-governance    │
│  Level 4: Multi-Agent      │  mission → coordination    │
├─────────────────────────────────────────────────────────┤
│  Risk:    ▓░░░░  →  ▓▓▓▓▓                              │
│  Control: ▓▓▓▓▓  →  ▓░░░░                              │
│  Value:   ▓░░░░  →  ▓▓▓▓▓                              │
└─────────────────────────────────────────────────────────┘

The formal definition we will use throughout this course: an AI agent is a software system that (1) receives a high-level objective, (2) decomposes the objective into sub-tasks, (3) selects and invokes tools for each sub-task, (4) evaluates intermediate results, (5) adapts its plan based on feedback, and (6) operates within predefined safety constraints.

The Agentic Stack: The 5 Fundamental Components

Any AI agent, regardless of complexity, can be decomposed into five architectural components. This model — which we call The Agentic Stack — provides an analytical framework for evaluating, designing, and debugging agentic systems.

1. Brain — The LLM

The agent's brain is a large language model that serves as its reasoning engine. In 2026, model choice is a critical architectural decision:

Model Provider Strengths Context Window Relative cost
Claude Fable 5 Anthropic Most capable Anthropic model (tier above Opus) 1M tokens $$$$$
Claude Opus 4.8 Anthropic Complex reasoning, long-horizon tool use, adaptive thinking 1M tokens $$$$$
Claude Sonnet 5 Anthropic The new default, "the most agentic Sonnet", hot-path agent ($2/$10 intro) 1M tokens $$
Claude Sonnet 4.6 Anthropic Speed-quality balance (previous Sonnet generation) 1M tokens $$$
Claude Haiku 4.5 Anthropic Speed, low cost, triage/router 200K tokens $
GPT-5.5 OpenAI Natively omnimodal, computer use, Codex 1M tokens $$$$
Gemini 3.1 Pro Google Multimodality, long context 2M tokens $$$$

Update May 28, 2026 — Claude Opus 4.8 (the top of the Opus family). Anthropic released Opus 4.8 as the peak of the Opus family, with the same pricing as the previous 4.7 generation ($5/$25 per 1M tokens), 1M context, 128K output. The most capable Anthropic model overall, however, is Claude Fable 5 (GA June 9, 2026, $10/$50, a tier above Opus), while Claude Sonnet 5 (June 30, 2026, $2/$10 intro) is the new default for everyday tasks. The 4.7 generation (April 16, 2026) had already introduced a new tokenizer that can use more tokens for the same text (a range of roughly 1.0–1.35x depending on content) — that change carries over into 4.8. The most relevant improvements for agent developers in 4.8: (1) code with unhandled errors is significantly less likely versus Opus 4.7 (per Anthropic's announcement), (2) adaptive thinking (the successor to "Extended Thinking") with a tighter thinking-to-action bridge — plans stay coherent through long execution, (3) tool use reliability sustained across dozens of consecutive turns without drift. Knowledge cutoff: January 2026. In practice, long-horizon agents become production-viable with the 4.7/4.8 generation, not just demos.

Update April 23, 2026 — GPT-5.5. OpenAI released GPT-5.5 at $5/$30 per 1M tokens (Pro $30/$180), with a context on the order of 1M tokens. It is natively omnimodal end-to-end (text + voice + image + video processed in a single prompt), with strong results on agentic/terminal benchmarks and improved token efficiency per task in Codex. It supports native computer use, integrated tool search, and the Responses API. For agents, omnimodality means a single call can receive a screenshot + voice memo + text without separate pre-processing.

A common practice in 2026 is tiered model selection: the agent uses a fast, cheap model (Haiku 4.5) for routine decisions and escalates to a powerful model (Opus 4.8 or GPT-5.5) for complex reasoning. This reduces costs by 60-80% without compromising decision quality. The recommended 2026 pattern for agents: Sonnet 5 as the hot path (fast, cheap tool calling — $2/$10 intro pricing until Aug 31, 2026, then $3/$15), escalating to Opus 4.8 for edge cases and for steps that require long-horizon reasoning. The new tokenizer (introduced in 4.7 and kept in 4.8, roughly 1.0–1.35x more tokens for the same text, depending on content) makes attention to caching (5-minute TTL, 90% off) and context pruning critical — a multi-turn agent without caching burns through its budget fast.

# Example: Tiered Model Selection with fallback
import anthropic

client = anthropic.Anthropic()

def select_model(task_complexity: str) -> str:
    """Selects the optimal model based on task complexity."""
    MODEL_TIERS = {
        "trivial": "claude-haiku-4-5",      # Classification, simple extraction
        "standard": "claude-sonnet-4-6",     # Synthesis, moderate analysis
        "complex": "claude-opus-4-8",        # Multi-hop reasoning, critical decisions
    }
    return MODEL_TIERS.get(task_complexity, "claude-sonnet-4-6")

def agent_call(prompt: str, complexity: str = "standard") -> str:
    model = select_model(complexity)
    response = client.messages.create(
        model=model,
        max_tokens=4096,
        messages=[{"role": "user", "content": prompt}]
    )
    return response.content[0].text

# Automatic complexity triage
def classify_complexity(task_description: str) -> str:
    classification = agent_call(
        f"Classify the complexity of this task as 'trivial', "
        f"'standard' or 'complex'. Answer with a single word.\n\n"
        f"Task: {task_description}",
        complexity="trivial"  # The triage itself is trivial
    )
    return classification.strip().lower()

2. Tools — Function Calling

Tools turn an LLM from a "stochastic parrot" into an agent capable of interacting with the real world. A tool is a function with a precise JSON schema that the agent can invoke. Anthropic's official documentation (https://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview) details the complete specifications of the tool use protocol.

The main categories of tools:

  • Read tools: database queries, web search, external API access, file reading
  • Write tools: creating/modifying files, sending emails, updating databases
  • Compute tools: code execution (sandboxed), mathematical operations, simulations
  • Communication tools: notifications, escalation to humans, reporting
# Defining a tool with JSON Schema
tools = [
    {
        "name": "query_database",
        "description": (
            "Executes a read-only SQL query against the production "
            "database. Returns a maximum of 100 rows. "
            "Does NOT support DDL or DML statements (INSERT/UPDATE/DELETE)."
        ),
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {
                    "type": "string",
                    "description": "A valid SQL SELECT query"
                },
                "database": {
                    "type": "string",
                    "enum": ["analytics", "users", "orders"],
                    "description": "The target database"
                }
            },
            "required": ["query", "database"]
        }
    },
    {
        "name": "send_notification",
        "description": (
            "Sends a Slack notification to a specified channel. "
            "Use only for critical alerts or requested reports."
        ),
        "input_schema": {
            "type": "object",
            "properties": {
                "channel": {
                    "type": "string",
                    "description": "The Slack channel name (e.g.: #incidents)"
                },
                "message": {
                    "type": "string",
                    "description": "The notification content (max 2000 characters)"
                },
                "severity": {
                    "type": "string",
                    "enum": ["info", "warning", "critical"],
                    "description": "The severity level"
                }
            },
            "required": ["channel", "message", "severity"]
        }
    }
]

3. Memory — Persistent Context

An agent's memory operates on three distinct levels:

Working Memory — the context window of the current conversation. Limited by the model's context window (1M tokens for Claude Opus 4.8 and GPT-5.5, 2M for Gemini 3.1 Pro). It holds the conversation history, tool results, and the current reasoning. With Opus 4.8, 1M context effectively becomes an extended cross-session memory for agents — you can keep entire days of tool use history in the prompt, validated by the long-horizon reliability improvement. Caution: a large context window does not mean it must be filled up — Lost-in-the-Middle remains a reality (notable retrieval degradation for information in the middle of the context).

Episodic Memory (Short-term Persistent) — information about recent sessions, stored in a vector database or key-value store. It allows the agent to "remember" previous interactions with the same user or about the same project.

Semantic Memory (Long-term Knowledge) — the agent's knowledge base, implemented through RAG (Retrieval-Augmented Generation). It includes internal documentation, operating procedures, and domain-specific knowledge bases.

# Three-level memory architecture
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any

@dataclass
class AgentMemory:
    """Three-level memory system for an AI agent."""

    # Level 1: Working memory (inside the context window)
    working_context: list[dict] = field(default_factory=list)
    max_working_tokens: int = 100_000

    # Level 2: Episodic memory (vector database)
    episode_store: Any = None  # ChromaDB, Pinecone, etc.

    # Level 3: Semantic memory (RAG)
    knowledge_base: Any = None  # Persistent vector index

    def add_to_working_memory(self, role: str, content: str) -> None:
        """Adds a message to working memory with overflow handling."""
        self.working_context.append({
            "role": role,
            "content": content,
            "timestamp": datetime.now().isoformat()
        })
        self._compact_if_needed()

    def _compact_if_needed(self) -> None:
        """Compacts working memory when it approaches the limit."""
        # Simplified estimate: ~4 characters per token
        total_chars = sum(len(m["content"]) for m in self.working_context)
        estimated_tokens = total_chars // 4

        if estimated_tokens > self.max_working_tokens * 0.8:
            # Strategy: summarize old messages, keep the recent ones
            old_messages = self.working_context[:-10]
            recent_messages = self.working_context[-10:]

            summary = self._summarize(old_messages)
            self.working_context = [
                {"role": "system", "content": f"Summary of the previous conversation: {summary}"}
            ] + recent_messages

    def recall_episodes(self, query: str, k: int = 5) -> list[dict]:
        """Retrieves relevant episodes from episodic memory."""
        if self.episode_store is None:
            return []
        results = self.episode_store.query(query_texts=[query], n_results=k)
        return results

    def search_knowledge(self, query: str, k: int = 10) -> list[str]:
        """Searches the semantic knowledge base."""
        if self.knowledge_base is None:
            return []
        return self.knowledge_base.similarity_search(query, k=k)

    def _summarize(self, messages: list[dict]) -> str:
        """Placeholder for summarization — in production, use an LLM."""
        return f"[Summary of {len(messages)} previous messages]"

4. Planning — Goal Decomposition

Planning is the agent's ability to break a complex objective down into executable sub-tasks and to determine the optimal execution order. We will explore planning patterns in detail (ReAct, Plan-and-Execute, Reflexion) in the next lesson. Here we present the role of planning conceptually:

Objective: "Generate the monthly sales report for March 2026"
    │
    ├── Sub-task 1: Extract the data from the database (tool: query_database)
    │       └── Query: SELECT ... FROM orders WHERE month = '2026-03'
    │
    ├── Sub-task 2: Compute aggregate metrics (tool: code_interpreter)
    │       └── Python script: revenue, growth, top products
    │
    ├── Sub-task 3: Generate visualizations (tool: code_interpreter)
    │       └── matplotlib charts: revenue trend, category breakdown
    │
    ├── Sub-task 4: Compose the report narrative (LLM reasoning)
    │       └── Text analysis with insights and recommendations
    │
    └── Sub-task 5: Format and distribute (tools: file_write, send_email)
            └── PDF + email to stakeholders

5. Guardrails — Constraints and Control

Guardrails are the mechanisms that prevent unwanted agent behavior. In a production system, they are not optional — they are critical. Without them, an autonomous agent can generate uncontrolled costs, corrupt data, or make decisions with irreversible consequences.

Categories of guardrails:

  • Budget enforcement: a hard cap on tokens/API calls per session
  • Tool access control: an allowlist/denylist of permitted tools per context
  • Output validation: verifying the output before execution (e.g., SQL injection prevention)
  • Circuit breakers: automatic shutdown when anomalies are detected (e.g., too many consecutive errors)
  • Human escalation triggers: conditions that force human intervention
  • Rate limiting: limiting the frequency of actions to prevent infinite loops
# Guardrails implementation with budget and circuit breaker
from dataclasses import dataclass
from enum import Enum

class AgentState(Enum):
    RUNNING = "running"
    PAUSED = "paused"
    ESCALATED = "escalated"
    TERMINATED = "terminated"

@dataclass
class GuardrailConfig:
    max_iterations: int = 50
    max_tokens_budget: int = 500_000
    max_tool_calls: int = 100
    max_consecutive_errors: int = 3
    allowed_tools: list[str] | None = None
    require_human_approval: list[str] | None = None  # tools needing approval

class AgentGuardrails:
    def __init__(self, config: GuardrailConfig):
        self.config = config
        self.iterations = 0
        self.tokens_used = 0
        self.tool_calls = 0
        self.consecutive_errors = 0
        self.state = AgentState.RUNNING

    def check_before_iteration(self) -> AgentState:
        """Checks all conditions before each iteration."""
        if self.iterations >= self.config.max_iterations:
            self.state = AgentState.TERMINATED
            return self._terminate("Iteration limit reached "
                                   f"({self.config.max_iterations})")

        if self.tokens_used >= self.config.max_tokens_budget:
            self.state = AgentState.TERMINATED
            return self._terminate("Token budget exhausted "
                                   f"({self.config.max_tokens_budget})")

        if self.consecutive_errors >= self.config.max_consecutive_errors:
            self.state = AgentState.ESCALATED
            return self._escalate("Too many consecutive errors "
                                  f"({self.consecutive_errors})")

        self.iterations += 1
        return AgentState.RUNNING

    def check_tool_call(self, tool_name: str) -> bool:
        """Checks whether the tool call is allowed."""
        if self.config.allowed_tools is not None:
            if tool_name not in self.config.allowed_tools:
                raise PermissionError(
                    f"Tool '{tool_name}' is not on the allowlist"
                )

        self.tool_calls += 1
        if self.tool_calls > self.config.max_tool_calls:
            self.state = AgentState.TERMINATED
            raise ResourceWarning("Tool call limit reached")

        if (self.config.require_human_approval and
                tool_name in self.config.require_human_approval):
            self.state = AgentState.PAUSED
            return False  # Requires human approval

        return True

    def report_success(self) -> None:
        self.consecutive_errors = 0

    def report_error(self) -> None:
        self.consecutive_errors += 1

    def record_tokens(self, count: int) -> None:
        self.tokens_used += count

    def _terminate(self, reason: str) -> AgentState:
        print(f"[GUARDRAIL] Agent terminated: {reason}")
        return AgentState.TERMINATED

    def _escalate(self, reason: str) -> AgentState:
        print(f"[GUARDRAIL] Escalating to a human: {reason}")
        return AgentState.ESCALATED

Comparison with Traditional Automation

It is essential to understand the fundamental difference between an AI agent and a traditional automation system (workflow engine, RPA, cron jobs). This distinction is frequently confused in the industry, which leads to suboptimal implementations.

Criterion Traditional Automation AI Agent
Flexibility Predefined flow, static branching Dynamic planning, context adaptation
Exception handling Explicit try/catch for every case Reasoning about unknown exceptions
Modification Requires a developer for any change Reconfiguration via prompt/instructions
Cognitive scalability Complexity linear in the number of rules Ability to reason over the rules
Predictability 100% deterministic Probabilistic, requires guardrails
Cost per execution Negligible (traditional compute) Significant (LLM inference)
Debugging Deterministic stack trace Non-deterministic trace, requires observability
Time-to-market Weeks-months Hours-days (for a prototype)

The golden rule: Use traditional automation for well-defined, repetitive, and stable flows. Use AI agents for tasks that require reasoning, adaptation to varied contexts, or where the exception space is too large to be codified exhaustively.

Applied Scenario: Autonomous DevOps Incident Resolution

Let us examine a concrete scenario in which an AI agent generates substantial value: autonomous resolution of infrastructure incidents. This example is representative of 2026 enterprise deployments.

Context: A SaaS company with 50 microservices on Kubernetes receives a PagerDuty alert at 3:00 AM — the payment service's latency has jumped from 200ms to 4500ms.

Without an agent: An on-call engineer wakes up, logs in, checks dashboards, reads logs, forms hypotheses, tests, applies the fix, verifies. Average time: 45-90 minutes.

With an AI agent (Level 2 — semi-autonomous):

# Pseudocode: DevOps agent for incident resolution
import anthropic
from datetime import datetime

client = anthropic.Anthropic()

SYSTEM_PROMPT = """You are a DevOps agent specialized in incident resolution.
You have access to the following tools:
- query_metrics: Query Prometheus/Grafana
- query_logs: Search Elasticsearch/Loki
- kubectl_read: Read-only kubectl commands (get, describe, logs)
- kubectl_write: Mutating kubectl commands (scale, rollout, restart)
- create_ticket: Create a Jira ticket
- notify_slack: Send a Slack notification
- run_playbook: Execute a predefined runbook

CRITICAL CONSTRAINTS:
1. kubectl_write requires human approval for any operation on the 'production' namespace
2. Maximum 20 API calls per incident
3. If you cannot diagnose within 10 minutes, escalate
4. Document EVERY action in the incident timeline
5. NEVER modify the database configuration directly
"""

INCIDENT_TOOLS = [
    {
        "name": "query_metrics",
        "description": "Query metrics from Prometheus. Returns time series.",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "PromQL query"},
                "duration": {"type": "string", "description": "e.g.: '1h', '30m'"}
            },
            "required": ["query", "duration"]
        }
    },
    {
        "name": "query_logs",
        "description": "Search the logs. Returns the latest N relevant entries.",
        "input_schema": {
            "type": "object",
            "properties": {
                "service": {"type": "string"},
                "query": {"type": "string"},
                "severity": {"type": "string", "enum": ["info", "warn", "error"]},
                "limit": {"type": "integer", "default": 50}
            },
            "required": ["service", "query"]
        }
    },
    {
        "name": "kubectl_read",
        "description": "Executes read-only kubectl commands.",
        "input_schema": {
            "type": "object",
            "properties": {
                "command": {"type": "string", "description": "e.g.: 'get pods -n payments'"},
                "namespace": {"type": "string"}
            },
            "required": ["command"]
        }
    }
    # ... other tools
]

def handle_incident(alert: dict) -> dict:
    """Entry point for autonomous incident resolution."""

    guardrails = AgentGuardrails(GuardrailConfig(
        max_iterations=30,
        max_tokens_budget=200_000,
        max_tool_calls=20,
        max_consecutive_errors=3,
        require_human_approval=["kubectl_write"]
    ))

    messages = [
        {"role": "user", "content": (
            f"INCIDENT ALERT:\n"
            f"Service: {alert['service']}\n"
            f"Severity: {alert['severity']}\n"
            f"Description: {alert['description']}\n"
            f"Timestamp: {alert['timestamp']}\n\n"
            f"Diagnose and resolve this incident. "
            f"Start by investigating the metrics and the logs."
        )}
    ]

    timeline = []

    while guardrails.check_before_iteration() == AgentState.RUNNING:
        response = client.messages.create(
            model="claude-sonnet-4-6",  # Sonnet for speed
            max_tokens=4096,
            system=SYSTEM_PROMPT,
            tools=INCIDENT_TOOLS,
            messages=messages
        )

        guardrails.record_tokens(response.usage.input_tokens
                                 + response.usage.output_tokens)

        if response.stop_reason == "tool_use":
            for block in response.content:
                if block.type == "tool_use":
                    tool_name = block.name
                    tool_input = block.input

                    # Guardrails check
                    if not guardrails.check_tool_call(tool_name):
                        # Requires human approval
                        timeline.append({
                            "time": datetime.now().isoformat(),
                            "action": f"AWAITING APPROVAL: {tool_name}",
                            "input": tool_input
                        })
                        # In production: send a notification and wait
                        break

                    # Tool execution
                    result = execute_tool(tool_name, tool_input)
                    timeline.append({
                        "time": datetime.now().isoformat(),
                        "action": tool_name,
                        "input": tool_input,
                        "result_summary": str(result)[:200]
                    })

                    messages.append({"role": "assistant", "content": response.content})
                    messages.append({
                        "role": "user",
                        "content": [{"type": "tool_result",
                                     "tool_use_id": block.id,
                                     "content": str(result)}]
                    })

        elif response.stop_reason == "end_turn":
            # The agent has finished — extract the conclusions
            final_response = response.content[0].text
            timeline.append({
                "time": datetime.now().isoformat(),
                "action": "RESOLUTION",
                "summary": final_response[:500]
            })
            break

    return {"timeline": timeline, "tokens_used": guardrails.tokens_used}

The typical outcome: Within 3-5 minutes the agent identifies that a recent deployment introduced an unoptimized SQL query causing full table scans, temporarily scales the database replica, rolls back to the previous deployment, and creates a Jira ticket with a complete root-cause analysis. The on-call engineer receives a Slack notification summarizing the actions, reviews, and confirms. Total time: 5-8 minutes vs. 45-90 minutes manually.

Common Pitfalls: Anti-patterns in Agent Development

The experience accumulated from 2024 to 2026 across enterprise deployments has crystallized a set of anti-patterns that every practitioner must know:

1. Over-agentification

Symptom: Every feature becomes "an agent". The contact form is "a communication agent", the login is "an authentication agent".

Problem: Not every task requires LLM reasoning. If a flow can be fully specified through deterministic rules, an agent adds latency, cost, and unpredictability without added value.

Rule: If you can draw a complete flowchart of the decision logic without branches conditioned on natural-language content, you probably do not need an agent.

2. Missing Circuit Breakers

Symptom: The agent enters an infinite retry loop or generates uncontrolled costs.

Problem: LLMs can "hallucinate" a strategy that fails repeatedly, yet the model keeps insisting with minimal variations of the same approach.

Solution: Mandatorily implement: an iteration limit, a token budget, a global timeout, and loop detection (if the last N actions are similar, stop).

3. Zero Human-in-the-Loop for Irreversible Actions

Symptom: The agent deletes resources, sends emails to customers, or modifies production data without any human approval.

Problem: Even the best models of 2026 have a non-zero error rate. For irreversible actions, the consequences of an error can be catastrophic.

Solution: Classify tools into risk tiers. Tier 1 (read) = free execution. Tier 2 (reversible write) = log + notification. Tier 3 (irreversible actions) = mandatory human approval.

4. Ignoring Observability

Symptom: The agent "did something" but no one knows exactly what, in what order, with which parameters.

Problem: Without detailed traces, debugging an agent is nearly impossible. The non-deterministic behavior of LLMs makes debugging even harder than in traditional systems.

Solution: Log every iteration in full: the prompt sent, the response received, tool calls with parameters and results, tokens consumed, time per operation. Recommended tools: LangSmith, Braintrust, Arize Phoenix, or custom solutions built on OpenTelemetry.

5. Insufficiently Specific Prompts

Symptom: The agent interprets objectives in surprising ways, uses unexpected tools, or ignores implicit constraints.

Problem: A vague system prompt leaves room for interpretation. LLMs optimize for "helpfulness", which can mean actions you did not anticipate.

Solution: An agent's system prompt must be a precise specification document: what it can do, what it must NOT do, in what order to proceed, when to escalate, what tone to adopt, what formats to use.

Official Guides: Perspectives from Anthropic and OpenAI

Two essential resources for anyone building AI agents:

Anthropic — "Building Effective Agents" (https://docs.anthropic.com/en/docs/build-with-claude/agentic-systems): This guide emphasizes the "keep it simple" principle — in many cases, an implementation based on a single LLM loop with tools is sufficient and preferable to a complex framework. Anthropic recommends the augmented LLM as the starting point, not multi-agent systems. Likewise, the official tool use documentation (https://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview) provides complete specifications for implementing function calling with Claude models.

OpenAI — Agents Documentation (https://platform.openai.com/docs/guides/agents): OpenAI offers a comprehensive guide for building agents with GPT-5.5, including best practices for tool calling, function definitions, and structured outputs. OpenAI puts the emphasis on "function calling reliability" and on strict output validation through JSON Schema.

Common principles from both guides:

  1. Start simple: A loop with an LLM and a few well-defined tools solves 80% of cases.
  2. Iterate on real failures: Do not architect "to perfection" before you have data on the failure modes.
  3. Prioritize observability: Every agent decision must be auditable.
  4. Test adversarially: Simulate malicious inputs, edge cases, timeouts.
  5. Implement graceful degradation: When the agent cannot solve the task, escalation must be smooth and informative.

Complete Pseudocode: The Architecture of an Agent with Budget Enforcement

Let us integrate all the components into a complete agent architecture. This example demonstrates how the 5 components of the Agentic Stack work together:

# Complete architecture of an AI agent with all 5 components
import anthropic
import json
import time
from dataclasses import dataclass, field
from typing import Callable

@dataclass
class AgentConfig:
    """The agent's complete configuration."""
    name: str
    system_prompt: str
    model: str = "claude-sonnet-4-6"
    escalation_model: str = "claude-opus-4-8"
    max_iterations: int = 50
    max_tokens_budget: int = 300_000
    max_tool_calls: int = 50
    tools: list[dict] = field(default_factory=list)
    tool_handlers: dict[str, Callable] = field(default_factory=dict)
    escalation_threshold: float = 0.7  # Complexity above which the model escalates

class AutonomousAgent:
    """
    Autonomous AI agent with the 5 components of the Agentic Stack:
    1. Brain (LLM with tiered selection)
    2. Tools (Function calling with validation)
    3. Memory (Context management with summarization)
    4. Planning (Implicit ReAct loop)
    5. Guardrails (Budget, circuit breaker, escalation)
    """

    def __init__(self, config: AgentConfig):
        self.config = config
        self.client = anthropic.Anthropic()
        self.messages: list[dict] = []
        self.tokens_used = 0
        self.tool_calls_count = 0
        self.consecutive_errors = 0
        self.iteration = 0
        self.trace: list[dict] = []

    def run(self, objective: str) -> dict:
        """Runs the agent with a given objective."""
        self.messages = [{"role": "user", "content": objective}]
        self._log("START", {"objective": objective})

        while True:
            # GUARDRAIL: Budget check
            if self.iteration >= self.config.max_iterations:
                return self._finalize("Iteration limit reached")
            if self.tokens_used >= self.config.max_tokens_budget:
                return self._finalize("Token budget exhausted")
            if self.consecutive_errors >= 3:
                return self._finalize("Too many consecutive errors — escalating")

            self.iteration += 1

            # BRAIN: Model selection (tiered)
            model = self._select_model()

            try:
                # LLM call
                response = self.client.messages.create(
                    model=model,
                    max_tokens=4096,
                    system=self.config.system_prompt,
                    tools=self.config.tools,
                    messages=self.messages
                )
                self.tokens_used += (response.usage.input_tokens
                                     + response.usage.output_tokens)
                self.consecutive_errors = 0

            except Exception as e:
                self.consecutive_errors += 1
                self._log("ERROR", {"error": str(e)})
                continue

            # PLANNING: Response processing (implicit ReAct loop)
            if response.stop_reason == "tool_use":
                self._handle_tool_calls(response)
            elif response.stop_reason == "end_turn":
                final_text = ""
                for block in response.content:
                    if hasattr(block, "text"):
                        final_text += block.text
                self._log("COMPLETE", {"response": final_text[:500]})
                return self._finalize("Completed successfully", final_text)
            else:
                self._log("UNEXPECTED_STOP", {"reason": response.stop_reason})
                return self._finalize(f"Unexpected stop reason: {response.stop_reason}")

        return self._finalize("Loop terminated")

    def _select_model(self) -> str:
        """BRAIN: Selects the model based on the iteration's complexity."""
        if self.iteration > 10 and self.consecutive_errors > 0:
            # Escalate to a stronger model after failures
            return self.config.escalation_model
        return self.config.model

    def _handle_tool_calls(self, response) -> None:
        """TOOLS: Processing and executing tool calls."""
        self.messages.append({"role": "assistant", "content": response.content})

        tool_results = []
        for block in response.content:
            if block.type == "tool_use":
                self.tool_calls_count += 1

                # GUARDRAIL: Tool call limit check
                if self.tool_calls_count > self.config.max_tool_calls:
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": "ERROR: Tool call limit reached.",
                        "is_error": True
                    })
                    continue

                handler = self.config.tool_handlers.get(block.name)
                if handler is None:
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": f"ERROR: Unknown tool '{block.name}'",
                        "is_error": True
                    })
                    self.consecutive_errors += 1
                    continue

                try:
                    result = handler(**block.input)
                    self._log("TOOL_CALL", {
                        "tool": block.name,
                        "input": block.input,
                        "result_preview": str(result)[:200]
                    })
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": json.dumps(result, ensure_ascii=False)
                    })
                except Exception as e:
                    self.consecutive_errors += 1
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": f"ERROR during tool execution: {str(e)}",
                        "is_error": True
                    })

        self.messages.append({"role": "user", "content": tool_results})

    def _log(self, event: str, data: dict) -> None:
        """GUARDRAILS/OBSERVABILITY: Complete logging."""
        entry = {
            "iteration": self.iteration,
            "timestamp": time.time(),
            "event": event,
            "tokens_used": self.tokens_used,
            "tool_calls": self.tool_calls_count,
            **data
        }
        self.trace.append(entry)

    def _finalize(self, reason: str, result: str = "") -> dict:
        """Generates the final execution report."""
        return {
            "status": reason,
            "result": result,
            "metrics": {
                "iterations": self.iteration,
                "tokens_used": self.tokens_used,
                "tool_calls": self.tool_calls_count,
                "estimated_cost_usd": self.tokens_used * 0.000015  # Estimate
            },
            "trace": self.trace
        }

Industry Examples: AI Agents in Production (2026)

A few verifiable examples of enterprise deployments:

1. Klarna — Customer Service Agent: Klarna reported that their AI agent handles the equivalent of the work of 700 full-time employees, resolving 2/3 of customer interactions. The agent operates at Level 2 (semi-autonomous) with automatic escalation to humans for complex cases.

2. Devin / Cognition Labs — Software Engineering Agent: The first commercial software development agent operates at Level 3, capable of reading specifications, writing code, running tests, and debugging autonomously. Public evaluations report that it can autonomously resolve a portion of medium-complexity GitHub issues — the exact figures vary significantly across benchmarks; consult current independent evaluations before relying on any percentage.

3. Harvey AI — Legal Agent: Used by large law firms, Harvey operates as a semi-autonomous agent for legal research, contract analysis, and due diligence. The agent searches legal databases, synthesizes precedents, and generates memoranda — all under a lawyer's supervision.

Recap and Preparation for the Next Lesson

In this lesson we established the conceptual foundations of AI agents:

  1. The autonomy taxonomy: 5 levels, from stateless LLM to multi-agent systems
  2. The Agentic Stack: Brain, Tools, Memory, Planning, Guardrails
  3. Agent vs. traditional automation: adaptive reasoning vs. deterministic flows
  4. Critical anti-patterns: over-agentification, missing circuit breakers, zero HITL
  5. The complete architecture: end-to-end implementation with budget enforcement

You now hold the agent's map — the five levels of autonomy, the five pillars of the agentic stack, and the anti-patterns that make the difference between a demo and a system that endures. But an agent stands or falls on one single thing: how well it thinks before it acts. This is where Planning comes in — and it is precisely what separates the agent that carries a task through to the end from the one that goes in circles, burning budget without making progress. In the next lesson we dive deep into exactly this component, with the ReAct, Plan-and-Execute, and Reflexion patterns, complete implementations, and a comparative analysis of costs and performance — and from there, each lesson adds another piece until you can build, on your own, an agent worth putting into production.

Real quiz · from Lesson 1

[Easy] What is the correct definition of an AI agent according to the taxonomy presented in the lesson?

First lesson — read in full, for free

Enjoyed it? All 30 lessons look like this.

You just read a complete lesson, exactly as it appears in the platform. Create your account in under a minute and pick the option that fits you best:

Just this course €49+ VAT / month All 30 lessons + AI Professor (fair-use limit)
Recommended IT Pro bundle €399+ VAT / month Every IT Pro course + smart quizzes + full AI Professor
Instant access to Lesson 2 All 30 lessons in the course Interactive quizzes with feedback AI Professor built into every lesson Notes & progress saved automatically Access from any device
Instant access Cancel anytime Secure payment via Stripe

Up next in the course

  • 2 The Architecture of Thinking: ReAct, Plan-and-Execute, and Reflexion 55 min
  • 3 Perception and Action: Function Calling and the Tool Ecosystem 55 min
  • 4 Memory Architecture: How Agents Think Long-Term 55 min
Unlock all 30 lessons
Course curriculum

Everything you'll learn in this course

11 modules
30 lessons
~26h of content
Advanced level
1 Fundamentals of Autonomous AI Agents 3 lessons
  • What Are AI Agents — From Copilot to Autonomous Systems in 2026 Reading now 55 min
  • The Architecture of Thinking: ReAct, Plan-and-Execute, and Reflexion 55 min
  • Perception and Action: Function Calling and the Tool Ecosystem 55 min
2 Memory, State and Advanced Reasoning 3 lessons
  • Memory Architecture: How Agents Think Long-Term 55 min
  • Advanced Reasoning: Chain-of-Thought, Tree-of-Thought, and Self-Consistency 55 min
  • Hierarchical Planning and Decomposing Complex Tasks 55 min
3 Frameworks and SDKs for AI Agents 4 lessons
  • The LangChain Ecosystem and the Evolution Toward LangGraph 55 min
  • OpenAI Agents SDK: Native Multi-Agent Architecture 55 min
  • CrewAI and Multi-Agent Systems: Managing Digital Teams 55 min
  • Anthropic Claude Agent SDK and Google ADK: Enterprise Alternatives 55 min
4 Model Context Protocol (MCP) and Interoperability 3 lessons
  • Model Context Protocol (MCP): Standardizing AI Connections 55 min
  • Building Custom MCP Servers: A Complete Practical Guide 55 min
  • The MCP Ecosystem: Popular Servers and Enterprise Integrations 55 min
5 Workflow Automation with AI 3 lessons
  • n8n — Self-Hosted AI Automation: Architecture and Implementation 55 min
  • Make.com and Zapier Central: No-Code Automation in the AI Era 55 min
  • Custom Workflow Engines with Python: Absolute Control 55 min
6 Agentic Design Patterns for Production 3 lessons
  • Agentic Design Patterns: Router, Evaluator, and Parallelization 55 min
  • Human-in-the-Loop and Enterprise Approval Workflows 55 min
  • Multi-Model Orchestration: Intelligent LLM Routing 55 min
7 Security, Guardrails and Compliance 2 lessons
  • AI Agent Security: Attack Vectors and Defence in Depth 55 min
  • Advanced Guardrails, Sandboxing, and AI Act Compliance 55 min
8 Observability, Evaluation and Testing 3 lessons
  • Semantic Observability: Tracing, Metrics, and Alerting 55 min
  • Automated Testing for AI Agents: Eval Sets and CI/CD 55 min
  • LLM-as-a-Judge and Continuous Evaluation in Production 55 min
9 Deployment and Scaling in Production 2 lessons
  • Deployment Strategies: Shadow Mode, Canary, and Instant Rollback 55 min
  • Scaling, Cost Optimization, and Multi-Region Architectures 55 min
10 Case Studies and Hands-On Project 3 lessons
  • Hands-On Project: Build a Complete Multi-Agent System 55 min
  • AGENTS.md: The Open Standard for Guiding Coding Agents 16 min
  • Official Resources, 2026 Updates, and Learning Paths 22 min
11 Final Quiz — AI Agents and Automation 1 lessons
  • Final Assessment — AI Agents and Automation 2026 30 min
What you get on the platform

Everything you need to learn effectively

Interactive quizzes

Check your knowledge at the end of every lesson with scored quizzes and feedback.

Personal notes

Save notes on every lesson, accessible anytime from your dashboard.

Scheduled reviews

Revisit lessons exactly when it matters, at the right intervals — so you remember for the long term.

Progress & Achievements

Track your progress, unlock achievements, and visualize what you've learned.

Bookmarks

Save the lessons that matter and find them instantly when you need them.

Questions & Answers

Ask questions right on the lesson and get answers from our team.

Frequently asked questions

Good to know before you start

How do I get access to the course?

You can read the first lesson in full for free, right on this page — no account needed. For the rest of the course you create an account, pick the subscription that fits — a single course or a bundle — and get access immediately after your payment is confirmed. Everything happens 100% online.

Can I cancel my subscription anytime?

Yes. Cancel anytime, straight from your account, in just a few clicks. Your access stays active until the end of the period you have already paid for.

What does the subscription for this course include?

All 30 lessons in the course, interactive quizzes, the AI professor built into every lesson (select any passage and it explains it on the spot), personal notes, automatically saved progress, and content updates included.

Is there a fixed learning schedule?

No. You learn at your own pace, on any device. Lessons are structured step by step, and the platform saves your progress automatically, so you can pick up right where you left off — anytime.

Ready to unlock all the content?

Just this course — €49 + VAT / month — or every IT Pro course, with smart quizzes and the full AI Professor, in the bundle at €399 + VAT / month.

Instant access Cancel anytime Secure payment via Stripe
From €49 + VAT / month · Cancel anytime
Read the free lesson