Merge pull request #4 from dapr-sandbox/textchanges-1

More Floki -> Dapr Agents changes
This commit is contained in:
Yaron Schneider 2025-01-27 15:55:00 -08:00 committed by GitHub
commit 977268360d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 54 additions and 68 deletions

View File

@ -8,11 +8,11 @@ Agents in `Dapr Agents` are autonomous systems powered by Large Language Models
### 1. LLM Integration
Floki provides a unified interface to connect with LLM inference APIs, starting with [OpenAI models](https://platform.openai.com/docs/models). This abstraction allows developers to seamlessly integrate their agents with cutting-edge language models for reasoning and decision-making.
Dapr Agents provides a unified interface to connect with LLM inference APIs, starting with [OpenAI models](https://platform.openai.com/docs/models). This abstraction allows developers to seamlessly integrate their agents with cutting-edge language models for reasoning and decision-making.
### 2. Structured Outputs
Agents in Floki leverage structured output capabilities, such as [OpenAIs 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.
Agents in Dapr Agents leverage structured output capabilities, such as [OpenAIs 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
@ -20,11 +20,11 @@ Agents dynamically select the appropriate tool for a given task, using LLMs to a
### 4. 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. Floki also integrates with [Dapr state stores](https://docs.dapr.io/developing-applications/building-blocks/state-management/howto-get-save-state/), enabling scalable and persistent memory for advanced use cases.
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. Dapr Agents also integrates with [Dapr state stores](https://docs.dapr.io/developing-applications/building-blocks/state-management/howto-get-save-state/), enabling scalable and persistent memory for advanced use cases.
### 5. Prompt Flexibility
Floki 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.
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.
### 6. Agent Services
@ -36,11 +36,11 @@ Agents collaborate through [Pub/Sub messaging](https://docs.dapr.io/developing-a
### 8. Workflow Orchestration
Floki supports both deterministic and event-driven workflows to manage multi-agent systems via [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/). Deterministic workflows provide clear, repeatable processes, while event-driven workflows allow for dynamic, adaptive collaboration between agents in centralized or decentralized architectures.
Dapr Agents supports both deterministic and event-driven workflows to manage multi-agent systems via [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/). Deterministic workflows provide clear, repeatable processes, while event-driven workflows allow for dynamic, adaptive collaboration between agents in centralized or decentralized architectures.
## Agent Patterns
In Floki, 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. By embedding these patterns, Floki ensures agents can independently complete tasks without requiring external orchestration.
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. By embedding these patterns, Dapr Agents ensures agents can independently complete tasks without requiring external orchestration.
### Tool Calling
@ -85,7 +85,7 @@ ReAct empowers agents to navigate complex, real-world environments efficiently,
## Workflows for Collaboration
While patterns empower individual agents, workflows enable the coordination of multiple agents to achieve shared goals. In Floki, workflows serve as a higher-level framework for organizing how agents collaborate and distribute tasks.
While patterns empower individual agents, workflows enable the coordination of multiple agents to achieve shared goals. In Dapr Agents, workflows serve as a higher-level framework for organizing how agents collaborate and distribute tasks.
Workflows can orchestrate agents, each equipped with their own built-in patterns, to handle different parts of a larger process. For example, one agent might gather data using tools, another might analyze the results, and a third might generate a report. The workflow manages the communication and sequencing between these agents, ensuring smooth collaboration.

View File

@ -16,7 +16,7 @@ The Arxiv Fetcher simplifies the process of accessing research papers, offering
### Step 1: Install Required Modules
!!! info
The Arxiv Fetcher relies on a [lightweight Python wrapper](https://github.com/lukasschwab/arxiv.py) for the arXiv API, which is not included in the Floki core module. This design choice helps maintain modularity and avoids adding unnecessary dependencies for users who may not require this functionality. To use the Arxiv Fetcher, ensure you install the [library](https://pypi.org/project/arxiv/) separately.
The Arxiv Fetcher relies on a [lightweight Python wrapper](https://github.com/lukasschwab/arxiv.py) for the arXiv API, which is not included in the Dapr Agents core module. This design choice helps maintain modularity and avoids adding unnecessary dependencies for users who may not require this functionality. To use the Arxiv Fetcher, ensure you install the [library](https://pypi.org/project/arxiv/) separately.
```python
pip install arxiv

View File

@ -89,10 +89,10 @@ if not local_pdf_path.exists():
### Step 2: Read the Document
For this example, we use Floki's `PyPDFReader`.
For this example, we use Dapr Agents's `PyPDFReader`.
!!! info
The PyPDF Reader relies on the [pypdf python library](https://pypi.org/project/pypdf/), which is not included in the Floki core module. This design choice helps maintain modularity and avoids adding unnecessary dependencies for users who may not require this functionality. To use the PyPDF Reader, ensure that you install the library separately.
The PyPDF Reader relies on the [pypdf python library](https://pypi.org/project/pypdf/), which is not included in the Dapr Agents core module. This design choice helps maintain modularity and avoids adding unnecessary dependencies for users who may not require this functionality. To use the PyPDF Reader, ensure that you install the library separately.
```python
pip install pypdf

View File

@ -1,6 +1,6 @@
# Installation
## Install Floki
## Install Dapr Agents
!!! info
make sure you have Python already installed. `Python >=3.9`
@ -60,7 +60,7 @@ docker ps
## Enable Redis Insights
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 Floki's agentic workflows. These capabilities enable the following:
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. 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 shared state data among agents.

View File

@ -2,23 +2,23 @@
## 1. Agent-Centric Design
Floki is designed to place agents, powered by LLMs, at the core of task execution and workflow orchestration. This principle emphasizes:
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: Floki enables the creation of agents that leverage LLMs for reasoning, dynamic decision-making, and natural language interactions.
* Adaptive Task Handling: Agents in Floki 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: Flokis framework allows agents to act as modular, reusable building blocks that integrate seamlessly into workflows, whether they operate independently or collaboratively.
* 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 Agentss framework allows agents to act as modular, reusable building blocks that integrate seamlessly into workflows, whether they operate independently or collaboratively.
While Floki 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 Floki to suit diverse needs without being confined to a single approach.
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.
!!! info
Agents are not standalone; they are building blocks in larger, orchestrated workflows.
## 2. Decoupled Infrastructure Design
Floki ensures a clean separation between agents and the underlying infrastructure, emphasizing simplicity, scalability, and adaptability:
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, Floki allows agents to scale independently and adapt seamlessly to new use cases or integrations.
* 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.
!!! info
Decoupling infrastructure keeps agents focused on tasks while enabling seamless scalability and integration across systems.
@ -27,7 +27,7 @@ Floki ensures a clean separation between agents and the underlying infrastructur
## 3. Modular Component Model
Floki utilizes [Dapr's pluggable component framework](https://docs.dapr.io/concepts/components-concept/) and building blocks to simplify development and enhance flexibility:
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.
@ -41,7 +41,7 @@ Floki utilizes [Dapr's pluggable component framework](https://docs.dapr.io/conce
## 4. Actor-Based Model for Agents
Floki leverages [Daprs Virtual Actor model](https://docs.dapr.io/developing-applications/building-blocks/actors/actors-overview/) to enable agents to function efficiently and flexibly within distributed environments. Each agent in Floki is instantiated as an instance of a class, wrapped and managed by a virtual actor. This design offers:
Dapr Agents leverages [Daprs Virtual Actor model](https://docs.dapr.io/developing-applications/building-blocks/actors/actors-overview/) to enable agents to function efficiently and flexibly within distributed environments. Each agent in Dapr Agents is instantiated as an instance of a class, wrapped and managed by a virtual actor. This design offers:
* Stateful Agents: Virtual actors allow agents to store and recall information across tasks, maintaining context and continuity for workflows.
* Dynamic Lifecycle Management: Virtual actors are automatically instantiated when invoked and deactivated when idle. This eliminates the need for explicit creation or cleanup, ensuring resource efficiency and simplicity.
@ -51,31 +51,31 @@ Floki leverages [Daprs Virtual Actor model](https://docs.dapr.io/developing-a
This model ensures agents remain focused on their core logic, while the infrastructure abstracts complexities like state management, fault recovery, and resource optimization.
!!! info
Flokis use of virtual actors makes agents always addressable and highly scalable, enabling them to operate reliably and efficiently in distributed, high-demand environments.
Dapr Agentss use of virtual actors makes agents always addressable and highly scalable, enabling them to operate reliably and efficiently in distributed, high-demand environments.
## 5. Message-Driven Communication
Floki emphasizes the use of Pub/Sub messaging for event-driven communication between agents. This principle ensures:
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.
!!! info
Pub/Sub messaging serves as the backbone for Flokis event-driven workflows, enabling agents to communicate and collaborate in real time.
Pub/Sub messaging serves as the backbone for Dapr Agentss event-driven workflows, enabling agents to communicate and collaborate in real time.
![](../img/home_concepts_principles_message.png)
## 6. Workflow-Oriented Design
Floki embraces workflows as a foundational concept, integrating [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/) to support both deterministic and event-driven task orchestration. This dual approach enables robust and adaptive systems:
Dapr Agents embraces workflows as a foundational concept, integrating [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/) to support both deterministic and event-driven task orchestration. This dual approach enables robust and adaptive systems:
* Deterministic Workflows: Floki 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, Floki supports workflows that adapt to real-time events. This facilitates decentralized, asynchronous collaboration between agents, allowing workflows to dynamically adjust to changing scenarios.
* 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, Floki 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.
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.
!!! info
Floki workflows blend structured, predictable logic with the dynamic responsiveness of event-driven systems, empowering both centralized and decentralized workflows.
Dapr Agents workflows blend structured, predictable logic with the dynamic responsiveness of event-driven systems, empowering both centralized and decentralized workflows.
![](../img/home_concepts_principles_workflows.png)

View File

@ -88,7 +88,7 @@ Key Considerations:
## The Agentic Workflow Service
The Agentic Workflow Service in Floki extends workflows to orchestrate communication among agents. It allows you to send messages to agents to trigger their participation and monitors a shared message bus to listen for all messages being passed. This enables dynamic collaboration and task distribution among agents.
The Agentic Workflow Service in Dapr Agents extends workflows to orchestrate communication among agents. It allows you to send messages to agents to trigger their participation and monitors a shared message bus to listen for all messages being passed. This enables dynamic collaboration and task distribution among agents.
Types of Agentic Workflows:
@ -132,7 +132,7 @@ Unlike `Agents as Services`, the `Agentic Workflow Service` does not require an
* **Max Iterations**: Defines the maximum number of iterations the workflow will perform, ensuring controlled task execution and preventing infinite loops.
* **Workflow State Store Name**: Specifies the state store used to persist the workflows state, allowing for reliable recovery and tracking of workflow progress.
* **LLM Inference Client**: Although an individual agent is not required, the LLM-based Agentic Workflow Service depends on an LLM Inference Client. By default, it uses the [OpenAIChatClient()](https://github.com/dapr-sandbox/dapr-agents/blob/main/src/dapr-agents/llm/openai/chat.py) from the Floki library.
* **LLM Inference Client**: Although an individual agent is not required, the LLM-based Agentic Workflow Service depends on an LLM Inference Client. By default, it uses the [OpenAIChatClient()](https://github.com/dapr-sandbox/dapr-agents/blob/main/src/dapr-agents/llm/openai/chat.py) from the Dapr Agents library.
These differences reflect the distinct purpose of the Agentic Workflow Service, which acts as a centralized orchestrator rather than an individual agent service. The inclusion of the LLM Inference Client in the LLM-based workflows allows the orchestrator to leverage natural language processing for intelligent task routing and decision-making.

View File

@ -1,9 +1,9 @@
# Dapr & Floki Workflows
# Dapr Agents and Workflows
!!! info
This quickstart requires `Dapr CLI` and `Docker`. You must have your [local Dapr environment set up](../installation.md).
[Dapr workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/) provide a solid framework for managing long-running processes and interactions across distributed systems using the Dapr Python SDK. Floki builds on this by introducing tasks, which simplify defining and managing workflows while adding features like tool integrations and LLM-powered reasoning. This approach allows you to start with basic Dapr workflows and expand to more advanced capabilities, such as LLM-driven tasks or multi-agent coordination, as your needs grow.
[Dapr workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/workflow-overview/) provide a solid framework for managing long-running processes and interactions across distributed systems using the Dapr Python SDK. Dapr Agents builds on this by introducing tasks, which simplify defining and managing workflows while adding features like tool integrations and LLM-powered reasoning. This approach allows you to start with basic Dapr workflows and expand to more advanced capabilities, such as LLM-driven tasks or multi-agent coordination, as your needs grow.
## Default Dapr Workflows
@ -100,7 +100,7 @@ dapr run --app-id originalwf --dapr-grpc-port 50001 --resources-path components/
![](../../img/workflows_original_activity.png)
## Dapr Workflow -> Floki Workflows
## Dapr Workflow -> Dapr Agents Workflows
With `Dapr Agents`, the goal was to simplify workflows while adding flexibility and powerful integrations. I wanted to create a way to track the workflow state, including input, output, and status, while also streamlining monitoring. To achieve this, I built additional `workflow` and `activity` wrappers. The workflow wrapper stays mostly the same as Dapr's original, but the activity wrapper has been extended into a `task wrapper`. This change allows tasks to integrate seamlessly with LLM-based prompts and other advanced capabilities.

View File

@ -1,6 +1,6 @@
# Floki Quickstarts
# Dapr Agents Quickstarts
Dive into our Floki quickstarts to explore core features with practical code samples, designed to get you up and running quickly. From setup to hands-on examples, these resources are your first step into the world of Floki.
Dive into our Dapr Agents quickstarts to explore core features with practical code samples, designed to get you up and running quickly. From setup to hands-on examples, these resources are your first step into the world of Dapr Agents.
!!! info
Not all quickstarts require Docker, but it is recommended to have your [local Dapr environment set up](../installation.md) with Docker for the best development experience and to follow the steps in this guide seamlessly.
@ -9,8 +9,8 @@ Dive into our Floki quickstarts to explore core features with practical code sam
| Scenario | Description |
| --- | --- |
| [LLM Inference Client](llm.md) | Learn how to set up and use Floki's LLM Inference Client to interact with language models like OpenAI's `gpt-4o`. This quickstart covers initializing the OpenAIChatClient, managing environment variables, and generating structured responses using Pydantic models. |
| [LLM Inference Client](llm.md) | Learn how to set up and use Dapr Agents's LLM Inference Client to interact with language models like OpenAI's `gpt-4o`. This quickstart covers initializing the OpenAIChatClient, managing environment variables, and generating structured responses using Pydantic models. |
| [LLM-based AI Agents](agents.md) | Discover how to create LLM-based autonomous agents. This quickstart walks you through defining tools with Pydantic schemas, setting up agents with clear roles and goals, and enabling dynamic task execution using OpenAI's Function Calling. |
| [Dapr & Floki Workflows](dapr_workflows.md) | Explore how Floki builds on Dapr workflows to simplify long-running process management. Learn how to define tasks, integrate tools, and add LLM reasoning to extend workflow capabilities. |
| [Dapr & Dapr Agents Workflows](dapr_workflows.md) | Explore how Dapr Agents builds on Dapr workflows to simplify long-running process management. Learn how to define tasks, integrate tools, and add LLM reasoning to extend workflow capabilities. |
| [LLM-based Task Workflows](llm_workflows.md) | Design structured, step-by-step workflows with LLMs providing reasoning at key stages. This quickstart covers task orchestration with Python functions and integrating LLM Inference APIs. |
| [Event-Driven Agentic Workflows](agentic_workflows.md) | Leverage event-driven systems with pub/sub messaging to enable agents to collaborate dynamically. This quickstart demonstrates setting up workflows for decentralized, real-time agent interaction. |

View File

@ -5,7 +5,7 @@
In `Dapr Agents`, LLM-based Task Workflows allow developers to design step-by-step workflows where LLMs provide reasoning and decision-making at defined stages. These workflows are deterministic and structured, enabling the execution of tasks in a specific order, often defined by Python functions. This approach does not rely on event-driven systems or pub/sub messaging but focuses on defining and orchestrating tasks with the help of LLM reasoning when necessary. Ideal for scenarios that require a predefined flow of tasks enhanced by language model insights.
Now that we have a better understanding of `Dapr` and `Dapr Agents` workflows, lets explore how to use Dapr activities or Floki tasks to call LLM Inference APIs, such as [OpenAI Tex Generation endpoint](https://platform.openai.com/docs/guides/text-generation), with models like `gpt-4o`.
Now that we have a better understanding of `Dapr` and `Dapr Agents` workflows, lets explore how to use Dapr activities or Dapr Agents tasks to call LLM Inference APIs, such as [OpenAI Tex Generation endpoint](https://platform.openai.com/docs/guides/text-generation), with models like `gpt-4o`.
## Dapr Workflows & LLM Inference APIs
@ -100,7 +100,7 @@ dapr run --app-id originalllmwf --dapr-grpc-port 50001 --resources-path componen
![](../../img/workflows_originial_llm_request.png)
## Floki LLM-based Tasks
## Dapr Agents LLM-based Tasks
Now, lets get to the exciting part! `Tasks` in `Dapr Agents` build on the concept of `activities` and bring additional flexibility. Using Python function signatures, you can define tasks with ease. The `task decorator` allows you to provide a `description` parameter, which acts as a prompt for the default LLM inference client in `Dapr Agents` (`OpenAIChatClient` by default).

View File

@ -1,6 +1,6 @@
# Why Floki
# Why Dapr Agents
Floki is an open-source framework for building and orchestrating LLM-based autonomous agents, designed to simplify the complexity of creating scalable agentic workflows and microservices. Inspired by the growing need for frameworks that integrate seamlessly with distributed systems, Floki enables developers to focus on designing intelligent agents without getting bogged down by infrastructure concerns.
Dapr Agents is an open-source framework for building and orchestrating LLM-based autonomous agents, designed to simplify the complexity of creating scalable agentic workflows and microservices. Inspired by the growing need for frameworks that integrate seamlessly with distributed systems, Dapr Agents enables developers to focus on designing intelligent agents without getting bogged down by infrastructure concerns.
## The Problem
@ -8,18 +8,12 @@ Many agentic frameworks today attempt to redefine how microservices are built an
Rather than building on existing solutions that are proven to handle these challenges at scale, many frameworks require developers to adopt entirely new paradigms or recreate foundational infrastructure. This added complexity often diverts focus from the primary goal: designing and implementing intelligent, effective agents.
## Floki's Approach
## Dapr Agents's Approach
Floki takes a distinct approach by building on [Dapr](https://dapr.io/), a portable and event-driven runtime optimized for distributed systems. Dapr offers built-in APIs and patterns such as state management, Pub/Sub messaging, service invocation, and virtual actors—that eliminate the need to recreate foundational components from scratch. By integrating seamlessly with Dapr, Floki empowers developers to focus on the intelligence and behavior of LLM-powered agents while leveraging a proven framework for scalability and reliability.
Dapr Agents takes a distinct approach by building on [Dapr](https://dapr.io/), a portable and event-driven runtime optimized for distributed systems. Dapr offers built-in APIs and patterns such as state management, Pub/Sub messaging, service invocation, and virtual actors—that eliminate the need to recreate foundational components from scratch. By integrating seamlessly with Dapr, Dapr Agents empowers developers to focus on the intelligence and behavior of LLM-powered agents while leveraging a proven framework for scalability and reliability.
Rather than reinventing microservices, Floki enables developers to design, test, and deploy agents that seamlessly integrate as collaborative services within larger systems. Whether experimenting with a single agent or orchestrating workflows involving multiple agents, Floki simplifies the exploration and implementation of scalable agentic workflows.
Rather than reinventing microservices, Dapr Agents enables developers to design, test, and deploy agents that seamlessly integrate as collaborative services within larger systems. Whether experimenting with a single agent or orchestrating workflows involving multiple agents, Dapr Agents simplifies the exploration and implementation of scalable agentic workflows.
## Conclusion
Floki provides a unified framework for designing, deploying, and orchestrating LLM-powered agents. By leveraging Daprs runtime and modular components, Floki allows developers to focus on building intelligent systems without worrying about the complexities of distributed infrastructure. Whether you're creating standalone agents or orchestrating multi-agent workflows, Floki empowers you to explore the future of intelligent, scalable, and collaborative systems.
## Why the Name Floki?
The name `Dapr Agents` is inspired by both history and fiction. Historically, [Floki Vilgerðarson](https://en.wikipedia.org/wiki/Hrafna-Fl%C3%B3ki_Vilger%C3%B0arson) is known in Norse sagas as the first Norseman to journey to Iceland, embodying a spirit of discovery. In the [Vikings series](https://en.wikipedia.org/wiki/Vikings_(2013_TV_series)), Floki is portrayed as a skilled boat builder, creating vessels that allowed his people to explore and achieve their goals.
In the same way, this framework equips developers with the tools to build, prototype, and deploy their own agents or fleets of agents, enabling them to experiment and explore the potential of LLM-based workflows.
Dapr Agents provides a unified framework for designing, deploying, and orchestrating LLM-powered agents. By leveraging Daprs runtime and modular components, Dapr Agents allows developers to focus on building intelligent systems without worrying about the complexities of distributed infrastructure. Whether you're creating standalone agents or orchestrating multi-agent workflows, Dapr Agents empowers you to explore the future of intelligent, scalable, and collaborative systems.

View File

@ -1,4 +1,4 @@
# Floki: Agentic Workflows Made Simple
# Dapr Agents: Agentic Workflows Made Simple
[![pypi](https://img.shields.io/pypi/v/floki-ai.svg)](https://pypi.python.org/pypi/floki-ai)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/floki-ai)](https://pypi.org/project/floki-ai/)
@ -7,18 +7,18 @@
![](logo-workflows.png)
Floki is an open-source framework for researchers and developers to experiment with LLM-based autonomous agents. It provides tools to create, orchestrate, and manage agents while seamlessly connecting to LLM inference APIs. Built on Dapr, Floki leverages a unified programming model that simplifies microservices and supports both deterministic workflows and event-driven interactions. Using Daprs Virtual Actor pattern, Floki enables agents to function as independent, self-contained units that process messages sequentially, eliminating concurrency concerns while seamlessly integrating into larger workflows. It also facilitates agent collaboration through Daprs Pub/Sub integration, where agents communicate via a shared message bus, simplifying the design of workflows where tasks are distributed efficiently, and agents work together to achieve shared goals. By bringing together these features, Floki provides a powerful way to explore agentic workflows and the components that enable multi-agent systems to collaborate and scale, all powered by Dapr.
Dapr Agents is an open-source framework for researchers and developers to experiment with LLM-based autonomous agents. It provides tools to create, orchestrate, and manage agents while seamlessly connecting to LLM inference APIs. Built on Dapr, Dapr Agents leverages a unified programming model that simplifies microservices and supports both deterministic workflows and event-driven interactions. Using Daprs Virtual Actor pattern, Dapr Agents enables agents to function as independent, self-contained units that process messages sequentially, eliminating concurrency concerns while seamlessly integrating into larger workflows. It also facilitates agent collaboration through Daprs Pub/Sub integration, where agents communicate via a shared message bus, simplifying the design of workflows where tasks are distributed efficiently, and agents work together to achieve shared goals. By bringing together these features, Dapr Agents provides a powerful way to explore agentic workflows and the components that enable multi-agent systems to collaborate and scale, all powered by Dapr.
## Why Dapr 🎩?
Dapr provides Floki with a unified programming model that simplifies the development of resilient and scalable systems by offering built-in APIs for features such as service invocation, Pub/Sub messaging, workflows, and even state management. These components, essential for defining agentic workflows, allow developers to focus on designing agents and workflows rather than rebuilding foundational features. By leveraging Daprs sidecar architecture and portable, event-driven runtime, Floki also enables agents to collaborate effectively, share tasks, and adapt dynamically across cloud and edge environments. This seamless integration brings together deterministic workflows and LLM-based decision-making into a unified system, making it easier to experiment with multi-agent systems and scalable agentic workflows.
Dapr provides Dapr Agents with a unified programming model that simplifies the development of resilient and scalable systems by offering built-in APIs for features such as service invocation, Pub/Sub messaging, workflows, and even state management. These components, essential for defining agentic workflows, allow developers to focus on designing agents and workflows rather than rebuilding foundational features. By leveraging Daprs sidecar architecture and portable, event-driven runtime, Dapr Agents also enables agents to collaborate effectively, share tasks, and adapt dynamically across cloud and edge environments. This seamless integration brings together deterministic workflows and LLM-based decision-making into a unified system, making it easier to experiment with multi-agent systems and scalable agentic workflows.
### Key Dapr Features in Floki:
### Key Dapr Features in Dapr Agents:
* 🎯 **Service-to-Service Invocation**: Facilitates direct communication between agents with built-in service discovery, error handling, and distributed tracing. Agents can leverage this for synchronous messaging in multi-agent workflows.
* ⚡️ **Publish and Subscribe**: Supports loosely coupled collaboration between agents through a shared message bus. This enables real-time, event-driven interactions critical for task distribution and coordination.
* 🔄 **Workflow API**: Defines long-running, persistent workflows that combine deterministic processes with LLM-based decision-making. Floki uses this to orchestrate complex multi-step agentic workflows seamlessly.
* 🔄 **Workflow API**: Defines long-running, persistent workflows that combine deterministic processes with LLM-based decision-making. Dapr Agents uses this to orchestrate complex multi-step agentic workflows seamlessly.
* 🧠 **State Management**: Provides a flexible key-value store for agents to retain context across interactions, ensuring continuity and adaptability during workflows.
* 🤖 **Actors**: Implements the Virtual Actor pattern, allowing agents to operate as self-contained, stateful units that handle messages sequentially. This eliminates concurrency concerns and enhances scalability in Floki's agent systems.
* 🤖 **Actors**: Implements the Virtual Actor pattern, allowing agents to operate as self-contained, stateful units that handle messages sequentially. This eliminates concurrency concerns and enhances scalability in Dapr Agents's agent systems.
## Getting Started
@ -36,7 +36,7 @@ Dapr provides Floki with a unified programming model that simplifies the develop
---
Build your first agent and design a custom workflow to get started with Floki.
Build your first agent and design a custom workflow to get started with Dapr Agents.
[:octicons-arrow-right-24: Quickstarts](home/quickstarts/index.md)
@ -44,16 +44,8 @@ Dapr provides Floki with a unified programming model that simplifies the develop
---
Learn more about Floki and its main components!
Learn more about Dapr Agents and its main components!
[:octicons-arrow-right-24: Concepts](concepts/agents.md)
- :material-scale-balance:{ .lg .middle } __Open Source, MIT__
---
Floki is licensed under MIT and available on [GitHub]
[:octicons-arrow-right-24: License](https://github.com/dapr-sandbox/dapr-agents/blob/main/LICENSE)
</div>