Skip to content

Commit 6948a80

Browse files
committed
clean up and reorganize
1 parent f15aa97 commit 6948a80

27 files changed

+1397
-40
lines changed

SLIDES.md

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# Slides Sync Proposal
2+
3+
The slide decks in `graphacademy/slides/` were written against an earlier lab numbering. The labs have since been reorganized and three new labs added (5, 6, 7). This proposal brings the slides in sync with the current lab structure without deleting any existing content.
4+
5+
## Current State
6+
7+
### Slide folders → Lab mapping
8+
9+
| Slide Folder | Covers | Current Lab(s) |
10+
|---|---|---|
11+
| `lab-1-neo4j-aura` (slides 01-07) | Neo4j Aura, GenAI limits, RAG, GraphRAG, SEC filings, Aura Agents, Fabric Workload | Lab 0, Lab 1, Lab 2 |
12+
| `lab-2-foundry` (slides 01-03) | What is an Agent, MCP, Microsoft Foundry | Lab 3 |
13+
| _(no slides)_ || Lab 4 (Start Codespace — setup only, no slides needed) |
14+
| _(no slides)_ || **Lab 5 (Foundry Agents — MAF basics, tools, context providers)** |
15+
| _(no slides)_ || **Lab 6 (Context Providers — Neo4j context providers)** |
16+
| _(no slides)_ || **Lab 7 (Agent Memory — neo4j-agent-memory)** |
17+
| `lab-5-knowledge-graph` (slides 01-07) | GenAI, RAG, KG pipeline, schema, chunking, entity resolution, vectors | Lab 8 |
18+
| `lab-6-retrievers` (slides 01-04) | Retrievers overview, vector, vector+cypher, text2cypher | Lab 10, Lab 11 |
19+
| `lab-7-agents` (slides 01-05) | Retrievers→agents, MAF, building agent, design patterns, congratulations | Lab 9 |
20+
21+
### Gaps
22+
23+
1. **Labs 5, 6, 7 have no slides.** These are the new MAF hands-on labs.
24+
2. **Slide folder names don't match current lab numbers.** `lab-5-knowledge-graph` is actually Lab 8, etc.
25+
3. **The "Microsoft Agent Framework" slide (`lab-7-agents/02`)** uses an older API surface (`AzureAIClient`, `ChatAgent`, `create_agent`, threads) that doesn't match the current MAF API (`AzureOpenAIResponsesClient`, `as_agent()`, `run_stream()`, sessions, context providers).
26+
4. **No slides cover context providers or agent memory** — the two key concepts introduced in the new labs.
27+
28+
## Proposed Changes
29+
30+
### 1. Add new slide folder: `lab-5-foundry-agents` (2 decks)
31+
32+
Covers Lab 5 — introduces MAF with hands-on tools and context providers.
33+
34+
**01-microsoft-agent-framework-slides.md** (~8 slides)
35+
- What is the Microsoft Agent Framework and why it exists (LLMs are stateless)
36+
- Core concepts: Agents, Tools, Context Providers, Sessions, Middleware
37+
- The agent lifecycle: context providers `before_run()` → LLM invocation → `after_run()`
38+
- Tools vs context providers (when each runs, best for)
39+
- Key API: `AzureOpenAIResponsesClient`, `as_agent()`, `run_stream()`
40+
- Architecture diagram (same as Lab 5 README)
41+
42+
**02-tools-and-context-providers-slides.md** (~6 slides)
43+
- Defining tools: Python functions with `Annotated` + `Field` type annotations
44+
- How the agent reads function name + docstring to decide tool selection
45+
- Context providers: `BaseContextProvider` with `before_run()` / `after_run()`
46+
- `SessionContext`: `extend_instructions()` and `extend_messages()`
47+
- `AgentSession` and persistent state across turns
48+
- Extracting structured data with Pydantic in `after_run()`
49+
50+
### 2. Add new slide folder: `lab-6-context-providers` (2 decks)
51+
52+
Covers Lab 6 — Neo4j context providers from `agent-framework-neo4j`.
53+
54+
**01-neo4j-context-provider-slides.md** (~8 slides)
55+
- What is `Neo4jContextProvider` (from `agent-framework-neo4j`)
56+
- How `before_run()` works: recent messages → concatenate → search index → format results → inject
57+
- Three search modes: vector (cosine similarity), fulltext (BM25), hybrid (combined)
58+
- Comparison table of search modes (when to use each)
59+
- Graph enrichment: `retrieval_query` parameter for Cypher traversal after index match
60+
- Retriever selection logic table (index_type × retrieval_query → retriever class)
61+
- Result formatting: `[Score: 0.892] [company: Apple Inc] ...`
62+
- Configuration: `top_k`, `message_history_count`, `context_prompt`, `filter_stop_words`
63+
64+
**02-graph-enrichment-slides.md** (~5 slides)
65+
- Why vector search alone isn't enough (returns chunks, not knowledge)
66+
- The two-step process: index search finds nodes → Cypher traversal enriches with relationships
67+
- Example retrieval query: match company → optional match risks, products → return enriched context
68+
- Before/after comparison: plain chunk text vs graph-enriched context with company, ticker, risks, products
69+
- Connecting it to Lab 5: context providers inject this automatically — no tool calls needed
70+
71+
### 3. Add new slide folder: `lab-7-agent-memory` (2 decks)
72+
73+
Covers Lab 7 — persistent agent memory from `neo4j-agent-memory`.
74+
75+
**01-agent-memory-overview-slides.md** (~8 slides)
76+
- The problem: agents forget everything between sessions
77+
- What is `neo4j-agent-memory` — graph-native persistent memory
78+
- Three memory types:
79+
- **Short-term**: conversation messages with embeddings (semantic search over past messages)
80+
- **Long-term**: entities, facts (SPO triples), preferences (extracted from conversations)
81+
- **Reasoning**: traces of past tool calls, success/failure, duration (learn from experience)
82+
- Memory types comparison table (what it stores, how it helps)
83+
- Neo4j graph model: Conversation → Message, Entity, Preference, Fact, ReasoningTrace → ReasoningStep → ToolCall
84+
- How memory differs from Lab 6 context providers: static knowledge graph vs dynamic memory that grows
85+
86+
**02-memory-tools-slides.md** (~6 slides)
87+
- Memory context provider: `before_run()` retrieves from all three types, `after_run()` stores + extracts entities
88+
- Memory tools: the six callable tools (`search_memory`, `remember_preference`, `recall_preferences`, `search_knowledge`, `remember_fact`, `find_similar_tasks`)
89+
- Context provider vs memory tools: automatic background recall vs explicit agent-controlled operations
90+
- Combining both: context provider for passive recall + tools for active memory management
91+
- Entity extraction: automatic identification of people, organizations, concepts from messages
92+
- Entity deduplication: configurable strategies (exact, fuzzy, semantic, composite)
93+
94+
### 4. Rename slide folders to match current lab numbers
95+
96+
Rename the existing folders so the slide directory names align with the lab numbers:
97+
98+
| Current Folder | New Folder | Lab |
99+
|---|---|---|
100+
| `lab-1-neo4j-aura` | `lab-1-neo4j-aura` | Labs 0-2 (no change) |
101+
| `lab-2-foundry` | `lab-3-foundry` | Lab 3 |
102+
| _(new)_ | `lab-5-foundry-agents` | Lab 5 |
103+
| _(new)_ | `lab-6-context-providers` | Lab 6 |
104+
| _(new)_ | `lab-7-agent-memory` | Lab 7 |
105+
| `lab-5-knowledge-graph` | `lab-8-knowledge-graph` | Lab 8 |
106+
| `lab-6-retrievers` | `lab-10-retrievers` | Lab 10 |
107+
| `lab-7-agents` | `lab-9-agents` | Lab 9 |
108+
109+
### 5. Update existing `lab-7-agents/02-microsoft-agent-framework-slides.md`
110+
111+
The current slide uses an older API surface that no longer matches the workshop code:
112+
113+
| Current (old API) | Should Be (current API) |
114+
|---|---|
115+
| `AzureAIClient` | `AzureOpenAIResponsesClient` |
116+
| `client.create_agent()` | `client.as_agent()` |
117+
| `ChatAgent` | Agent created via `as_agent()` |
118+
| Threads (`get_new_thread()`, `thread=thread`) | Sessions (`AgentSession`, `session.state`) |
119+
120+
This slide should be updated to match the API used in Lab 5 notebooks. The conceptual content (tool selection, docstrings, ReAct loop, instructions, streaming) is all still correct — only the code examples and API names need updating.
121+
122+
### 6. Update `graphacademy/slides/README.md`
123+
124+
Update the README to:
125+
- Add the three new slide sections (Lab 5, Lab 6, Lab 7)
126+
- Update folder references if renamed
127+
- Update the presentation order to include the new decks
128+
- Update slide statistics (total count)
129+
130+
**No existing content in the README should be deleted** — only additions and reference updates.
131+
132+
## What Is NOT Changing
133+
134+
- All existing slide content is preserved (no deletions)
135+
- Lab 1 slides (01-07) stay as-is
136+
- Lab 2/Foundry slides (01-03) stay as-is
137+
- Lab 5/Knowledge Graph slides (01-07) stay as-is
138+
- Lab 6/Retrievers slides (01-04) stay as-is
139+
- Lab 7/Agents slides (01, 03, 04, 05) stay as-is
140+
- Lab 7/Agents slide 02 gets API updates only (conceptual content unchanged)
141+
- The `clean-html.sh` script and `images/` directory are untouched
142+
143+
## Summary
144+
145+
| Action | Count |
146+
|---|---|
147+
| New slide decks to write | 6 |
148+
| Folders to rename | 3 |
149+
| Existing slides to update | 1 (API names only) |
150+
| Existing slides deleted | 0 |
151+
| README updates | 1 |

graphacademy/slides/README.md

Lines changed: 83 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ All slides are organized by lab module for easy navigation.
5151
- Testing and Deployment
5252
- Bridge to Code-Based Implementation
5353

54-
### Lab 2: Microsoft Foundry & MCP (Slides 1-3)
54+
### Lab 3: Microsoft Foundry & MCP (Slides 1-3)
5555

5656
**01. What is an AI Agent** (4.0 KB)
5757
- Evolution of AI Assistants
@@ -74,7 +74,62 @@ All slides are organized by lab module for easy navigation.
7474
- MCP Tool Catalogue
7575
- Enterprise Governance (Control Plane)
7676

77-
### Lab 5: Building Knowledge Graphs (Slides 1-7)
77+
### Lab 5: Foundry Agents (Slides 1-2)
78+
79+
**01. The Microsoft Agent Framework**
80+
- Why Agents Need a Framework (LLMs Are Stateless)
81+
- Core Concepts: Agents, Tools, Context Providers, Sessions, Middleware
82+
- The Agent Lifecycle (before_run → LLM → after_run)
83+
- Tools vs Context Providers Comparison
84+
- Key API: AzureOpenAIResponsesClient, as_agent(), run_stream()
85+
- Sessions and Persistent State
86+
87+
**02. Tools and Context Providers**
88+
- Defining Tools with Type Annotations
89+
- Annotated + Field for Parameter Descriptions
90+
- How Tool Selection Works (Docstrings)
91+
- BaseContextProvider Lifecycle Hooks
92+
- before_run(): Injecting Instructions and Messages
93+
- after_run(): Extracting Structured Data with Pydantic
94+
- Session State Persistence
95+
96+
### Lab 6: Neo4j Context Providers (Slides 1-2)
97+
98+
**01. Neo4j Context Providers**
99+
- What is Neo4jContextProvider (agent-framework-neo4j)
100+
- How before_run() Works (Messages → Search → Format → Inject)
101+
- Three Search Modes: Vector, Fulltext, Hybrid
102+
- Configuration Options (top_k, message_history_count, context_prompt)
103+
- Result Formatting with Scores and Metadata
104+
- Retriever Selection Logic
105+
106+
**02. Graph-Enriched Context**
107+
- Why Vector Search Alone Isn't Enough
108+
- The retrieval_query Parameter
109+
- Two-Step Process: Index Search → Cypher Traversal
110+
- Example Retrieval Query (Company → Risks, Products)
111+
- Before/After: Plain Chunk vs Graph-Enriched Context
112+
113+
### Lab 7: Agent Memory (Slides 1-2)
114+
115+
**01. Neo4j Agent Memory**
116+
- The Problem: Agents Forget Between Sessions
117+
- What is neo4j-agent-memory
118+
- Short-Term Memory: Messages with Embeddings
119+
- Long-Term Memory: Entities, Facts (SPO Triples), Preferences
120+
- Reasoning Memory: Tool Call Traces and Outcomes
121+
- Graph Data Model
122+
- How Memory Differs from Knowledge Graph Context
123+
124+
**02. Memory Context Provider and Tools**
125+
- Memory Context Provider: before_run() and after_run()
126+
- What Gets Injected from Each Memory Type
127+
- The Six Memory Tools
128+
- Context Provider vs Memory Tools
129+
- Combining Both Approaches
130+
- Entity Extraction and Deduplication
131+
132+
### Lab 8: Building Knowledge Graphs (Slides 1-7)
78133

79134
**01. The GenAI Promise and Its Limits** (4.2 KB)
80135
- What Generative AI Does Well
@@ -124,7 +179,7 @@ All slides are organized by lab module for easy navigation.
124179
- Vector Search in Neo4j
125180
- Document Chunking
126181

127-
### Lab 6: GraphRAG Retrievers (Slides 1-4)
182+
### Lab 10: GraphRAG Retrievers (Slides 1-4)
128183

129184
**01. Retrievers Overview** (5.2 KB)
130185
- What is GraphRAG?
@@ -152,7 +207,7 @@ All slides are organized by lab module for easy navigation.
152207
- Modern Cypher Syntax Best Practices
153208
- Complex Query Handling
154209

155-
### Lab 7: Intelligent Agents (Slides 1-5)
210+
### Lab 9: Intelligent Agents (Slides 1-5)
156211

157212
**01. From Retrievers to Agents** (3.7 KB)
158213
- What are Agents?
@@ -161,7 +216,7 @@ All slides are organized by lab module for easy navigation.
161216

162217
**02. Microsoft Agent Framework** (3.6 KB)
163218
- Building Agents with Microsoft Agent Framework
164-
- AzureAIClient Setup
219+
- AzureOpenAIResponsesClient Setup
165220
- Schema Tools
166221
- Agent Architecture
167222
- Tool Definition as Python Functions
@@ -420,22 +475,31 @@ marp 01-what-is-genai-slides.md --server
420475

421476
## 📈 Slide Statistics
422477

423-
**Total Presentations:** 25
424-
**Total Slide Pages:** ~300 individual slides
478+
**Total Presentations:** 31
479+
**Total Slide Pages:** ~360 individual slides
425480
**Format:** Marp Markdown
426481
**Status:** ✅ Ready to present
427482

428483
### Lab Breakdown
429484
- **Lab 1:** 6 presentations (Neo4j Aura, GenAI Limits, Traditional RAG, GraphRAG Limits, SEC Filings Graph, Aura Agents)
430-
- **Lab 2:** 3 presentations (What is an Agent, MCP, Microsoft Foundry)
431-
- **Lab 5:** 7 presentations (GenAI Fundamentals, Knowledge Graphs)
432-
- **Lab 6:** 4 presentations (GraphRAG Retrievers)
433-
- **Lab 7:** 5 presentations (Intelligent Agents)
434-
435-
### New Slides Added (December 3, 2025)
436-
- 01: What is an AI Agent (lab-2-foundry)
437-
- 02: What is MCP (lab-2-foundry)
438-
- 03: Microsoft Foundry (lab-2-foundry)
439-
440-
**Latest Update:** Added Lab 2 slides covering AI Agents, MCP, and Microsoft Foundry
441-
**Version:** 2.2 (December 3, 2025)
485+
- **Lab 3:** 3 presentations (What is an Agent, MCP, Microsoft Foundry)
486+
- **Lab 5:** 2 presentations (Microsoft Agent Framework, Tools and Context Providers)
487+
- **Lab 6:** 2 presentations (Neo4j Context Providers, Graph-Enriched Context)
488+
- **Lab 7:** 2 presentations (Agent Memory Overview, Memory Tools)
489+
- **Lab 8:** 7 presentations (GenAI Fundamentals, Knowledge Graphs)
490+
- **Lab 9:** 5 presentations (Intelligent Agents)
491+
- **Lab 10:** 4 presentations (GraphRAG Retrievers)
492+
493+
### New Slides Added (February 27, 2026)
494+
- 01: The Microsoft Agent Framework (lab-5-foundry-agents)
495+
- 02: Tools and Context Providers (lab-5-foundry-agents)
496+
- 01: Neo4j Context Providers (lab-6-context-providers)
497+
- 02: Graph-Enriched Context (lab-6-context-providers)
498+
- 01: Neo4j Agent Memory (lab-7-agent-memory)
499+
- 02: Memory Context Provider and Tools (lab-7-agent-memory)
500+
501+
### Previous Updates
502+
- December 3, 2025: Added Lab 3 slides covering AI Agents, MCP, and Microsoft Foundry
503+
504+
**Latest Update:** Added Lab 5, 6, 7 slides; renamed folders to match current lab numbers; updated Lab 9 MAF slide API references
505+
**Version:** 3.0 (February 27, 2026)

graphacademy/slides/lab-6-retrievers/01-retrievers-overview-slides.md renamed to graphacademy/slides/lab-10-retrievers/01-retrievers-overview-slides.md

File renamed without changes.

graphacademy/slides/lab-6-retrievers/02-vector-retriever-slides.md renamed to graphacademy/slides/lab-10-retrievers/02-vector-retriever-slides.md

File renamed without changes.

graphacademy/slides/lab-6-retrievers/03-vector-cypher-retriever-slides.md renamed to graphacademy/slides/lab-10-retrievers/03-vector-cypher-retriever-slides.md

File renamed without changes.

graphacademy/slides/lab-6-retrievers/04-text2cypher-retriever-slides.md renamed to graphacademy/slides/lab-10-retrievers/04-text2cypher-retriever-slides.md

File renamed without changes.

graphacademy/slides/lab-2-foundry/01-what-is-an-agent-slides.md renamed to graphacademy/slides/lab-3-foundry/01-what-is-an-agent-slides.md

File renamed without changes.

graphacademy/slides/lab-2-foundry/02-what-is-mcp-slides.md renamed to graphacademy/slides/lab-3-foundry/02-what-is-mcp-slides.md

File renamed without changes.

graphacademy/slides/lab-2-foundry/03-azure-ai-foundry-slides.md renamed to graphacademy/slides/lab-3-foundry/03-azure-ai-foundry-slides.md

File renamed without changes.

0 commit comments

Comments
 (0)