Panaversity Learn Agentic AI
repository·main·Indexed 26 days ago
https://github.com/panaversity/learn-agentic-aiA learning repository for the Panaversity Certified Agentic & Robotic AI Engineer program. It focuses on the Dapr Agentic Cloud Ascent (DACA) design pattern for building scalable, cloud-native AI agent systems. The documentation covers LLM selection criteria, comparisons of models like GPT, Claude, Grok, DeepSeek-R1, and Gemini Flash, implementation of dynamic instructions, and session memory management using the OpenAI Agents SDK.
What's inside learn-agentic-ai
- This repository contains learning materials for the Panaversity Certified Agentic & Robotic AI Engineer program. The curriculum focuses on the Dapr Agentic Cloud Ascent (DACA) design pattern, teaching developers how to build, scale, and deploy agentic AI systems from initial development to large-scale production environments.
Overview of v0 by Vercel
mainv0 by Vercel is an AI-powered generative UI system that converts natural language prompts or visual inputs (images, Figma designs) into production-ready React code. It primarily uses shadcn/ui and Tailwind CSS. While originally a frontend tool, it has evolved to support full-stack Next.js application development, including multi-file projects and backend logic integration.Overview of the FastAPI, UV, and Pydantic Learning Module
mainThis module teaches how to build a robust REST API layer for agentic AI systems using:
- FastAPI: Modern Python web framework for async support and automatic documentation.
- UV: Fast Python dependency management.
- Pydantic: Data validation and serialization.
Learning Path:
- Setup & Hello FastAPI: Project initialization with
uvand basic endpoints. - Pydantic Validation: Defining request/response structures.
- API Parameters: Using path, query, and request body parameters.
- Dependency Injection: Managing reusable logic and dependencies.
- API Testing with Pytest: Writing unit and integration tests.
- OpenAI Agents SDK with FastAPI: Integrating autonomous agents into FastAPI endpoints.
Overview of OpenAI Agents SDK
mainThe OpenAI Agents SDK is an open-source, lightweight Python framework designed for building and orchestrating 'agentic' AI applications. It allows developers to create systems where multiple AI agents work together autonomously to perform complex, multi-step tasks. The SDK is designed to be interoperable with any model provider that supports the Chat Completions API format, though it is optimized for OpenAI models and the Responses API.Overview of Graphiti: Temporal Knowledge Graphs Engine
mainGraphiti is a temporal knowledge graph framework used to power memory architectures for AI agents. It allows developers to transform unstructured text, conversations, or data into structured knowledge graphs.
Key capabilities include:
- Knowledge Graph Construction: Building graphs from text, messages, or JSON.
- Semantic Retrieval: Searching and retrieving information using semantic queries.
- Domain Modeling: Creating custom entity types and relationships.
- Temporal Memory: Managing information that evolves over time.
- MCP Integration: Deploying memory systems via Model Context Protocol (MCP).
Overview of Caitlyn - Optimization Agent (LangGraph)
mainCaitlyn is an intelligent scheduling optimization specialist built using the LangGraph framework. It is designed for complex decision-making, specifically focusing on multi-objective optimization and constraint satisfaction. The agent is intended to integrate with the A2A protocol for sophisticated multi-agent coordination.
Core Capabilities
- Multi-objective scheduling optimization: Using
optimize_schedulingto balance competing goals. - Constraint satisfaction: Solving complex problems via
solve_constraints. - Outcome prediction: Using machine learning-based schedule prediction via
predict_outcomes. - Resource management: Optimizing allocation and utilization via
balance_resources. - Conflict resolution: Minimizing conflicts through intelligent rescheduling via
minimize_conflicts. - Stakeholder satisfaction: Maximizing preference optimization via
maximize_satisfaction.
- Multi-objective scheduling optimization: Using
Manage Dapr Workflow Lifecycles
mainOnce workflows are authored and running, you can manage their lifecycle using the Dapr Workflow Management API, which is accessible via Dapr client SDKs or the HTTP API. The available management operations include:
- Start a Workflow: Scheduling a new workflow instance.
- Get Status: Querying the current status and metadata of a workflow.
- Pause: Suspending a running workflow.
- Resume: Continuing a paused workflow.
- Terminate/Cancel: Stopping a workflow instance.
- Raise External Event: Triggering an external event to interact with a running workflow.
Understand the advantages of the Actor Model in DACA
mainThe Actor Model, implemented via Dapr Actors, provides several key benefits for building agentic AI systems within the DACA (Dapr Agentic Cloud Ascent) design pattern:
- Simplicity: Dapr Actors abstract concurrency and state management. Execution is single-threaded per actor, which simplifies debugging of AI logic (using OpenAI Agents SDK, MCP, or A2A).
- Scalability: Actors scale horizontally across Kubernetes or Azure Container Apps (ACA). Dapr handles placement and load balancing.
- Fault Tolerance: Failures are isolated within individual actors. Resilience is enhanced through Dapr's retries, HITL (Human-in-the-loop) workflows, and supervisor actors that manage child actor lifecycles.
- Asynchronous/Event-Driven: Actors align with Event-Driven Architecture (EDA), processing events from Kafka or A2A asynchronously.
- Interoperability: Dapr Actors integrate with A2A's Agent Cards and MCP's tool-calling for cross-platform dialogues.
Architecture of the Event Planner Agent System
mainThe Event Planner Agent is designed as a multi-agent system using LLM-based orchestration. It operates as an independent service/container that communicates with other agents and external services.
Key Components
- Front-End Orchestration Agent: Centralized interface for conversation and task delegation. Routes event-related requests to the Event Planner Agent.
- Event Planner Agent: The core service that interprets user queries, calls tools (via LLM function-calling), and proposes plans.
- Greeting Agent: Handles small talk.
- User Preference Agent: Stores organizer preferences like budget, dietary restrictions, and location styles.
- Knowledge Graph Agent (Optional): Stores relationships between vendors, venues, and themes.
- Mail Processing Agent (Optional): Automates invitations and confirmations.
Communication & Patterns
- Protocols: Use HTTP, gRPC, or message queues for inter-agent communication.
- Human-in-the-Loop: The system must require explicit user confirmation (approve, reject, or modify) for major or costly decisions like booking confirmations or vendor contracts.
Understand the Assistant Selector Router Pattern
mainThe Assistant Selector implements the Router Pattern in LangGraph to optimize response quality by directing user queries to specialized agents.
Workflow Components:
- Question Classifier: Analyzes the input and categorizes it as a
Simple question,Complex question, orCode-related question. - Router: Uses the classification to select the appropriate specialized assistant.
- Specialized Assistants:
- Simple Assistant: Optimized for quick, factual responses.
- Complex Assistant: Optimized for detailed, in-depth explanations.
- Code Assistant: Optimized for code analysis, implementation, and debugging.
- Aggregator: Collects the output from the selected assistant to provide the final response.
- Question Classifier: Analyzes the input and categorizes it as a
Understand the Agent Executor Pattern
mainThe Agent Executor acts as a translation layer between the A2A Protocol (JSON-RPC/HTTP) and your agent's Business Logic (pure Python). This three-layer architecture ensures that complex protocol requirements are handled separately from your core agent functionality.
Architecture Layers:
- A2A Protocol: Manages JSON-RPC 2.0, HTTP transport, and the
.well-known/agent-card.jsonendpoint. - Agent Executor: Translates A2A requests into agent methods, routes requests based on skills, and manages
RequestContextandEventQueueflows. - Business Logic: Pure Python methods (e.g., calendar, data processing) that are independent of the A2A protocol.
- A2A Protocol: Manages JSON-RPC 2.0, HTTP transport, and the
Configure containers using Kubernetes ConfigMaps
mainKubernetes ConfigMaps store non-sensitive configuration data (key-value pairs or files) to decouple application settings from container images. This allows you to reuse the same image across different environments (dev, test, prod) by injecting different configurations at runtime.
Supported Injection Methods:
- Inside a container command and arguments.
- As environment variables for a container.
- As files in a read-only volume for the application to read.
- Using the Kubernetes API directly from within the application code.
⚠️ Security Warning: Do not use ConfigMaps to store sensitive data like
GEMINI_API_KEY. ConfigMaps do not provide encryption or protection for their contents. Use a secrets management solution for sensitive data.