flock-core 0.5.0b7__py3-none-any.whl → 0.5.0b9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of flock-core might be problematic. Click here for more details.

@@ -0,0 +1,271 @@
1
+ Metadata-Version: 2.4
2
+ Name: flock-core
3
+ Version: 0.5.0b9
4
+ Summary: Declarative LLM Orchestration at Scale
5
+ Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
+ License-File: LICENSE
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python :: 3
10
+ Requires-Python: >=3.10
11
+ Requires-Dist: aiosqlite>=0.21.0
12
+ Requires-Dist: azure-data-tables>=12.7.0
13
+ Requires-Dist: chromadb>=0.6.3
14
+ Requires-Dist: cloudpickle>=3.1.1
15
+ Requires-Dist: croniter>=6.0.0
16
+ Requires-Dist: datasets>=3.2.0
17
+ Requires-Dist: devtools>=0.12.2
18
+ Requires-Dist: dspy==2.6.23
19
+ Requires-Dist: fastapi>=0.115.8
20
+ Requires-Dist: httpx>=0.28.1
21
+ Requires-Dist: litellm==1.69.3
22
+ Requires-Dist: loguru>=0.7.3
23
+ Requires-Dist: markdown2>=2.5.3
24
+ Requires-Dist: mcp>=1.7.1
25
+ Requires-Dist: msgpack>=1.1.0
26
+ Requires-Dist: neo4j>=5.28.1
27
+ Requires-Dist: openai==1.75.0
28
+ Requires-Dist: opentelemetry-api>=1.30.0
29
+ Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
30
+ Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
31
+ Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
32
+ Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
33
+ Requires-Dist: opentelemetry-sdk>=1.30.0
34
+ Requires-Dist: opik>=1.7.26
35
+ Requires-Dist: pandas>=2.2.3
36
+ Requires-Dist: pillow>=10.4.0
37
+ Requires-Dist: prometheus-client>=0.21.1
38
+ Requires-Dist: psutil>=6.1.1
39
+ Requires-Dist: pydantic-settings>=2.7.1
40
+ Requires-Dist: pydantic==2.10.5
41
+ Requires-Dist: python-box>=7.3.2
42
+ Requires-Dist: python-decouple>=3.8
43
+ Requires-Dist: python-dotenv>=1.0.1
44
+ Requires-Dist: pyyaml>=6.0
45
+ Requires-Dist: questionary>=2.1.0
46
+ Requires-Dist: rich>=13.9.4
47
+ Requires-Dist: rouge-score>=0.1.2
48
+ Requires-Dist: sentence-transformers>=3.4.1
49
+ Requires-Dist: temporalio>=1.9.0
50
+ Requires-Dist: thefuzz>=0.22.1
51
+ Requires-Dist: tiktoken>=0.8.0
52
+ Requires-Dist: toml>=0.10.2
53
+ Requires-Dist: tqdm>=4.60.1
54
+ Requires-Dist: uvicorn>=0.34.0
55
+ Requires-Dist: wd-di>=0.2.14
56
+ Requires-Dist: websockets>=15.0.1
57
+ Provides-Extra: memory
58
+ Requires-Dist: matplotlib>=3.10.0; extra == 'memory'
59
+ Requires-Dist: mem0ai[graph]>=0.1.101; extra == 'memory'
60
+ Requires-Dist: zep-python>=2.0.2; extra == 'memory'
61
+ Description-Content-Type: text/markdown
62
+
63
+ <p align="center">
64
+ <!-- Placeholder for your Flock Logo/Banner - Replace URL -->
65
+ <img alt="Flock Banner" src="https://raw.githubusercontent.com/whiteducksoftware/flock/master/docs/assets/images/flock.png" width="600">
66
+ </p>
67
+ <p align="center">
68
+ <!-- Update badges -->
69
+ <a href="https://pypi.org/project/flock-core/" target="_blank"><img alt="PyPI Version" src="https://img.shields.io/pypi/v/flock-core?style=for-the-badge&logo=pypi&label=pip%20version"></a>
70
+ <img alt="Python Version" src="https://img.shields.io/badge/python-3.10%2B-blue?style=for-the-badge&logo=python">
71
+ <a href="https://github.com/whiteducksoftware/flock/actions/workflows/deploy-whiteduck-pypi.yml" target="_blank"><img alt="CI Status" src="https://img.shields.io/github/actions/workflow/status/whiteducksoftware/flock/deploy-whiteduck-pypi.yml?branch=master&style=for-the-badge&logo=githubactions&logoColor=white"></a>
72
+ <a href="https://github.com/whiteducksoftware/flock/blob/master/LICENSE" target="_blank"><img alt="License" src="https://img.shields.io/pypi/l/flock-core?style=for-the-badge"></a>
73
+ <a href="https://whiteduck.de" target="_blank"><img alt="Built by white duck" src="https://img.shields.io/badge/Built%20by-white%20duck%20GmbH-white?style=for-the-badge&labelColor=black"></a>
74
+ <a href="https://www.linkedin.com/company/whiteduck" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white&label=whiteduck"></a>
75
+ <a href="https://bsky.app/profile/whiteduck-gmbh.bsky.social" target="_blank"><img alt="Bluesky" src="https://img.shields.io/badge/bluesky-Follow-blue?style=for-the-badge&logo=bluesky&logoColor=%23fff&color=%23333&labelColor=%230285FF&label=whiteduck-gmbh"></a>
76
+ </p>
77
+
78
+
79
+ ---
80
+
81
+
82
+ ## The Problem You Know Too Well
83
+
84
+ 🤯 **Prompt Hell**: Brittle 500-line prompts that break with every model update.
85
+ 💥 **System Failures**: One bad LLM response crashes your entire workflow
86
+ 🧪 **Testing Nightmares**: "How do I unit test a prompt?" (You don't.)
87
+ 🧪 **Measuring Quality**: "How do I know my prompts are close to optimal?" (You also don't.)
88
+ 📄 **Output Chaos**: Parsing unstructured LLM responses into reliable data
89
+ ⛓️ **Orchestration Limits**: Moving beyond simple chains and DAGs? Good luck
90
+ 🚀 **Production Gap**: Jupyter notebooks don't scale to enterprise systems
91
+
92
+ *After building dozens of AI systems for enterprise clients, we realized the tooling was fundamentally broken.*
93
+
94
+
95
+ **Build with agents, not against them.**
96
+
97
+
98
+ ## The Flock Solution
99
+
100
+ **What if you could just skip that 'prompt engineering' step?**
101
+
102
+ Flock is an agent framework for declarative AI workflows. You define what goes in and what should come out, the how is handled by the agent.
103
+ No brittle prompts. No guesswork. Just reliable, testable AI agents.
104
+
105
+
106
+ ✅ **Declarative Contracts**: Define inputs/outputs with Pydantic models. Flock handles the LLM complexity.
107
+ ⚡ **Built-in Resilience**: Automatic retries, state persistence, and workflow resumption via Temporal.io
108
+ 🧪 **Actually Testable**: Clear contracts make agents unit-testable like any other code
109
+ 🧪 **Optimal Quality**: Agents posses multiple self-optimization algorithms based on latest research
110
+ 🚀 **Dynamic Workflows**: Self-correcting loops, conditional routing, and intelligent decision-making
111
+ 🔧 **Zero-Config Production**: Deploy as REST APIs with one command. Scale without rewriting.
112
+
113
+ **Ready to see it in action?**
114
+
115
+ ## ⚡ Quick Start
116
+
117
+ ```python
118
+ from flock.core import Flock, FlockFactory
119
+
120
+ # 1. Create the main orchestrator
121
+ my_flock = Flock(model="openai/gpt-4.1")
122
+
123
+ # 2. Declaratively define an agent
124
+ brainstorm_agent = FlockFactory.create_default_agent(
125
+ name="idea_generator",
126
+ input="topic",
127
+ output="catchy_title, key_points"
128
+ )
129
+
130
+ # 3. Add the agent to the Flock
131
+ my_flock.add_agent(brainstorm_agent)
132
+
133
+ # 4. Run the agent!
134
+ input_data = {"topic": "The future of AI agents"}
135
+ result = my_flock.run(start_agent="idea_generator", input=input_data)
136
+
137
+ # The result is a Box object (dot-accessible dict)
138
+ print(f"Generated Title: {result.catchy_title}")
139
+ print(f"Key Points: {result.key_points}")
140
+ ```
141
+
142
+ **No 20-line prompt fiddling. Just structured output, every time.**
143
+
144
+ ![image](https://github.com/user-attachments/assets/37a897cb-910f-49fc-89d4-510a780ad775)
145
+
146
+ **Explore more examples →** [**Flock Showcase Repository**](https://github.com/whiteducksoftware/flock-showcase)
147
+
148
+
149
+
150
+ ## 💾 Installation - Use Flock in your project
151
+
152
+ Get started with the core Flock library:
153
+
154
+ ```bash
155
+ # Using uv (recommended)
156
+ uv pip install flock-core
157
+
158
+ # Using pip
159
+ pip install flock-core
160
+ ```
161
+
162
+ Extras: Install optional dependencies for specific features:
163
+
164
+ ```bash
165
+ # Flock tools and mcp server
166
+ uv pip install flock-mcp
167
+ ```
168
+
169
+ ## 🔑 Installation - Develop Flock
170
+
171
+ ```bash
172
+ git clone https://github.com/whiteducksoftware/flock.git
173
+ cd flock
174
+
175
+ # One-liner dev setup after cloning
176
+ pip install poethepoet && poe install
177
+ ```
178
+
179
+ Additional provided `poe` tasks and commands:
180
+
181
+ ```bash
182
+ poe install # Install the project
183
+ poe build # Build the project
184
+ poe docs # Serve the docs
185
+ poe format # Format the code
186
+ poe lint # Lint the code
187
+ ```
188
+
189
+ ## 🔑 Environment Setup
190
+
191
+ Flock uses environment variables (typically in a .env file) for configuration, especially API keys. Create a .env file in your project root:
192
+
193
+ ```bash
194
+ # .env - Example
195
+
196
+ # --- LLM Provider API Keys (Required by most examples) ---
197
+ # Add keys for providers you use (OpenAI, Anthropic, Gemini, Azure, etc.)
198
+ # Refer to litellm docs (https://docs.litellm.ai/docs/providers) for names
199
+ OPENAI_API_KEY="your-openai-api-key"
200
+ # ANTHROPIC_API_KEY="your-anthropic-api-key"
201
+
202
+ # --- Tool-Specific Keys (Optional) ---
203
+ # TAVILY_API_KEY="your-tavily-search-key"
204
+ # GITHUB_PAT="your-github-personal-access-token"
205
+
206
+ # --- Default Flock Settings (Optional) ---
207
+ DEFAULT_MODEL="openai/gpt-4o" # Default LLM if agent doesn't specify
208
+
209
+ # --- Flock CLI Settings (Managed by `flock settings`) ---
210
+ # SHOW_SECRETS="False"
211
+ # VARS_PER_PAGE="20"
212
+ ```
213
+
214
+ Be sure that the .env file is added to your .gitignore!
215
+
216
+
217
+ ## 🐤 New in Flock 0.5.0 `Kea` 🐤
218
+
219
+ Keas are one of the smartest birds in the world famous for figuring out multi-step puzzles, unlatching doors, and coordinating in small groups to get what it wants.
220
+
221
+ <Insert Kea Logo>
222
+
223
+ ### Self-optimizing agents
224
+
225
+ ### Everything you need to evaluate and optimize agents
226
+
227
+ ### Benchmarks
228
+
229
+ ### Smooth Jupyter experience
230
+
231
+ ### Multi-Threading and Thread Safety
232
+
233
+
234
+ --------------------------------
235
+
236
+ ## 📚 Examples & Tutorials
237
+
238
+ For a comprehensive set of examples, ranging from basic usage to complex projects and advanced features, please visit our dedicated showcase repository:
239
+
240
+ ➡️ [github.com/whiteducksoftware/flock-showcase](https://github.com/whiteducksoftware/flock-showcase) ⬅️
241
+
242
+ The showcase includes:
243
+
244
+ - Step-by-step guides for core concepts.
245
+ - Examples of tool usage, routing, memory, and more.
246
+ - Complete mini-projects demonstrating practical applications.
247
+
248
+ ## 📖 Documentation
249
+
250
+ Full documentation, including API references and conceptual explanations, can be found at:
251
+
252
+ ➡️ [whiteducksoftware.github.io/flock/](https://whiteducksoftware.github.io/flock/) ⬅️
253
+
254
+ ## 🤝 Contributing
255
+
256
+ We welcome contributions! Please see the CONTRIBUTING.md file (if available) or open an issue/pull request on GitHub.
257
+
258
+ Ways to contribute:
259
+
260
+ - Report bugs or suggest features.
261
+ - Improve documentation.
262
+ - Contribute new Modules, Evaluators, or Routers.
263
+ - Add examples to the flock-showcase repository.
264
+
265
+ ## 📜 License
266
+
267
+ Flock is licensed under the MIT License. See the LICENSE file for details.
268
+
269
+ ## 🏢 About
270
+
271
+ Flock is developed and maintained by white duck GmbH, your partner for cloud-native solutions and AI integration.
@@ -27,7 +27,7 @@ flock/cli/yaml_editor.py,sha256=K3N0bh61G1TSDAZDnurqW9e_-hO6CtSQKXQqlDhCjVo,1252
27
27
  flock/cli/assets/release_notes.md,sha256=bqnk50jxM3w5uY44Dc7MkdT8XmRREFxrVBAG9XCOSSU,4896
28
28
  flock/components/__init__.py,sha256=ZyTU6-haElMddsgCiL426z9qw2W9AnuFKvKkP3FuVSQ,954
29
29
  flock/components/evaluation/__init__.py,sha256=_M3UlRFeNN90fEny6byt5VdLDE5o5khbd0EPT0o9S9k,303
30
- flock/components/evaluation/declarative_evaluation_component.py,sha256=lK89CQVwcUscJjbmvCJ_1OQ02kA9QpRKgV4h7JiIpR0,7802
30
+ flock/components/evaluation/declarative_evaluation_component.py,sha256=yxDv1g4ue5VsnLCEAEZepu4frh8eBwZVqTDogawyxTo,8597
31
31
  flock/components/routing/__init__.py,sha256=BH_pFm9T6bUuf8HH4byDJ0dO0fzEVHv9m-ghUdDVdm0,542
32
32
  flock/components/routing/conditional_routing_component.py,sha256=WqZLMz-0Dhfb97xvttNrJCIVe6FNMLEQ2m4KQTDpIbI,21374
33
33
  flock/components/routing/default_routing_component.py,sha256=ZHt2Kjf-GHB5n7evU5NSGeQJ1Wuims5soeMswqaUb1E,3370
@@ -39,7 +39,7 @@ flock/components/utility/output_utility_component.py,sha256=_YIqU6IaY2yeh1uJcWgZ
39
39
  flock/core/__init__.py,sha256=ntCQ_wlgvRVNFph3drbFvyaqgtN30487V18YoJzcIFE,1332
40
40
  flock/core/flock.py,sha256=dN-asYsN2QOolZtYM5U8bRWEWkGckKRyhyy2n1xQ9b8,23148
41
41
  flock/core/flock_agent.py,sha256=jdEhtGnPFhYDqUyhzHJ6R3EcKp5ocqI3gEaCARCqirs,12027
42
- flock/core/flock_factory.py,sha256=toPjFQxlr0-baytwOJQR1GCbNDrv3vPTTZKz0-BABt4,19857
42
+ flock/core/flock_factory.py,sha256=Y7d329deUYOJoD0lRyC8RNsahiO7Z9r0w5bfSE_4VKo,19946
43
43
  flock/core/flock_scheduler.py,sha256=ng_s7gyijmc-AmYvBn5rtg61CSUZiIkXPRSlA1xO6VQ,8766
44
44
  flock/core/flock_server_manager.py,sha256=tM_nOs37vAbEvxmhwy_DL2JPvgFViWroNxrRSu5MfUQ,4523
45
45
  flock/core/agent/__init__.py,sha256=l32KFMJnC_gidMXpAXK8-OX228bWOhNc8OY_NzXm59Q,515
@@ -489,13 +489,13 @@ flock/webapp/app/theme_mapper.py,sha256=QzWwLWpED78oYp3FjZ9zxv1KxCyj43m8MZ0fhfzz
489
489
  flock/webapp/app/utils.py,sha256=RF8DMKKAj1XPmm4txUdo2OdswI1ATQ7cqUm6G9JFDzA,2942
490
490
  flock/webapp/app/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
491
491
  flock/webapp/app/api/agent_management.py,sha256=5xqO94QjjAYvxImyjKV9EGUQOvo4n3eqs7pGwGPSQJ4,10394
492
- flock/webapp/app/api/execution.py,sha256=tmExz11EPYmltYsQ-xB58ueXZbmlpW1fJFi0s6LjWnU,13120
492
+ flock/webapp/app/api/execution.py,sha256=EeOhpABZ1STcRKIa8pXRqWeqtD4KS8KAWTNYbVns2FQ,13432
493
493
  flock/webapp/app/api/flock_management.py,sha256=1o-6-36kTnUjI3am_BqLpdrcz0aqFXrxE-hQHIFcCsg,4869
494
494
  flock/webapp/app/api/registry_viewer.py,sha256=IoInxJiRR0yFlecG_l2_eRc6l35RQQyEDMG9BcBkipY,1020
495
495
  flock/webapp/app/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
496
496
  flock/webapp/app/services/flock_service.py,sha256=cuJezcNvrRiyQM2f6Nu62NAmcqJBpqLydml6zI0_OuI,14935
497
497
  flock/webapp/app/services/sharing_models.py,sha256=XeJk1akILV_1l-cIUaG8k_eYhjV3EWBCWZ2kpwbdImA,3609
498
- flock/webapp/app/services/sharing_store.py,sha256=qegEx2rbhlhJgxGjZ-5MJXCnxDBYoPnfL0THcobuEIk,17816
498
+ flock/webapp/app/services/sharing_store.py,sha256=CAxnCHqpKhpX7bLMZnwSBjkpr5MVFmU1g1gZNNFKSJc,19670
499
499
  flock/webapp/app/templates/theme_mapper.html,sha256=z8ZY7nmk6PiUGzD_-px7wSXcEnuBM121rMq6u-2oaCo,14249
500
500
  flock/webapp/static/css/chat.css,sha256=Njc9gXfQzbXMrqtFJH2Yda-IQlwNPd2z4apXxzfA0sY,8169
501
501
  flock/webapp/static/css/components.css,sha256=WnicEHy3ptPzggKmyG9_oZp3X30EMJBUW3KEXaiUCUE,6018
@@ -549,8 +549,8 @@ flock/workflow/agent_execution_activity.py,sha256=CzTkbjGqrPoAbldaQOS_doesosDK9m
549
549
  flock/workflow/flock_workflow.py,sha256=ZhAF82ewNRY2vvDjNpXT1D9lCVQsLOSMTaZVzdcogJc,9674
550
550
  flock/workflow/temporal_config.py,sha256=3_8O7SDEjMsSMXsWJBfnb6XTp0TFaz39uyzSlMTSF_I,3988
551
551
  flock/workflow/temporal_setup.py,sha256=YIHnSBntzOchHfMSh8hoLeNXrz3B1UbR14YrR6soM7A,1606
552
- flock_core-0.5.0b7.dist-info/METADATA,sha256=2j0jYhE6LMRYj45hqr-9Pe1wI1DKZNnAemLhnWWTxkA,20703
553
- flock_core-0.5.0b7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
554
- flock_core-0.5.0b7.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
555
- flock_core-0.5.0b7.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
556
- flock_core-0.5.0b7.dist-info/RECORD,,
552
+ flock_core-0.5.0b9.dist-info/METADATA,sha256=MRJaMeG8BF8ykRhCy2Q6_ysJgd3vni1NW8Zaut-i76g,9910
553
+ flock_core-0.5.0b9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
554
+ flock_core-0.5.0b9.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
555
+ flock_core-0.5.0b9.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
556
+ flock_core-0.5.0b9.dist-info/RECORD,,