<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI 101 — Agents, MCP &amp; the Agentic Security Model</title><link>https://fortinetcloudcse.github.io/ai-101/index.html</link><description>A hands-on workshop covering LLM inference, autonomous agents, the Model Context Protocol, and what all of it means for enterprise security.</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://fortinetcloudcse.github.io/ai-101/index.xml" rel="self" type="application/rss+xml"/><item><title>Setup &amp; Prerequisites</title><link>https://fortinetcloudcse.github.io/ai-101/01intro/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fortinetcloudcse.github.io/ai-101/01intro/index.html</guid><description>Choose how you will run the labs — Docker Compose on your own machine, or Kubernetes with Helm — then follow that path's prerequisites and setup steps.</description></item><item><title>Module 1: Inference &amp; Prompt Injection</title><link>https://fortinetcloudcse.github.io/ai-101/02inference/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fortinetcloudcse.github.io/ai-101/02inference/index.html</guid><description>This page covers the theory behind how LLMs work at the API level — tokens, context, message roles, sampling, and why the prompt injection attack in Lab 1 is not a bug that can be patched. It is also a reference you can return to during later modules when you need a reminder of how a specific piece works.&#10;By the end of this page you should be able to explain:</description></item><item><title>Module 2: Agents &amp; Tool Calling</title><link>https://fortinetcloudcse.github.io/ai-101/03agents/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fortinetcloudcse.github.io/ai-101/03agents/index.html</guid><description>This page covers the theory behind how an agent works: the tool-call loop, how the model signals that it wants to run a function, how tool schemas are structured, and why the agent in this workshop is deliberately simple. The hands-on portion is in Lab 2.&#10;By the end of this page you should be able to explain:&#10;What an agent is at the code level (a loop, nothing more) How finish_reason: tool_calls drives the loop What a tool schema is and why the description field matters How the message list grows with each iteration What MAX_ITERATIONS protects against and why it is not a security control The UI Lab 2 introduces a browser UI. Lab 2 gives the URL for your deployment path. It is a single-page vanilla JS application that talks to the agent API (proxied through nginx as /api/).</description></item><item><title>Module 3: Model Context Protocol</title><link>https://fortinetcloudcse.github.io/ai-101/04mcp/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fortinetcloudcse.github.io/ai-101/04mcp/index.html</guid><description>This page covers the theory behind MCP: the problem it solves, how the protocol works at the wire level, and what dynamic tool discovery means for both capability and security. The hands-on portion is in Lab 3.&#10;By the end of this page you should be able to explain:&#10;What the M×N integration problem is and how MCP collapses it The three MCP transports and which one this workshop uses The two-phase interaction: discovery (list_tools) and execution (call_tool) How tool schemas flow from the MCP server into the LLM request Why dynamic discovery creates an attack surface that static tool lists do not The problem MCP solves Before MCP, every AI application that wanted to call an external tool had to write a custom integration. A security posture check tool, a ticketing system, a CMDB, a code execution sandbox — each one required its own client library, auth flow, schema definition, and error handling. N applications times M tools equals N×M bespoke connectors to build and maintain.</description></item><item><title>Module 4: Agentic Security</title><link>https://fortinetcloudcse.github.io/ai-101/05security/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fortinetcloudcse.github.io/ai-101/05security/index.html</guid><description>This page covers the security model of agentic systems: why conventional defences miss agentic attacks, how a multi-step attack chain exploits each layer of the stack, and what defence-in-depth looks like when the executor is an LLM. The hands-on portion is in Lab 4.&#10;By the end of this page you should be able to explain:&#10;Why an LLM agent is a new class of threat surface, not just a new frontend How four separate vulnerabilities chain into a single data exfiltration attack What the confused deputy problem means in an agentic context Why observability is not optional for deployed agents Which OWASP LLM Top 10 categories cover agentic risk What “agentic” means here — and why it matters now Module 2 drew the line between an agent (a specific system) and agentic (a property any system can have). It is worth restating that distinction before discussing attacks, because the scope of agentic security is wider than most people expect.</description></item><item><title>Reference</title><link>https://fortinetcloudcse.github.io/ai-101/09reference/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fortinetcloudcse.github.io/ai-101/09reference/index.html</guid><description>Reference pages for your path Reference for your path: Docker ComposeKubernetes / Helm Locked in — every lab page follows this choice. ​ Docker Compose Kubernetes / Helm Docker Compose — the pages and sections below apply to you:&#10;Page / section What it covers Printable handout Every Docker Compose step in one linear page, for printing Docker Compose Setup Install, image pull, model pull, start/stop per lab, cleanup Compose profiles Which services each --profile labN brings up Environment variables Every variable the lab app reads Day 2 swap Point the agent at FortiAIGate Known issues Including docker compose command not found There is no Azure Cloud Shell page for this path — the UI runs on your own machine.</description></item></channel></rss>