From 2c161baa6342d2278b0d02a25c1c4e60bccb3690 Mon Sep 17 00:00:00 2001 From: Bilgin Ibryam Date: Fri, 25 Jul 2025 20:37:38 +0100 Subject: [PATCH] Updated concepts, getting started, and why Dapr Agents pages Signed-off-by: Bilgin Ibryam --- .../dapr-agents/dapr-agents-core-concepts.md | 470 ++++++++++++------ .../dapr-agents-getting-started.md | 93 +++- .../dapr-agents/dapr-agents-integrations.md | 16 +- .../dapr-agents/dapr-agents-why.md | 76 ++- .../images/dapr-agents/redis_dashboard.png | Bin 0 -> 121882 bytes 5 files changed, 454 insertions(+), 201 deletions(-) create mode 100644 daprdocs/static/images/dapr-agents/redis_dashboard.png diff --git a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-core-concepts.md b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-core-concepts.md index 4843b95b1..9c9d747f6 100644 --- a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-core-concepts.md +++ b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-core-concepts.md @@ -3,151 +3,72 @@ type: docs title: "Core Concepts" linkTitle: "Core Concepts" weight: 40 -description: "Learn about the core concepts and principles of Dapr Agents" +description: "Learn about the core concepts of Dapr Agents" --- -## Principles - -### Agent-Centric Design - -Dapr Agents is designed to place agents, powered by LLMs, at the core of task execution and workflow orchestration. This principle emphasizes: - -* **LLM-Powered Agents**: Dapr Agents enables the creation of agents that leverage LLMs for reasoning, dynamic decision-making, and natural language interactions. -* **Adaptive Task Handling**: Agents in Dapr Agents are equipped with flexible patterns like tool calling and reasoning loops (e.g., ReAct), allowing them to autonomously tackle complex and evolving tasks. -* **Seamless Integration**: Dapr Agents' framework allows agents to act as modular, reusable building blocks that integrate seamlessly into workflows, whether they operate independently or collaboratively. - -While Dapr Agents centers around agents, it also recognizes the versatility of using LLMs directly in deterministic workflows or simpler task sequences. In scenarios where the agent's built-in task-handling patterns, like `tool calling` or `ReAct` loops, are unnecessary, LLMs can act as core components for reasoning and decision-making. This flexibility ensures users can adapt Dapr Agents to suit diverse needs without being confined to a single approach. - -{{% alert title="Note" color="primary" %}} -Agents are not standalone; they are building blocks in larger, orchestrated workflows. -{{% /alert %}} - -### Decoupled Infrastructure Design - -Dapr Agents ensures a clean separation between agents and the underlying infrastructure, emphasizing simplicity, scalability, and adaptability: - -* **Agent Simplicity**: Agents focus purely on reasoning and task execution, while Pub/Sub messaging, routing, and validation are managed externally by modular infrastructure components. -* **Scalable and Adaptable Systems**: By offloading non-agent-specific responsibilities, Dapr Agents allows agents to scale independently and adapt seamlessly to new use cases or integrations. - -{{% alert title="Note" color="primary" %}} -Decoupling infrastructure keeps agents focused on tasks while enabling seamless scalability and integration across systems. -{{% /alert %}} - -![Decoupled Principles](/images/dapr-agents/home_concepts_principles_decoupled.png) - -### Modular Component Model - -Dapr Agents utilizes [Dapr's component framework]({{% ref components-concept.md %}}) and building blocks to simplify development and enhance flexibility: - -* **Building Blocks for Core Functionality**: Dapr provides API building blocks, such as Pub/Sub messaging, state management, service invocation, and more, to address common microservice challenges and promote best practices. -* **Interchangeable Components**: Each building block operates on swappable components (e.g., Redis, Kafka, Azure CosmosDB), allowing you to replace implementations without changing application code. -* **Seamless Transitions**: Develop locally with default configurations and deploy effortlessly to cloud environments by simply updating component definitions. -* **Scalable Foundations**: Build resilient and adaptable architectures using Dapr's modular, production-ready building blocks. - -{{% alert title="Note" color="primary" %}} -Developers can easily switch between different components (e.g., Redis to DynamoDB) based on their deployment environment, ensuring portability and adaptability. -{{% /alert %}} - -![Modular Principles](/images/dapr-agents/home_concepts_principles_modular.png) - -### Message-Driven Communication - -Dapr Agents emphasizes the use of Pub/Sub messaging for event-driven communication between agents. This principle ensures: - -* **Decoupled Architecture**: Asynchronous communication for scalability and modularity. -* **Real-Time Adaptability**: Agents react dynamically to events for faster, more flexible task execution. -* **Seamless Collaboration**: Agents share updates, distribute tasks, and respond to events in a highly coordinated way. - -{{% alert title="Note" color="primary" %}} -Pub/Sub messaging serves as the backbone for Dapr Agents' event-driven workflows, enabling agents to communicate and collaborate in real time. -{{% /alert %}} - -![Message Principles](/images/dapr-agents/home_concepts_principles_message.png) - -### Workflow-Oriented Design - -Dapr Agents embraces workflows as a foundational concept, integrating [Dapr Workflows]({{% ref workflow-overview.md %}}) to support both deterministic and event-driven task orchestration. This dual approach enables robust and adaptive systems: - -* **Deterministic Workflows**: Dapr Agents uses Dapr Workflows for stateful, predictable task sequences. These workflows ensure reliable execution, fault tolerance, and state persistence, making them ideal for structured, multi-step processes that require clear, repeatable logic. -* **Event-Driven Workflows**: By combining Dapr Workflows with Pub/Sub messaging, Dapr Agents supports workflows that adapt to real-time events. This facilitates decentralized, asynchronous collaboration between agents, allowing workflows to dynamically adjust to changing scenarios. - -By integrating these paradigms, Dapr Agents enables workflows that combine the reliability of deterministic execution with the adaptability of event-driven processes, ensuring flexibility and resilience in a wide range of applications. - -{{% alert title="Note" color="primary" %}} -Dapr Agents workflows blend structured, predictable logic with the dynamic responsiveness of event-driven systems, empowering both centralized and decentralized workflows. -{{% /alert %}} - -![Workflow Principles](/images/dapr-agents/home_concepts_principles_workflows.png) +Dapr Agents provides a structured way to build and orchestrate applications that use LLMs without getting bogged down in infrastructure details. The primary goal is to make AI development by abstracting away the complexities of working with LLMs, tools, memory management, and distributed systems, allowing developers to focus on the business logic of their AI applications. Agents in this framework are the fundamental building blocks. ## Agents -Agents in `Dapr Agents` are autonomous systems powered by Large Language Models (LLMs), designed to execute tasks, reason through problems, and collaborate within workflows. Acting as intelligent building blocks, agents seamlessly combine LLM-driven reasoning with tool integration, memory, and collaboration features to enable scalable, production-grade agentic systems. +Agents are autonomous units powered by Large Language Models (LLMs), designed to execute tasks, reason through problems, and collaborate within workflows. Acting as intelligent building blocks, agents combine reasoning with tool integration, memory, and collaboration features to get to the desired outcome. ![Concepts Agents](/images/dapr-agents/concepts-agents.png) -### Core Features - -#### 1. LLM Integration - -Dapr Agents provides a unified interface to connect with LLM inference APIs. This abstraction allows developers to seamlessly integrate their agents with cutting-edge language models for reasoning and decision-making. - -#### 2. Structured Outputs - -Agents in Dapr Agents leverage structured output capabilities, such as [OpenAI's Function Calling](https://platform.openai.com/docs/guides/function-calling), to generate predictable and reliable results. These outputs follow [JSON Schema Draft 2020-12](https://json-schema.org/draft/2020-12/release-notes.html) and [OpenAPI Specification v3.1.0](https://github.com/OAI/OpenAPI-Specification) standards, enabling easy interoperability and tool integration. - -#### 3. Tool Selection - -Agents dynamically select the appropriate tool for a given task, using LLMs to analyze requirements and choose the best action. This is supported directly through LLM parametric knowledge and enhanced by [Function Calling](https://platform.openai.com/docs/guides/function-calling), ensuring tools are invoked efficiently and accurately. - -#### 4. MCP Support - -Dapr Agents includes built-in support for the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/), enabling agents to dynamically discover and invoke external tools through a standardized interface. Using the provided MCPClient, agents can connect to MCP servers via two transport options: stdio for local development and sse for remote or distributed environments. - -#### 5. Memory - -Agents retain context across interactions, enhancing their ability to provide coherent and adaptive responses. Memory options range from simple in-memory lists for managing chat history to vector databases for semantic search and retrieval. - -#### 6. Prompt Flexibility - -Dapr Agents supports flexible prompt templates to shape agent behavior and reasoning. Users can define placeholders within prompts, enabling dynamic input of context for inference calls. - -#### 7. Agent Services - -Agents are exposed as independent services using [FastAPI and Dapr applications]({{% ref python-fastapi.md %}}). This modular approach separates the agent's logic from its service layer, enabling seamless reuse, deployment, and integration into multi-agent systems. - -#### 8. Message-Driven Communication - -Agents collaborate through [Pub/Sub messaging]({{% ref pubsub-overview.md %}}), enabling event-driven communication and task distribution. This message-driven architecture allows agents to work asynchronously, share updates, and respond to real-time events, ensuring effective collaboration in distributed systems. - -#### 9. Workflow Orchestration - -Dapr Agents supports both deterministic and event-driven workflows to manage multi-agent systems via [Dapr Workflows]({{% ref workflow-overview.md %}}). Deterministic workflows provide clear, repeatable processes, while event-driven workflows allow for dynamic, adaptive collaboration between agents in centralized or decentralized architectures. - -### Agent Types - Dapr Agents provides two agent types, each designed for different use cases: -#### Agent +### Agent +The standard `Agent` class is a conversational agent that manages tool calls and conversations using a language model. It provides, synchronous execution with built-in conversation memory. -The `Agent` class is a conversational agent that manages tool calls and conversations using a language model. It provides immediate, synchronous execution with built-in conversation memory and tool integration capabilities. +```python +@tool +def my_weather_func() -> str: + """Get current weather.""" + return "It's 72°F and sunny" -**Key Characteristics:** -- Synchronous execution with immediate responses -- Built-in conversation memory and tool history tracking -- Iterative conversation processing with max iteration limits -- Direct tool execution and result processing -- Graceful shutdown support with cancellation handling +async def main(): + weather_agent = Agent( + name="WeatherAgent", + role="Weather Assistant", + instructions=["Help users with weather information"], + tools=[my_weather_func], + memory=ConversationDaprStateMemory(store_name="historystore", session_id="some-id"), + ) -**When to use:** -- Building conversational assistants that need immediate responses -- Scenarios requiring real-time tool execution and conversation flow -- When you need direct control over the conversation loop -- Quick prototyping and development of agent interactions + response1 = await weather_agent.run("What's the weather?") + response2 = await weather_agent.run("How about now?") +``` -#### DurableAgent +This example shows how to create a simple agent with tool integration. The agent processes queries synchronously and maintains conversation context across multiple interactions using Dapr State Store API. + +### Durable Agent The `DurableAgent` class is a workflow-based agent that extends the standard Agent with Dapr Workflows for long-running, fault-tolerant, and durable execution. It provides persistent state management, automatic retry mechanisms, and deterministic execution across failures. +```python + +travel_planner = DurableAgent( + name="TravelBuddy", + role="Travel Planner", + instructions=["Help users find flights and remember preferences"], + tools=[search_flights], + memory=ConversationDaprStateMemory( + store_name="conversationstore", session_id="my-unique-id" + ), + + # DurableAgent Configurations + message_bus_name="messagepubsub", + state_store_name="workflowstatestore", + state_key="workflow_state", + agents_registry_store_name="registrystatestore", + agents_registry_key="agents_registry", + ) + + travel_planner.as_service(port=8001) + await travel_planner.start() + +``` +This example demonstrates creating a workflow-backed agent that runs autonomously in the background. The agent can be triggered once and continues execution even across system restarts. + **Key Characteristics:** - Workflow-based execution using Dapr Workflows - Persistent workflow state management across sessions and failures @@ -163,13 +84,74 @@ The `DurableAgent` class is a workflow-based agent that extends the standard Age - Complex agent orchestration and multi-agent collaboration - Production systems requiring fault tolerance and scalability -### Agent Patterns +In Summary: -In Dapr Agents, Agent Patterns define the built-in loops that allow agents to dynamically handle tasks. These patterns enable agents to iteratively reason, act, and adapt, making them flexible and capable problem-solvers. +| Agent Type | Memory Type | Execution | Interaction Mode | +|-----------------|-------------------------|---------------------------|------------------------------| +| `Agent` | In-memory or Persistent | Ephemeral | Synchronous / Conversational | +| `Durable Agent` | In-memory or Persistent | Durable (Workflow-backed) | Asynchronous / Headless | -#### Tool Calling -Tool Calling is an essential pattern in autonomous agent design, allowing AI agents to interact dynamically with external tools based on user input. One reliable method for enabling this is through [OpenAI's Function Calling](https://platform.openai.com/docs/guides/function-calling) capability. +- Regular `Agent`: Interaction is synchronous—you send conversational prompts and receive responses immediately. The conversation can be stored in memory or persisted, but the execution is ephemeral and does not survive restarts. + +- `DurableAgent` (Workflow-backed): Interaction is asynchronous—you trigger the agent once, and it runs autonomously in the background until completion. The conversation state can also be in memory or persisted, but the execution is durable and can resume across failures or restarts. + + +## Core Agent Features +An agentic system is a distributed system that requires a variety of behaviors and supporting infrastructure. + +### LLM Integration + +Dapr Agents provides a unified interface to connect with LLM inference APIs. This abstraction allows developers to seamlessly integrate their agents with cutting-edge language models for reasoning and decision-making. The framework includes multiple LLM clients for different providers and modalities: + +- `OpenAIChatClient`: Full spectrum support for OpenAI models including chat, embeddings, and audio +- `HFHubChatClient`: For Hugging Face models supporting both chat and embeddings +- `NVIDIAChatClient`: For NVIDIA AI Foundation models supporting local inference and chat +- `ElevenLabs`: Support for speech and voice capabilities +- `DaprChatClient`: Unified API for LLM interactions via Dapr's Conversation API with built-in security (scopes, secrets, PII obfuscation), resiliency (timeouts, retries, circuit breakers), and observability via OpenTelemetry & Prometheus + +### Prompt Flexibility + +Dapr Agents supports flexible prompt templates to shape agent behavior and reasoning. Users can define placeholders within prompts, enabling dynamic input of context for inference calls. By leveraging prompt formatting with [Jinja templates](https://jinja.palletsprojects.com/en/stable/templates/), users can include loops, conditions, and variables, providing precise control over the structure and content of prompts. This flexibility ensures that LLM responses are tailored to the task at hand, offering modularity and adaptability for diverse use cases. + +### Structured Outputs + +Agents in Dapr Agents leverage structured output capabilities, such as [OpenAI’s Function Calling](https://platform.openai.com/docs/guides/function-calling), to generate predictable and reliable results. These outputs follow [JSON Schema Draft 2020-12](https://json-schema.org/draft/2020-12/release-notes.html) and [OpenAPI Specification v3.1.0](https://github.com/OAI/OpenAPI-Specification) standards, enabling easy interoperability and tool integration. + +```python +# Define our data model +class Dog(BaseModel): + name: str + breed: str + reason: str + +# Initialize the chat client +llm = OpenAIChatClient() + +# Get structured response +response = llm.generate( + messages=[UserMessage("One famous dog in history.")], response_format=Dog +) + +print(json.dumps(response.model_dump(), indent=2)) +``` +This demonstrates how LLMs generate structured data according to a schema. The Pydantic model (Dog) specifies the exact structure and data types expected, while the response_format parameter instructs the LLM to return data matching the model, ensuring consistent and predictable outputs for downstream processing. + + +### Tool Calling + +Tool Calling is an essential pattern in autonomous agent design, allowing AI agents to interact dynamically with external tools based on user input. Agents dynamically select the appropriate tool for a given task, using LLMs to analyze requirements and choose the best action. + +```python +@tool(args_model=GetWeatherSchema) +def get_weather(location: str) -> str: + """Get weather information based on location.""" + import random + temperature = random.randint(60, 80) + return f"{location}: {temperature}F." +``` + +Each tool has a descriptive docstring that helps the LLM understand when to use it. The `@tool` decorator marks a function as a tool, while the Pydantic model (`GetWeatherSchema`) defines input parameters for structured validation. ![Tool Call Flow](/images/dapr-agents/concepts_agents_toolcall_flow.png) @@ -179,21 +161,208 @@ Tool Calling is an essential pattern in autonomous agent design, allowing AI age 4. The AI agent parses the JSON, executes the tool with the provided arguments, and sends the results back as a tool message. 5. The LLM then summarizes the tool's execution results within the user's context to deliver a comprehensive final response. -#### ReAct +This is supported directly through LLM parametric knowledge and enhanced by [Function Calling](https://platform.openai.com/docs/guides/function-calling), ensuring tools are invoked efficiently and accurately. -The [ReAct (Reason + Act)](https://arxiv.org/pdf/2210.03629.pdf) pattern was introduced in 2022 to enhance the capabilities of LLM-based AI agents by combining reasoning with action. This approach allows agents not only to reason through complex tasks but also to interact with the environment, taking actions based on their reasoning and observing the outcomes. -![ReAct Flow](/images/dapr-agents/concepts_agents_react_flow.png) +### MCP Support +Dapr Agents includes built-in support for the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/), enabling agents to dynamically discover and invoke external tools through a standardized interface. Using the provided MCPClient, agents can connect to MCP servers via two transport options: stdio for local development and sse for remote or distributed environments. -* **Thought (Reasoning)**: The agent analyzes the situation and generates a thought or a plan based on the input. -* **Action**: The agent takes an action based on its reasoning. -* **Observation**: After the action is executed, the agent observes the results or feedback from the environment, assessing the effectiveness of its action. +```python +client = MCPClient() +await client.connect_sse("local", url="http://localhost:8000/sse") -## Messaging +# Convert MCP tools to AgentTool list +tools = client.get_all_tools() +``` -Messaging is how agents communicate, collaborate, and adapt in workflows. It enables them to share updates, execute tasks, and respond to events seamlessly. Messaging is one of the main components of `event-driven` agentic workflows, ensuring tasks remain scalable, adaptable, and decoupled. Built entirely around the `Pub/Sub (publish/subscribe)` model, messaging leverages a message bus to facilitate communication across agents, services, and workflows. +Once connected, the MCP client fetches all available tools from the server and prepares them for immediate use within the agent’s toolset. This allows agents to incorporate capabilities exposed by external processes—such as local Python scripts or remote services without hardcoding or preloading them. Agents can invoke these tools at runtime, expanding their behavior based on what’s offered by the active MCP server. -### Key Role of Messaging in Agentic Workflows +### Memory +Agents retain context across interactions, enhancing their ability to provide coherent and adaptive responses. Memory options range from simple in-memory lists for managing chat history to vector databases for semantic search, and also integrates with [Dapr state stores](https://docs.dapr.io/developing-applications/building-blocks/state-management/howto-get-save-state/), for scalable and persistent memory for advanced use cases from 28 different state store providers. + + +```python +# ConversationListMemory (Simple In-Memory) - Default +memory_list = ConversationListMemory() + +# ConversationVectorMemory (Vector Store) +memory_vector = ConversationVectorMemory( + vector_store=your_vector_store_instance, + distance_metric="cosine" +) + +# 3. ConversationDaprStateMemory (Dapr State Store) +memory_dapr = ConversationDaprStateMemory( + store_name="historystore", # Maps to Dapr component name + session_id="some-id" +) + +# Using with an agent +agent = Agent( + name="MyAgent", + role="Assistant", + memory=memory_dapr # Pass any memory implementation +) + +``` +`ConversationListMemory` is the default memory implementation when none is specified. It provides fast, temporary storage in Python lists for development and testing. The Dapr's memory implementations are interchangeable, allowing you to switch between them without modifying your agent logic. + +| Memory Implementation | Type | Persistence | Search | Use Case | +|---|---|---|---|---| +| `ConversationListMemory` (Default) | In-Memory | ❌ | Linear | Development | +| `ConversationVectorMemory` | Vector Store | ✅ | Semantic | RAG/AI Apps | +| `ConversationDaprStateMemory` | Dapr State Store | ✅ | Query | Production | + + +### Agent Services + +`DurableAgents` are exposed as independent services using [FastAPI and Dapr applications](https://docs.dapr.io/developing-applications/sdks/python/python-sdk-extensions/python-fastapi/). This modular approach separates the agent's logic from its service layer, enabling seamless reuse, deployment, and integration into multi-agent systems. + +```python +travel_planner.as_service(port=8001) +await travel_planner.start() +``` +This exposes the agent as a REST service, allowing other systems to interact with it through standard HTTP requests such as this one: + +``` +curl -i -X POST http://localhost:8001/start-workflow \ +-H "Content-Type: application/json" \ +-d '{"task": "I want to find flights to Paris"}' +``` +Unlike conversational agents that provide immediate synchronous responses, durable agents operate as headless services that are triggered asynchronously. You trigger it, receive a workflow instance ID, and can track progress over time. This enables long-running, fault-tolerant operations that can span multiple systems and survive restarts, making them ideal for complex multi-step processes in production environments. + +## Multi-agent Systems (MAS) + +While it's tempting to build a fully autonomous agent capable of handling many tasks, in practice, it's more effective to break this down into specialized agents equipped with appropriate tools and instructions, then coordinate interactions between multiple agents. + +Multi-agent systems (MAS) distribute workflow execution across multiple coordinated agents to efficiently achieve shared objectives. This approach, called agent orchestration, enables better specialization, scalability, and maintainability compared to monolithic agent designs. + +![Agent Orchestration](/images/dapr-agents/home_concepts_principles_workflows.png) + +Dapr Agents supports two primary orchestration approaches via [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/) and [Dapr PubSub](https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-overview/): + +- **Deterministic Workflow-based Orchestration** - Provides clear, repeatable processes with predefined sequences and decision points +- **Event-driven Orchestration** - Enables dynamic, adaptive collaboration through message-based coordination among agents + +Both approaches utilize a central orchestrator that coordinates multiple specialized agents, each handling specific tasks or domains, ensuring efficient task distribution and seamless collaboration across the system. + +## Deterministic Workflows + +Workflows are structured processes where LLM agents and tools collaborate in predefined sequences to accomplish complex tasks. Unlike fully autonomous agents that make all decisions independently, workflows provide a balance of structure and predictability from the workflow definition, intelligence and flexibility from LLM agents, and reliability and durability from Dapr's workflow engine. + +This approach is particularly suitable for business-critical applications where you need both the intelligence of LLMs and the reliability of traditional software systems. + +```python +# Define Workflow logic +@workflow(name="task_chain_workflow") +def task_chain_workflow(ctx: DaprWorkflowContext): + result1 = yield ctx.call_activity(get_character) + result2 = yield ctx.call_activity(get_line, input={"character": result1}) + return result2 + +@task(description="Pick a random character from The Lord of the Rings and respond with the character's name only") +def get_character() -> str: + pass + +@task(description="What is a famous line by {character}") +def get_line(character: str) -> str: + pass +``` + +This workflow demonstrates sequential task execution where the output of one task becomes the input for the next, enabling complex multi-step processes with clear dependencies and data flow. + +Dapr Agents supports coordination of LLM interactions at different levels of granularity: + +### Prompt Tasks +Tasks created from prompts that leverage LLM reasoning capabilities for specific, well-defined operations. + +```python +@task(description="Pick a random character from The Lord of the Rings and respond with the character's name only") +def get_character() -> str: + pass +``` + +While technically not full agents (as they lack tools and memory), prompt tasks serve as lightweight agentic building blocks that perform focused LLM interactions within the broader workflow context. + +### Agent Tasks +Tasks based on agents with tools, providing greater flexibility and capability for complex operations requiring external integrations. + +```python +@task(agent=custom_agent, description="Retrieve stock data for {ticker}") +def get_stock_data(ticker: str) -> dict: + pass +``` +Agent tasks enable workflows to leverage specialized agents with their own tools, memory, and reasoning capabilities while maintaining the structured coordination benefits of workflow orchestration. + +> **Note:** Agent tasks must use regular `Agent` instances, not `DurableAgent` instances, as workflows manage the execution context and durability through the Dapr workflow engine. + +### Workflow Patterns + +Workflows enable the implementation of various agentic patterns through structured orchestration, including Prompt Chaining, Routing, Parallelization, Orchestrator-Workers, Evaluator-Optimizer, Human-in-the-loop, and others. For detailed implementations and examples of these patterns, see the [Patterns documentation]({{< ref "dapr-agents-patterns.md" >}}). + +### Workflows vs. Durable Agents + +Both DurableAgent and workflow-based agent orchestration use Dapr workflows behind the scenes for durability and reliability, but they differ in how control flow is determined. + +| Aspect | Workflows | Durable Agents | +|--------|-----------|------------------------------------| +| Control | Developer-defined process flow | Agent determines next steps | +| Predictability | Higher | Lower | +| Flexibility | Fixed overall structure, flexible within steps | Completely flexible | +| Reliability | Very high (workflow engine guarantees) | Depends on agent implementation | +| Complexity | Simpler to reason about | Harder to debug and understand | +| Use Cases | Business processes, regulated domains | Open-ended research, creative tasks | + +The key difference lies in control flow determination: with DurableAgent, the workflow is created dynamically by the LLM's planning decisions, executing entirely within a single agent context. In contrast, with deterministic workflows, the developer explicitly defines the coordination between one or more LLM interactions, providing structured orchestration across multiple tasks or agents. + + +## Event-driven Orchestration +Event-driven agent orchestration enables multiple specialized agents to collaborate through asynchronous [Pub/Sub messaging](https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-overview/). This approach provides powerful collaborative problem-solving, parallel processing, and division of responsibilities among specialized agents through independent scaling, resilience via service isolation, and clear separation of responsibilities. + +### Core Participants +The core participants in this multi-agent coordination systems are the following. + +#### Durable Agents + +Each agent runs as an independent service with its own lifecycle, configured as a standard DurableAgent with pub/sub enabled: + +```python +hobbit_service = DurableAgent( + name="Frodo", + instructions=["Speak like Frodo, with humility and determination."], + message_bus_name="messagepubsub", + state_store_name="workflowstatestore", + state_key="workflow_state", + agents_registry_store_name="agentstatestore", + agents_registry_key="agents_registry", +) +``` + +#### Orchestrator + +The orchestrator coordinates interactions between agents and manages conversation flow by selecting appropriate agents, managing interaction sequences, and tracking progress. Dapr Agents offers three orchestration strategies: Random, RoundRobin, and LLM-based orchestration. + +```python +llm_orchestrator = LLMOrchestrator( + name="LLMOrchestrator", + message_bus_name="messagepubsub", + state_store_name="agenticworkflowstate", + state_key="workflow_state", + agents_registry_store_name="agentstatestore", + agents_registry_key="agents_registry", + max_iterations=3 +) +``` + +The LLM-based orchestrator uses intelligent agent selection for context-aware decision making, while Random and RoundRobin provide alternative coordination strategies for simpler use cases. + +### Communication Flow + +Agents communicate through an event-driven pub/sub system that enables asynchronous communication, decoupled architecture, scalable interactions, and reliable message delivery. The typical collaboration flow involves client query submission, orchestrator-driven agent selection, agent response processing, and iterative coordination until task completion. + +This approach is particularly effective for complex problem solving requiring multiple expertise areas, creative collaboration from diverse perspectives, role-playing scenarios, and distributed processing of large tasks. + +### How Messaging Works Messaging connects agents in workflows, enabling real-time communication and coordination. It acts as the backbone of event-driven interactions, ensuring that agents work together effectively without requiring direct connections. @@ -205,10 +374,6 @@ Through messaging, agents can: By using messaging, workflows remain modular and scalable, with agents focusing on their specific roles while seamlessly participating in the broader system. -### How Messaging Works - -Messaging relies on the `Pub/Sub` model, which organizes communication into topics. These topics act as channels where agents can publish and subscribe to messages, enabling efficient and decoupled communication. - #### Message Bus and Topics The message bus serves as the central system that manages topics and message delivery. Agents interact with the message bus to send and receive messages: @@ -217,24 +382,13 @@ The message bus serves as the central system that manages topics and message del * **Subscribing to Topics**: Agents subscribe to topics relevant to their roles, ensuring they only receive the messages they need. * **Broadcasting Updates**: Multiple agents can subscribe to the same topic, allowing them to act on shared events or updates. -#### Scalability and Adaptability - -The message bus ensures that communication scales effortlessly, whether you are adding new agents, expanding workflows, or adapting to changing requirements. Agents remain loosely coupled, allowing workflows to evolve without disruptions. - -### Messaging in Event-Driven Workflows - -Event-driven workflows depend on messaging to enable dynamic and real-time interactions. Unlike deterministic workflows, which follow a fixed sequence of tasks, event-driven workflows respond to the messages and events flowing through the system. - -* **Real-Time Triggers**: Agents can initiate tasks or workflows by publishing specific events. -* **Asynchronous Execution**: Tasks are coordinated through messages, allowing agents to operate independently and in parallel. -* **Dynamic Adaptation**: Agents adjust their behavior based on the messages they receive, ensuring workflows remain flexible and resilient. - -### Why Pub/Sub Messaging for Agentic Workflows? +#### Why Pub/Sub Messaging for Agentic Workflows? Pub/Sub messaging is essential for event-driven agentic workflows because it: * **Decouples Components**: Agents publish messages without needing to know which agents will receive them, promoting modular and scalable designs. * **Enables Real-Time Communication**: Messages are delivered as events occur, allowing agents to react instantly. * **Fosters Collaboration**: Multiple agents can subscribe to the same topic, making it easy to share updates or divide responsibilities. +* **Enables Scalability**:The message bus ensures that communication scales effortlessly, whether you are adding new agents, expanding workflows, or adapting to changing requirements. Agents remain loosely coupled, allowing workflows to evolve without disruptions. This messaging framework ensures that agents operate efficiently, workflows remain flexible, and systems can scale dynamically. \ No newline at end of file diff --git a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-getting-started.md b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-getting-started.md index de00995b0..e5ebd9f73 100644 --- a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-getting-started.md +++ b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-getting-started.md @@ -7,28 +7,48 @@ description: "How to install Dapr Agents and run your first agent" --- {{% alert title="Dapr Agents Concepts" color="primary" %}} -If you are looking for an introductory overview of Dapr Agents and want to learn more about basic Dapr Agents terminology, we recommend starting with the [introduction]({{% ref dapr-agents-introduction.md %}}) and [concepts]({{% ref dapr-agents-core-concepts.md %}}) sections. +If you are looking for an introductory overview of Dapr Agents and want to learn more about basic Dapr Agents terminology, we recommend starting with the [introduction](dapr-agents-introduction.md) and [concepts](dapr-agents-core-concepts.md) sections. {{% /alert %}} -## Install & Initialize Dapr CLI +## Install Dapr CLI -While simple examples in Dapr Agents can be used without the sidecar, the recommended mode is with the Dapr sidecar. To benefit from the full power of Dapr Agents, install the Dapr CLI for running Dapr locally or on Kubernetes for development purposes. Follow the instructions on the [Install Dapr CLI page]({{% ref install-dapr-cli.md %}}) and the [Init Dapr locally page]({{% ref install-dapr-selfhost.md %}}). After installing the CLI and initializing Dapr, come back to this page. +While simple examples in Dapr Agents can be used without the sidecar, the recommended mode is with the Dapr sidecar. To benefit from the full power of Dapr Agents, install the Dapr CLI for running Dapr locally or on Kubernetes for development purposes. For a complete step-by-step guide, follow the [Dapr CLI installation page](https://docs.dapr.io/getting-started/install-dapr-cli/). +Verify the CLI is installed by restarting your terminal/command prompt and running the following: + +```bash +dapr -h +``` + +## Initialize Dapr in Local Mode + +{{% alert title="Note" color="info" %}} +Make sure you have [Docker](https://docs.docker.com/get-started/get-docker/) already installed. +{{% /alert %}} + +Initialize Dapr locally to set up a self-hosted environment for development. This process fetches and installs the Dapr sidecar binaries, runs essential services as Docker containers, and prepares a default components folder for your application. For detailed steps, see the official [guide on initializing Dapr locally](https://docs.dapr.io/getting-started/install-dapr-selfhost/). + +![Dapr Initialization](/images/dapr-agents/home_installation_init.png) + +To initialize the Dapr control plane containers and create a default configuration file, run: + +```bash +dapr init +``` + +Verify you have container instances with `daprio/dapr`, `openzipkin/zipkin`, and `redis` images running: + +```bash +docker ps +``` + ## Install Python -{{% alert title="Note" color="primary" %}} +{{% alert title="Note" color="info" %}} Make sure you have Python already installed. `Python >=3.10`. For installation instructions, visit the official [Python installation guide](https://www.python.org/downloads/). {{% /alert %}} -## Install Dapr Agents - -Install the Dapr Agents Python package using pip. For the latest version, check the [PyPI page](https://pypi.org/project/dapr-agents/). - -```bash -pip install dapr-agents -``` - ## Create Your First Dapr Agent Let's create a weather assistant agent that demonstrates tool calling with Dapr state management used for conversation memory. @@ -103,26 +123,47 @@ if __name__ == "__main__": asyncio.run(main()) ``` -This code creates an agent with a single weather tool and uses Dapr for memory persistence. Notice how in the agent's responses, it remembers the user's name from the first chat interaction, demonstrating the conversation memory in action. +This code creates an agent with a single weather tool and uses Dapr for memory persistence. -### 4. Run with Dapr +### 4. Set up virtual environment to install dapr-agent + +For the latest version of Dapr Agents, check the [PyPI page](https://pypi.org/project/dapr-agents/). + +Create a `requirements.txt` file with the necessary dependencies: + +```txt +dapr-agents +python-dotenv +``` + +Create and activate a virtual environment, then install the dependencies: + +```bash +# Create a virtual environment +python3.10 -m venv .venv + +# Activate the virtual environment +# On Windows: +.venv\Scripts\activate +# On macOS/Linux: +source .venv/bin/activate + +# Install dependencies +pip install -r requirements.txt +``` + +### 5. Run with Dapr ```bash dapr run --app-id weatheragent --resources-path ./components -- python weather_agent.py ``` -This command starts a Dapr sidecar with the conversation component and launches the agent that communicates with the sidecar for state persistence. +This command starts a Dapr sidecar with the conversation component and launches the agent that communicates with the sidecar for state persistence. Notice how in the agent's responses, it remembers the user's name from the first chat interaction, demonstrating the conversation memory in action. -### 5. Enable Redis Insights (Optional) +### 6. Enable Redis Insights (Optional) -Dapr uses [Redis]({{% ref setup-redis.md %}}) by default for state management and pub/sub messaging, which are fundamental to Dapr Agents's agentic workflows. These capabilities enable the following: - -* Viewing Pub/Sub Messages: Monitor and inspect messages exchanged between agents in event-driven workflows. -* Inspecting State Information: Access and analyze workflow state, conversation state, and other shared data among agents. -* Debugging and Monitoring Events: Track workflow events in real time to ensure smooth operations and identify issues. - -To inspect the Redis instance, a great tool to use is Redis Insight, and you can use it to inspect the agent memory populated earlier. +Dapr uses [Redis](https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-redis/) by default for state management and pub/sub messaging, which are fundamental to Dapr Agents's agentic workflows. To inspect the Redis instance, a great tool to use is Redis Insight, and you can use it to inspect the agent memory populated earlier. To run Redis Insights, run: ```bash docker run --rm -d --name redisinsight -p 5540:5540 redis/redisinsight:latest @@ -137,11 +178,11 @@ Inside Redis Insight, you can connect to a Redis instance, so let's connect to t Redis Insight makes it easy to visualize and manage the data powering your agentic workflows, ensuring efficient debugging, monitoring, and optimization. -![Redis Dashboard](/images/dapr-agents/home_installation_redis_dashboard.png) +![Redis Dashboard](/images/dapr-agents/redis_dashboard.png) Here you can browse the state store used in the agent and explore its data. - + ## Next Steps -Now that you have Dapr Agents installed and running, explore more advanced examples and patterns in the [quickstarts]({{% ref dapr-agents-quickstarts.md %}}) section to learn about multi-agent workflows, durable agents, and integration with Dapr's powerful distributed capabilities. +Now that you have Dapr Agents installed and running, explore more advanced examples and patterns in the [quickstarts](dapr-agents-quickstarts.md) section to learn about multi-agent workflows, durable agents, and integration with Dapr's powerful distributed capabilities. \ No newline at end of file diff --git a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-integrations.md b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-integrations.md index ac6e315fd..11406f347 100644 --- a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-integrations.md +++ b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-integrations.md @@ -3,25 +3,11 @@ type: docs title: "Integrations" linkTitle: "Integrations" weight: 60 -description: "Various integrations available in Dapr Agents" +description: "Various integrations and tools available in Dapr Agents" --- -# Integrations - - -Dapr Agents integrates with popular Python frameworks and tools. - -| Framework | Integration | Description | -|-----------|-------------|-------------| -| [**FastAPI**]({{% ref "dapr-agents-getting-started.md#fastapi-integration" %}}) | Native | Expose agents as REST APIs with automatic documentation and validation -| [**Chainlit**]({{% ref "dapr-agents-quickstarts.md#chainlit-integration" %}}) | Supported | Build conversational UIs for agent interactions with file upload and chat capabilities -| [**Pydantic**]({{% ref "dapr-agents-core-concepts.md#pydantic-integration" %}}) | Built-in | Type-safe configuration and structured outputs for agents and tools - - - # Out-of-the-box Tools - ## Text Splitter The Text Splitter module is a foundational integration in `Dapr Agents` designed to preprocess documents for use in [Retrieval-Augmented Generation (RAG)](https://en.wikipedia.org/wiki/Retrieval-augmented_generation) workflows and other `in-context learning` applications. Its primary purpose is to break large documents into smaller, meaningful chunks that can be embedded, indexed, and efficiently retrieved based on user queries. diff --git a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-why.md b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-why.md index b67a9806b..9659b4c57 100644 --- a/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-why.md +++ b/daprdocs/content/en/developing-applications/dapr-agents/dapr-agents-why.md @@ -8,18 +8,90 @@ description: "Understanding the benefits and use cases for Dapr Agents" Dapr Agents is an open-source framework for building and orchestrating LLM-based autonomous agents that leverages Dapr's proven distributed systems foundation. Unlike other agentic frameworks that require developers to build infrastructure from scratch, Dapr Agents enables teams to focus on agent intelligence by providing enterprise-grade scalability, state management, and messaging capabilities out of the box. This approach eliminates the complexity of recreating distributed system fundamentals while delivering production-ready agentic workflows.RetryClaude can make mistakes. Please double-check responses. -### The Problem +### Challenges with Existing Frameworks Many agentic frameworks today attempt to redefine how microservices are built and orchestrated by developing their own platforms for core distributed system capabilities. While these efforts showcase innovation, they often lead to steep learning curves, fragmented systems, and unnecessary complexity when scaling or adapting to new environments. These frameworks require developers to adopt entirely new paradigms or recreate foundational infrastructure, rather than building on existing solutions that are proven to handle these challenges at scale. This added complexity diverts focus from the primary goal: designing and implementing intelligent, effective agents. -### Dapr Agents' Approach +### How Dapr Agents Solves It Dapr Agents takes a different approach by building on Dapr, leveraging its proven APIs and patterns including [workflows]({{% ref workflow-overview.md %}}), [pub/sub messaging]({{% ref pubsub-overview.md %}}), [state management]({{% ref state-management-overview %}}), and [service communication]({{% ref service-invocation-overview.md %}}). This integration eliminates the need to recreate foundational components from scratch. By integrating with Dapr's runtime and modular components, Dapr Agents empowers developers to build and deploy agents that work as collaborative services within larger systems. Whether experimenting with a single agent or orchestrating workflows involving multiple agents, Dapr Agents allows teams to concentrate on the intelligence and behavior of LLM-powered agents while leveraging a proven framework for scalability and reliability. + +## Principles + +### Agent-Centric Design + +Dapr Agents is designed to place agents, powered by LLMs, at the core of task execution and workflow orchestration. This principle emphasizes: + +* **LLM-Powered Agents**: Dapr Agents enables the creation of agents that leverage LLMs for reasoning, dynamic decision-making, and natural language interactions. +* **Adaptive Task Handling**: Agents in Dapr Agents are equipped with flexible patterns like tool calling and reasoning loops (e.g., ReAct), allowing them to autonomously tackle complex and evolving tasks. +* **Multi-agent Systems**: Dapr Agents' framework allows agents to act as modular, reusable building blocks that integrate seamlessly into workflows, whether they operate independently or collaboratively. + +While Dapr Agents centers around agents, it also recognizes the versatility of using LLMs directly in deterministic workflows or simpler task sequences. In scenarios where the agent's built-in task-handling patterns, like `tool calling` or `ReAct` loops, are unnecessary, LLMs can act as core components for reasoning and decision-making. This flexibility ensures users can adapt Dapr Agents to suit diverse needs without being confined to a single approach. + +{{% alert title="Note" color="info" %}} +Agents can be used standalone and create workflows behind the scene, or act as autonomous steps in deterministic workflows. +{{% /alert %}} + +![Modular Principles](/images/dapr-agents/home_concepts_principles_modular.png) + +### Backed by Durable Workflows + +Dapr Agents places durability at the core of its architecture, leveraging [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/) as the foundation for durable agent execution and deterministic multi-agent orchestration. + +* **Durable Agent Execution**: DurableAgents are fundamentally workflow-backed, ensuring all LLM calls and tool executions remain durable, auditable, and resumable. Workflow checkpointing guarantees agents can recover from any point of failure while maintaining state consistency. +* **Deterministic Multi-Agent Orchestration**: Workflows provide centralized control over task dependencies and coordination between multiple agents. Dapr's code-first workflow engine enables reliable orchestration of complex business processes while preserving agent autonomy where appropriate. + +By integrating workflows as the foundational layer, Dapr Agents enables systems that combine the reliability of deterministic execution with the intelligence of LLM-powered agents, ensuring production-grade reliability and scalability. + +{{% alert title="Note" color="info" %}} +Workflows in Dapr Agents provide the foundation for building production-ready agentic systems that combine reliable execution with LLM-powered intelligence. +{{% /alert %}} + +### Modular Component Model + +Dapr Agents utilizes [Dapr's pluggable component framework](https://docs.dapr.io/concepts/components-concept/) and building blocks to simplify development and enhance flexibility: + +* **Building Blocks for Core Functionality**: Dapr provides API building blocks, such as Pub/Sub messaging, state management, service invocation, and more, to address common microservice challenges and promote best practices. +* **Interchangeable Components**: Each building block operates on swappable components (e.g., Redis, Kafka, Azure CosmosDB), allowing you to replace implementations without changing application code. +* **Seamless Transitions**: Develop locally with default configurations and deploy effortlessly to cloud environments by simply updating component definitions. + +{{% alert title="Note" color="info" %}} +Developers can easily switch between different components (e.g., Redis to DynamoDB, OpenAI, Anthropic) based on their deployment environment, ensuring portability and adaptability. +{{% /alert %}} + +### Message-Driven Communication + +Dapr Agents emphasizes the use of Pub/Sub messaging for event-driven communication between agents. This principle ensures: + +* **Decoupled Architecture**: Asynchronous communication for scalability and modularity. +* **Real-Time Adaptability**: Agents react dynamically to events for faster, more flexible task execution. +* **Event-Driven Workflows**: : By combining Pub/Sub messaging with workflow capabilities, agents can collaborate through event streams while participating in larger orchestrated workflows, enabling both autonomous coordination and structured task execution. + +{{% alert title="Note" color="info" %}} +Pub/Sub messaging serves as the backbone for Dapr Agents' event-driven workflows, enabling agents to communicate and collaborate in real time while maintaining loose coupling. +{{% /alert %}} + +![Message Principles](/images/dapr-agents/home_concepts_principles_message.png) + +### Decoupled Infrastructure Design + +Dapr Agents ensures a clean separation between agents and the underlying infrastructure, emphasizing simplicity, scalability, and adaptability: + +* **Agent Simplicity**: Agents focus purely on reasoning and task execution, while Pub/Sub messaging, routing, and validation are managed externally by modular infrastructure components. +* **Scalable and Adaptable Systems**: By offloading non-agent-specific responsibilities, Dapr Agents allows agents to scale independently and adapt seamlessly to new use cases or integrations. + +{{% alert title="Note" color="info" %}} +Decoupling infrastructure keeps agents focused on tasks while enabling seamless scalability and integration across systems. +{{% /alert %}} + +![Decoupled Principles](/images/dapr-agents/home_concepts_principles_decoupled.png) + + ## Dapr Agents Benefits ### Scalable Workflows as First-Class Citizens diff --git a/daprdocs/static/images/dapr-agents/redis_dashboard.png b/daprdocs/static/images/dapr-agents/redis_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5d130e5087b92469b15ab8da4e7f6ec562edfd GIT binary patch literal 121882 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⪼-Y_rCI(A1r#*Wc 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