{"id":23625,"date":"2025-02-13T14:04:48","date_gmt":"2025-02-13T13:04:48","guid":{"rendered":"https:\/\/whiteduck.de\/?p=23625"},"modified":"2025-04-15T17:50:58","modified_gmt":"2025-04-15T15:50:58","slug":"flock-our-new-open-source-ai-agent-framework","status":"publish","type":"post","link":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/","title":{"rendered":"Flock &#8211; Our new open-source AI Agent Framework"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><\/div><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1170px + 0px );margin-left: calc(-0px \/ 2 );margin-right: calc(-0px \/ 2 );\"><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;width:100%;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-one\" style=\"--awb-margin-top-small:0px;--awb-margin-right-small:0px;--awb-margin-bottom-small:20px;--awb-margin-left-small:0px;\"><h1 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:32;line-height:1.31;\"><\/p>\n<p>Flock &#8211; Our new open-source AI Agent Framework<\/p>\n<p><\/h1><\/div><div class=\"fusion-text fusion-text-1\"><\/div><\/p>\n\n\n<p><a href=\"https:\/\/github.com\/whiteducksoftware\/flock\" target=\"_blank\" rel=\"noreferrer noopener\">Flock<\/a> is a framework for orchestrating LLM-powered agents. It leverages a&nbsp;<strong>declarative approach<\/strong>&nbsp;where you simply specify what each agent needs as input and what it produces as output\u2014without having to write lengthy, brittle prompts. Under the hood, Flock transforms these declarations into robust workflows, using cutting-edge components such as <a href=\"https:\/\/github.com\/temporalio\/temporal\" target=\"_blank\" rel=\"noreferrer noopener\">Temporal<\/a> and <a href=\"https:\/\/github.com\/stanfordnlp\/dspy\" target=\"_blank\" rel=\"noreferrer noopener\">DSPy<\/a> to handle fault tolerance, state management, and error recovery.<\/p>\n\n\n\n<p>We chose &#8220;Flock&#8221; (English for &#8220;a group of birds&#8221;) because it beautifully encapsulates the essence of AI agent orchestration, much like how a group of birds seamlessly collaborates in flight. We decided on ducks because we love them and they perfectly symbolize the unity and coordination we aim to achieve.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-1024x768.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-1024x768.png\" alt=\"\" class=\"lazyload wp-image-23648\" style=\"width:700px\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27768%27%20viewBox%3D%270%200%201024%20768%27%3E%3Crect%20width%3D%271024%27%20height%3D%27768%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-200x150.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-300x225.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-400x300.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-600x450.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-768x576.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-800x600.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px-1024x768.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock1200x900px.png 1200w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Flock \u2013 AI Agent Framework<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Contents<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#why-we-build-flock\">Why we built Flock<\/a><\/li>\n\n\n\n<li><a href=\"#declaritve-agents\">A Different Approach: Declarative AI Agents<\/a><\/li>\n\n\n\n<li><a href=\"#power-of-callables\">The Power of Callables&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"#platform\">Platform out of the box<\/a><\/li>\n\n\n\n<li><a href=\"#getting-started\">Get started &amp; join the flock!<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-we-build-flock\">Why we built Flock<\/h2>\n\n\n\n<p>We embarked on Flock\u2019s journey some time ago, driven by the need for a more capable and flexible AI agent framework. Existing solutions on the market did not fully meet our requirements for comprehensive AI agent development. Faced with these constraints, we decided to build something new that aligns perfectly with our aspirations. Today, while other AI agent frameworks are evolving, we still see room for improvement.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Traditional AI Agent Frameworks \ud83d\ude43<\/th><th>Flock \ud83d\udc24\ud83d\udc27\ud83d\udc13\ud83e\udd86<\/th><\/tr><\/thead><tbody><tr><td>\ud83e\udd16&nbsp;<strong>Complex Prompt Engineering<\/strong><\/td><td>\ud83d\udcdd&nbsp;<strong>Declarative AI Agent Definitions<\/strong><\/td><\/tr><tr><td>\u2022 Lengthy, brittle prompts<\/td><td>\u2022 Clear, concise input\/output declarations<\/td><\/tr><tr><td>\u2022 Hard-to-tune and adapt<\/td><td>\u2022 No need for manual prompt engineering<\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td>\ud83d\udca5&nbsp;<strong>Fragile Execution<\/strong><\/td><td>\u26a1&nbsp;<strong>Robust &amp; Scalable<\/strong><\/td><\/tr><tr><td>\u2022 Single failure can break the system<\/td><td>\u2022 Fault-tolerant with built-in retries and error handling<\/td><\/tr><tr><td>\u2022 Difficult to monitor and recover<\/td><td>\u2022 Automatic recovery via Temporal workflow integration<\/td><\/tr><tr><td><\/td><td><\/td><\/tr><tr><td>\ud83c\udfd7\ufe0f&nbsp;<strong>Rigid Workflows<\/strong><\/td><td>\ud83d\udd04&nbsp;<strong>Flexible Orchestration<\/strong><\/td><\/tr><tr><td>\u2022 Limited adaptability<\/td><td>\u2022 Dynamic agent chaining and hand-offs<\/td><\/tr><tr><td>\u2022 Hard to scale and parallelize<\/td><td>\u2022 Modular, concurrent, and batch processing<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"declaritve-agents\">A Different Approach: Declarative AI Agents<\/h2>\n\n\n\n<p>Flock takes a fundamentally different approach. Instead of fighting against the non-deterministic nature of LLMs, we&#8217;ve built a framework that embraces it while providing the engineering guardrails necessary for production systems.<\/p>\n\n\n\n<p>At the core of Flock is the&nbsp;<code>FlockAgent<\/code>, a declarative base class that represents a radical departure from traditional prompt-based or state machine-based approaches:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>agent = FlockAgent(\n    name=\"content_analyzer\",\n    input=\"url: str | The webpage to analyze\",\n    output=\"title: str, headings: list&#091;str], type: Literal&#091;'news', 'blog']\",\n    tools=&#091;web_content_scraper],\n    use_cache=True\n)<\/code><\/pre>\n\n\n\n<p>This declarative approach provides several immediate benefits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automatic Caching<\/strong>: Expensive operations (like web scraping) can be cached automatically<\/li>\n\n\n\n<li><strong>Type Safety<\/strong>: By leveraging Python&#8217;s type hints and Pydantic, we get automatic validation at system boundaries<\/li>\n\n\n\n<li><strong>Clear Contracts<\/strong>: Input and output specifications serve both as documentation and runtime constraints<\/li>\n\n\n\n<li><strong>Tool Integration<\/strong>: External capabilities can be cleanly integrated without breaking the AI agent paradigm<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"power-of-callables\">The Power of Callables&nbsp;<\/h2>\n\n\n\n<p>One of Flock&#8217;s key innovations is making almost every aspect of an agent configurable through callables. From the implementation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class FlockAgent(BaseModel, ABC):\n    description: str | Callable&#091;..., str] = Field(\n        \"\", description=\"A human-readable description of the agent.\"\n    )\n    input: str | Callable&#091;..., str] | None = Field(\n        None,\n        description=\"A comma-separated list of input keys...\"\n    )\n    output: str | Callable&#091;..., str] | None = Field(\n        None,\n        description=\"A comma-separated list of output keys...\"\n    )<\/code><\/pre>\n\n\n\n<p>This isn&#8217;t just flexibility for flexibility&#8217;s sake. It enables:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dynamic runtime adaptation based on context<\/li>\n\n\n\n<li>Clean handling of edge cases<\/li>\n\n\n\n<li>Complex logic that remains testable<\/li>\n\n\n\n<li>Clear separation of concerns<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"platform\">Platform out of the box<\/h2>\n\n\n\n<p>Looking at Flock&#8217;s implementation reveals a serious commitment to providing a complete platform for managing agents:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lifecycle Management<\/h3>\n\n\n\n<p>Each agent has clear lifecycle hooks for initialization, evaluation, termination, and error handling. This makes it easy to manage resources, implement logging, and handle failures gracefully:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async def run(self, inputs: dict&#091;str, Any]) -&gt; dict&#091;str, Any]:\n    try:\n        await self.initialize(inputs)\n        result = await self.evaluate(inputs)\n        await self.terminate(inputs, result)\n        return result\n    except Exception as run_error:\n        await self.on_error(run_error, inputs)\n        raise<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Observability<\/h3>\n\n\n\n<p>Built-in OpenTelemetry integration provides production-grade observability out of the box:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>with tracer.start_as_current_span(\"agent.evaluate\") as span:\n    span.set_attribute(\"agent.name\", self.name)\n    span.set_attribute(\"inputs\", str(inputs))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Temporal Support<\/h3>\n\n\n\n<p>Flock includes native support for Temporal workflows enabling robust distributed execution:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async def run_temporal(self, inputs: dict&#091;str, Any]) -&gt; dict&#091;str, Any]:\n    client = await Client.connect(\"localhost:7233\", namespace=\"default\")\n    agent_data = self.to_dict()\n    return await run_activity(\n        client,\n        self.name,\n        run_flock_agent_activity,\n        {\"agent_data\": agent_data, \"inputs\": inputs_data},\n    )<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Serialization<\/h3>\n\n\n\n<p>Robust serialization support ensures agents can be safely persisted and transmitted:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def to_dict(self) -&gt; dict&#091;str, Any]:\n    def convert_callable(obj: Any) -&gt; Any:\n        if callable(obj) and not isinstance(obj, type):\n            return cloudpickle.dumps(obj).hex()\n        # ... recursive handling of complex structures<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"getting-started\">Get started &amp; join the flock!<\/h2>\n\n\n\n<p>Getting started with Flock is easy! Visit our <a href=\"https:\/\/github.com\/whiteducksoftware\/flock\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Repository<\/a> for detailed setup instructions, quick start guides, and a <a href=\"https:\/\/github.com\/whiteducksoftware\/flock-showcase\" target=\"_blank\" rel=\"noreferrer noopener\">variety of examples<\/a> for different use cases. Whether you&#8217;re new to AI agents or an experienced pro, our resources will help you build, run, and manage your AI agents effortlessly.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1140\" style=\"aspect-ratio: 2004 \/ 1140;\" width=\"2004\" controls src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/flock_3min_all.mp4\"><\/video><\/figure>\n\n\n\n<p>Join the flock and be part of something special! We created this project out of a passion for making AI agent development accessible and effective for all. As an open-source initiative, Flock embodies our belief in collaboration and community-driven progress. We invite you to contribute, offer feedback, and share your ideas. Your input can help shape the future of Flock. While we&#8217;re still in the early stages of development, we have exciting plans. The possibilities are endless, and the future is bright. Come, be a part of our growing community, and help us take Flock to new heights!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flock is a framework for orchestrating LLM-powered agents. It leverages a&nbsp;declarative approach&nbsp;where you simply specify what each agent needs as input and what it produces as output\u2014without having to write lengthy, brittle prompts. Under the hood, Flock transforms these declarations into robust workflows, using cutting-edge components such as Temporal and DSPy to handle fault tolerance, <a href=\"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/\"> <\/p>\n<div style=\"color:#ff9900\">[&#8230;]<\/div>\n<p><\/a><\/p>\n","protected":false},"author":12,"featured_media":23645,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_tribe_events_control_status":"","_tribe_events_control_status_canceled_reason":"","_tribe_events_control_status_postponed_reason":"","_tribe_events_control_online":"","_tribe_events_control_online_url":"","footnotes":""},"categories":[578],"tags":[657,570,437,656,658],"class_list":["post-23625","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","tag-agents","tag-ai","tag-cloud-native","tag-flock","tag-open-source-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Flock - Our new open-source AI Agent Framework - white duck<\/title>\n<meta name=\"description\" content=\"Flock is a open-source framework for orchestrating AI agent with a declarative prompting approach.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flock - Our new open-source AI Agent Framework - white duck\" \/>\n<meta property=\"og:description\" content=\"Flock is a open-source framework for orchestrating AI agent with a declarative prompting approach.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"white duck\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/whiteduckgmbh\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-13T13:04:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-15T15:50:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock-BlogHeader-2560x1702px-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"710\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andre Ratzenberger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:site\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andre Ratzenberger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/\"},\"author\":{\"name\":\"Andre Ratzenberger\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/1ff4294a4395f9ce7eb24636fbf34294\"},\"headline\":\"Flock &#8211; Our new open-source AI Agent Framework\",\"datePublished\":\"2025-02-13T13:04:48+00:00\",\"dateModified\":\"2025-04-15T15:50:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/\"},\"wordCount\":962,\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/DB-WD-Flock-BlogHeader-2560x1702px-1.png\",\"keywords\":[\"Agents\",\"AI\",\"Cloud Native\",\"Flock\",\"Open-Source\"],\"articleSection\":[\"AI\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/\",\"name\":\"Flock - Our new open-source AI Agent Framework - white duck\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/DB-WD-Flock-BlogHeader-2560x1702px-1.png\",\"datePublished\":\"2025-02-13T13:04:48+00:00\",\"dateModified\":\"2025-04-15T15:50:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/1ff4294a4395f9ce7eb24636fbf34294\"},\"description\":\"Flock is a open-source framework for orchestrating AI agent with a declarative prompting approach.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#primaryimage\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/DB-WD-Flock-BlogHeader-2560x1702px-1.png\",\"contentUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/DB-WD-Flock-BlogHeader-2560x1702px-1.png\",\"width\":2560,\"height\":710,\"caption\":\"Flock Blog header\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/flock-our-new-open-source-ai-agent-framework\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flock &#8211; Our new open-source AI Agent Framework\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\",\"name\":\"white duck\",\"description\":\"Your Partner for Microsoft Azure &amp; AI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/1ff4294a4395f9ce7eb24636fbf34294\",\"name\":\"Andre Ratzenberger\",\"sameAs\":[\"https:\\\/\\\/whiteduck.de\\\/\"],\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/author\\\/andre-ratzenberger\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Flock - Our new open-source AI Agent Framework - white duck","description":"Flock is a open-source framework for orchestrating AI agent with a declarative prompting approach.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/","og_locale":"en_US","og_type":"article","og_title":"Flock - Our new open-source AI Agent Framework - white duck","og_description":"Flock is a open-source framework for orchestrating AI agent with a declarative prompting approach.","og_url":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/","og_site_name":"white duck","article_publisher":"https:\/\/www.facebook.com\/whiteduckgmbh","article_published_time":"2025-02-13T13:04:48+00:00","article_modified_time":"2025-04-15T15:50:58+00:00","og_image":[{"width":2560,"height":710,"url":"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock-BlogHeader-2560x1702px-1.png","type":"image\/png"}],"author":"Andre Ratzenberger","twitter_card":"summary_large_image","twitter_creator":"@whiteduck_gmbh","twitter_site":"@whiteduck_gmbh","twitter_misc":{"Written by":"Andre Ratzenberger","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#article","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/"},"author":{"name":"Andre Ratzenberger","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/1ff4294a4395f9ce7eb24636fbf34294"},"headline":"Flock &#8211; Our new open-source AI Agent Framework","datePublished":"2025-02-13T13:04:48+00:00","dateModified":"2025-04-15T15:50:58+00:00","mainEntityOfPage":{"@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/"},"wordCount":962,"image":{"@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock-BlogHeader-2560x1702px-1.png","keywords":["Agents","AI","Cloud Native","Flock","Open-Source"],"articleSection":["AI"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/","url":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/","name":"Flock - Our new open-source AI Agent Framework - white duck","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#primaryimage"},"image":{"@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock-BlogHeader-2560x1702px-1.png","datePublished":"2025-02-13T13:04:48+00:00","dateModified":"2025-04-15T15:50:58+00:00","author":{"@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/1ff4294a4395f9ce7eb24636fbf34294"},"description":"Flock is a open-source framework for orchestrating AI agent with a declarative prompting approach.","breadcrumb":{"@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#primaryimage","url":"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock-BlogHeader-2560x1702px-1.png","contentUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/DB-WD-Flock-BlogHeader-2560x1702px-1.png","width":2560,"height":710,"caption":"Flock Blog header"},{"@type":"BreadcrumbList","@id":"https:\/\/whiteduck.de\/en\/flock-our-new-open-source-ai-agent-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/whiteduck.de\/en\/"},{"@type":"ListItem","position":2,"name":"Flock &#8211; Our new open-source AI Agent Framework"}]},{"@type":"WebSite","@id":"https:\/\/whiteduck.de\/en\/#website","url":"https:\/\/whiteduck.de\/en\/","name":"white duck","description":"Your Partner for Microsoft Azure &amp; AI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whiteduck.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/1ff4294a4395f9ce7eb24636fbf34294","name":"Andre Ratzenberger","sameAs":["https:\/\/whiteduck.de\/"],"url":"https:\/\/whiteduck.de\/en\/author\/andre-ratzenberger\/"}]}},"_links":{"self":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/23625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/comments?post=23625"}],"version-history":[{"count":0,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/23625\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media\/23645"}],"wp:attachment":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media?parent=23625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/categories?post=23625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/tags?post=23625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}