graphbit 0.5.0__tar.gz

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.
Files changed (62) hide show
  1. graphbit-0.5.0/LICENSE.md +92 -0
  2. graphbit-0.5.0/PKG-INFO +187 -0
  3. graphbit-0.5.0/README.md +165 -0
  4. graphbit-0.5.0/core/Cargo.toml +59 -0
  5. graphbit-0.5.0/core/README.md +824 -0
  6. graphbit-0.5.0/core/src/agents.rs +320 -0
  7. graphbit-0.5.0/core/src/document_loader.rs +800 -0
  8. graphbit-0.5.0/core/src/embeddings.rs +735 -0
  9. graphbit-0.5.0/core/src/errors.rs +271 -0
  10. graphbit-0.5.0/core/src/graph.rs +741 -0
  11. graphbit-0.5.0/core/src/lib.rs +53 -0
  12. graphbit-0.5.0/core/src/llm/ai21.rs +372 -0
  13. graphbit-0.5.0/core/src/llm/anthropic.rs +274 -0
  14. graphbit-0.5.0/core/src/llm/azure_openai.rs +428 -0
  15. graphbit-0.5.0/core/src/llm/deepseek.rs +335 -0
  16. graphbit-0.5.0/core/src/llm/fireworks.rs +370 -0
  17. graphbit-0.5.0/core/src/llm/huggingface.rs +232 -0
  18. graphbit-0.5.0/core/src/llm/mod.rs +444 -0
  19. graphbit-0.5.0/core/src/llm/ollama.rs +431 -0
  20. graphbit-0.5.0/core/src/llm/openai.rs +392 -0
  21. graphbit-0.5.0/core/src/llm/openrouter.rs +410 -0
  22. graphbit-0.5.0/core/src/llm/perplexity.rs +343 -0
  23. graphbit-0.5.0/core/src/llm/providers.rs +492 -0
  24. graphbit-0.5.0/core/src/llm/replicate.rs +491 -0
  25. graphbit-0.5.0/core/src/llm/response.rs +202 -0
  26. graphbit-0.5.0/core/src/llm/togetherai.rs +358 -0
  27. graphbit-0.5.0/core/src/llm/xai.rs +361 -0
  28. graphbit-0.5.0/core/src/text_splitter.rs +945 -0
  29. graphbit-0.5.0/core/src/types.rs +1221 -0
  30. graphbit-0.5.0/core/src/validation.rs +411 -0
  31. graphbit-0.5.0/core/src/workflow.rs +1533 -0
  32. graphbit-0.5.0/pyproject.toml +39 -0
  33. graphbit-0.5.0/python/Cargo.lock +2548 -0
  34. graphbit-0.5.0/python/Cargo.toml +63 -0
  35. graphbit-0.5.0/python/LICENSE.md +92 -0
  36. graphbit-0.5.0/python/README.md +165 -0
  37. graphbit-0.5.0/python/src/document_loader.rs +407 -0
  38. graphbit-0.5.0/python/src/embeddings/client.rs +67 -0
  39. graphbit-0.5.0/python/src/embeddings/config.rs +51 -0
  40. graphbit-0.5.0/python/src/embeddings/mod.rs +7 -0
  41. graphbit-0.5.0/python/src/errors.rs +231 -0
  42. graphbit-0.5.0/python/src/lib.rs +433 -0
  43. graphbit-0.5.0/python/src/llm/client.rs +1027 -0
  44. graphbit-0.5.0/python/src/llm/config.rs +239 -0
  45. graphbit-0.5.0/python/src/llm/mod.rs +9 -0
  46. graphbit-0.5.0/python/src/llm/response.rs +484 -0
  47. graphbit-0.5.0/python/src/runtime.rs +205 -0
  48. graphbit-0.5.0/python/src/text_splitter/config.rs +346 -0
  49. graphbit-0.5.0/python/src/text_splitter/mod.rs +9 -0
  50. graphbit-0.5.0/python/src/text_splitter/splitter.rs +438 -0
  51. graphbit-0.5.0/python/src/tools/decorator.rs +274 -0
  52. graphbit-0.5.0/python/src/tools/executor.rs +724 -0
  53. graphbit-0.5.0/python/src/tools/mod.rs +19 -0
  54. graphbit-0.5.0/python/src/tools/registry.rs +464 -0
  55. graphbit-0.5.0/python/src/tools/result.rs +287 -0
  56. graphbit-0.5.0/python/src/validation.rs +29 -0
  57. graphbit-0.5.0/python/src/workflow/context.rs +165 -0
  58. graphbit-0.5.0/python/src/workflow/executor.rs +761 -0
  59. graphbit-0.5.0/python/src/workflow/mod.rs +13 -0
  60. graphbit-0.5.0/python/src/workflow/node.rs +1006 -0
  61. graphbit-0.5.0/python/src/workflow/result.rs +128 -0
  62. graphbit-0.5.0/python/src/workflow/workflow.rs +86 -0
@@ -0,0 +1,92 @@
1
+ # GRAPHBIT FRAMEWORK LICENSE
2
+
3
+ Copyright © 2023–2025 InfinitiBit GmbH. All rights reserved.
4
+
5
+ By downloading, installing, or using the GraphBit framework (the “framework”), you agree to this License.
6
+
7
+ ## 1. Parties
8
+
9
+ Licensor: **InfinitiBit GmbH**, Heiglhofstr. 90, 81377 Munich, Germany.
10
+ Licensee: The individual or legal entity using the framework.
11
+
12
+ ## 2. Definitions
13
+
14
+ * **framework**: The complete source code and related materials provided by Licensor, including the Rust core, Python wrapper, scripts, libraries, and configuration described in the GraphBit documentation.
15
+ * **Outputs**: Results, data, and artifacts generated by the framework.
16
+ * **Enterprise Use**: Any use not expressly permitted under Model A or Model B, including but not limited to: (i) use by organizations with more than ten (10) employees or more than ten (10) active users, (ii) embedding in commercial products/services, or (iii) offering the framework or derivative works as a hosted service (e.g., API, SaaS, managed platform).
17
+ * **Active Users**: All persons using the framework, including employees, contractors, and/or end users accessing a product or service built on the framework.
18
+
19
+ ## 3. License Models
20
+
21
+ Any use not covered by Model A or Model B requires **Model C (Enterprise)** and a separate, executed license.
22
+
23
+ ### Model A — Free Use
24
+
25
+ **Eligibility:** Natural persons, academic/research institutions, and companies/startups with up to ten (10) employees **and** up to ten (10) Active Users.
26
+ **Grant:** Non-exclusive, revocable, non-transferable right to install and use the framework.
27
+ **Restrictions:** Redistribution (modified or unmodified) is **prohibited**.
28
+
29
+ ### Model B — Free Trial (Evaluation Only)
30
+
31
+ **Eligibility:** Legal entities/companies.
32
+ **Grant:** Non-exclusive, revocable, non-transferable right to install and use the framework **solely for internal evaluation** for up to thirty (30) consecutive days.
33
+ **Restrictions:** Redistribution and any commercial or production use are **prohibited**.
34
+
35
+ ### Model C — Enterprise License (Paid)
36
+
37
+ **Eligibility:** Anyone not covered by Model A or B.
38
+ **Grant:** Rights for commercial/production use are available **only** under a separately executed Enterprise License with agreed fees and terms.
39
+ **Restrictions:** **No** redistribution rights are granted by this public License. **Any** redistribution or sublicensing (modified or unmodified) must be expressly permitted in the separate Enterprise License.
40
+
41
+ ## 4. Ownership of Outputs
42
+
43
+ You own your **Outputs**. However, Outputs, logs, artifacts, or derived model weights may **not** be used to train, fine-tune, or distill any **competing large language model** without an Enterprise License.
44
+
45
+ ## 5. Responsible Use (Prohibited Uses)
46
+
47
+ You shall not use the framework or Outputs for:
48
+
49
+ * illegal activities;
50
+ * surveillance without lawful authority;
51
+ * military or autonomous weapon systems;
52
+ * disinformation;
53
+ * life-critical systems (including medical devices, aviation, nuclear) **without** an Enterprise License;
54
+ * any use reasonably expected to cause material harm to individuals, society, or the environment.
55
+
56
+ ## 6. Additional Restrictions
57
+
58
+ Except as expressly permitted above, you shall **not**:
59
+
60
+ * copy, distribute, publish, sublicense, rent, lease, or otherwise make the framework available to third parties;
61
+ * modify, adapt, or create derivative works **for any form of distribution**;
62
+ * remove or alter any copyright, attribution, or proprietary notices.
63
+
64
+ ## 7. Attribution & Trademarks
65
+
66
+ If you publicly reference or showcase the framework (e.g., in documentation, UI credits, research papers, product pages) where such use is **permitted under this License or a separate Enterprise License**, include the attribution:
67
+
68
+ > “Based on GraphBit by InfinitiBit GmbH https://graphbit.ai
69
+
70
+ No rights are granted to use the Licensor’s names, logos, or trademarks beyond the attribution above. **This clause does not grant any right to distribute the framework.**
71
+
72
+ ## 8. Termination
73
+
74
+ Licensor may terminate this License with one month’s notice to the end of the following month. Either party may terminate for cause without notice if the other party materially breaches this License and fails to cure within a reasonable period after written notice, or upon the Licensee’s insolvency, or in case of actions likely to cause significant reputational damage to Licensor.
75
+ Upon termination, you must immediately stop using the framework and destroy all copies. Unauthorized Enterprise Use obligates Licensee to pay retroactive license fees and damages.
76
+
77
+ ## 9. Warranty Disclaimer
78
+
79
+ THE FRAMEWORK IS PROVIDED “AS IS,” as described in the GraphBit documentation, **without** warranties of any kind, express or implied, including merchantability, fitness for a particular purpose, or non-infringement.
80
+
81
+ ## 10. Limitation of Liability
82
+
83
+ Licensor is liable only for defects and damages caused by intentional or grossly negligent conduct, and for damages resulting from injury to life, limb, or health, in accordance with applicable law.
84
+
85
+ ## 11. Governing Law & Jurisdiction
86
+
87
+ This License is governed by the laws of the Federal Republic of Germany. Exclusive jurisdiction lies with the competent courts of Munich, Germany.
88
+
89
+ ## 12. Contact
90
+
91
+ For Enterprise Licensing or commercial inquiries:
92
+ [contact@infinitibit.com](mailto:contact@infinitibit.com) — [https://graphbit.ai](https://graphbit.ai)
@@ -0,0 +1,187 @@
1
+ Metadata-Version: 2.4
2
+ Name: graphbit
3
+ Version: 0.5.0
4
+ Classifier: Development Status :: 4 - Beta
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: License :: Other/Proprietary License
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Rust
13
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ License-File: LICENSE.md
15
+ Summary: Production-grade Python bindings for GraphBit agentic workflow automation
16
+ Keywords: ai,automation,workflow,agent,llm
17
+ Home-Page: https://graphbit.ai
18
+ Author: GraphBit Team
19
+ Requires-Python: >=3.10
20
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
21
+
22
+ <div align="center">
23
+
24
+ # GraphBit - High Performance Agentic Framework
25
+
26
+ <p align="center">
27
+ <img src="assets/logo(circle).png" width="160px" alt="Logo" />
28
+ </p>
29
+
30
+ <!-- Added placeholders for links, fill it up when the corresponding links are available. -->
31
+ <p align="center">
32
+ <a href="https://graphbit.ai/">Website</a> |
33
+ <a href="https://docs.graphbit.ai/">Docs</a> |
34
+ <a href="https://discord.com/invite/huVJwkyu">Discord</a>
35
+ <br /><br />
36
+ </p>
37
+
38
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/InfinitiBit/graphbit/update-docs.yml?branch=main)](https://github.com/InfinitiBit/graphbit/actions/workflows/update-docs.yml)
39
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/InfinitiBit/graphbit/blob/main/CONTRIBUTING.md)
40
+ [![Rust Version](https://img.shields.io/badge/rust-1.70+-blue.svg)](https://www.rust-lang.org)
41
+ [![Python Version](https://img.shields.io/badge/python-3.10--3.13-blue.svg)](https://www.python.org)
42
+
43
+ **Type-Safe AI Agent Workflows with Rust Performance**
44
+
45
+ </div>
46
+
47
+ Graphbit is an **industry-grade agentic AI framework** built for developers and AI teams that demand stability, scalability, and low resource usage.
48
+
49
+ Written in **Rust** for maximum performance and safety, it delivers up to **68× lower CPU usage** and **140× lower memory** footprint than certain leading alternatives while consistently using far fewer resources than the rest, all while maintaining comparable throughput and execution speed. See [benchmarks](benchmarks/report/framework-benchmark-report.md) for more details.
50
+
51
+ Designed to run **multi-agent workflows in parallel**, Graphbit persists memory across steps, recovers from failures, and ensures **100% task success** under load. Its lightweight, resource-efficient architecture enables deployment in both **high-scale enterprise environments** and **low-resource edge scenarios**. With built-in observability and concurrency support, Graphbit eliminates the bottlenecks that slow decision-making and erode ROI.
52
+
53
+ ## Key Features
54
+
55
+ - **Tool Selection** - LLMs intelligently select tools based on descriptions
56
+ - **Type Safety** - Strong typing throughout the execution pipeline
57
+ - **Reliability** - Circuit breakers, retry policies, and error handling
58
+ - **Multi-LLM Support** - OpenAI, Azure OpenAI, Anthropic, OpenRouter, DeepSeek, Replicate, Ollama, TogetherAI
59
+ - **Resource Management** - Concurrency controls and memory optimization
60
+ - **Observability** - Built-in metrics and execution tracing
61
+
62
+ ## Quick Start
63
+
64
+ ### Installation
65
+ Clone the repository
66
+ ```bash
67
+ git clone https://github.com/InfinitiBit/graphbit.git
68
+ cd graphbit
69
+ ```
70
+
71
+ Install Rust
72
+ - **Linux/macOS**:
73
+ ```bash
74
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh && source $HOME/.cargo/env
75
+ ```
76
+ - **Windows**: Download & run [rustup-init.exe](https://win.rustup.rs/x86_64)
77
+
78
+ Install Poetry
79
+ ```bash
80
+ curl -sSL https://install.python-poetry.org | python3 -
81
+ ```
82
+
83
+ Install dependencies (recommended to use a Python virtual environment)
84
+ ```bash
85
+ poetry install --no-root
86
+ ```
87
+
88
+ Build from source
89
+ ```bash
90
+ cargo build --release
91
+ ```
92
+
93
+ Build Python bindings
94
+ ```bash
95
+ cd python/
96
+ maturin develop --release
97
+ ```
98
+
99
+ ### Environment Setup
100
+ First, set up your API keys:
101
+ ```bash
102
+ export OPENAI_API_KEY=your_openai_api_key_here
103
+ export ANTHROPIC_API_KEY=your_anthropic_api_key_here
104
+ export REPLICATE_API_KEY=your_replicate_api_token_here
105
+ ```
106
+
107
+ > **Security Note**: Never commit API keys to version control. Always use environment variables or secure secret management.
108
+
109
+ ### Basic Usage
110
+ ```python
111
+ import os
112
+
113
+ from graphbit import LlmConfig, Executor, Workflow, Node, tool
114
+
115
+ # Initialize and configure
116
+ config = LlmConfig.openai(os.getenv("OPENAI_API_KEY"), "gpt-4o-mini")
117
+
118
+ # Create executor
119
+ executor = Executor(config)
120
+
121
+ # Create tools with clear descriptions for LLM selection
122
+ @tool(_description="Get current weather information for any city")
123
+ def get_weather(location: str) -> dict:
124
+ return {"location": location, "temperature": 22, "condition": "sunny"}
125
+
126
+ @tool(_description="Perform mathematical calculations and return results")
127
+ def calculate(expression: str) -> str:
128
+ return f"Result: {eval(expression)}"
129
+
130
+ # Build workflow
131
+ workflow = Workflow("Analysis Pipeline")
132
+
133
+ # Create agent nodes
134
+ smart_agent = Node.agent(
135
+ name="Smart Agent",
136
+ prompt="What's the weather in Paris and calculate 15 + 27?",
137
+ system_prompt="You are an assistant skilled in weather lookup and math calculations. Use tools to answer queries accurately.",
138
+ tools=[get_weather, calculate]
139
+ )
140
+
141
+ processor = Node.agent(
142
+ name="Data Processor",
143
+ prompt="Process the results obtained from Smart Agent.",
144
+ system_prompt="""You process and organize results from other agents.
145
+
146
+ - Summarize and clarify key points
147
+ - Structure your output for easy reading
148
+ - Focus on actionable insights
149
+ """
150
+ )
151
+
152
+ # Connect and execute
153
+ id1 = workflow.add_node(smart_agent)
154
+ id2 = workflow.add_node(processor)
155
+ workflow.connect(id1, id2)
156
+
157
+ result = executor.execute(workflow)
158
+ print(f"Workflow completed: {result.is_success()}")
159
+ print("\nSmart Agent Output: \n", result.get_node_output("Smart Agent"))
160
+ print("\nData Processor Output: \n", result.get_node_output("Data Processor"))
161
+ ```
162
+
163
+ ## High-Level Architecture
164
+
165
+ <p align="center">
166
+ <img src="assets/architecture.svg" height="250" alt="GraphBit Architecture">
167
+ </p>
168
+
169
+ Three-tier design for reliability and performance:
170
+ - **Rust Core** - Workflow engine, agents, and LLM providers
171
+ - **Orchestration Layer** - Project management and execution
172
+ - **Python API** - PyO3 bindings with async support
173
+
174
+ ## Python API Integrations
175
+
176
+ GraphBit provides a rich Python API for building and integrating agentic workflows, including executors, nodes, LLM clients, and embeddings. For the complete list of classes, methods, and usage examples, see the [Python API Reference](docs/api-reference/python-api.md).
177
+
178
+ ## Contributing to GraphBit
179
+
180
+ We welcome contributions. To get started, please see the [Contributing](CONTRIBUTING.md) file for development setup and guidelines.
181
+
182
+ GraphBit is built by a wonderful community of researchers and engineers.
183
+
184
+ <a href="https://github.com/Infinitibit/graphbit/graphs/contributors">
185
+ <img src="https://contrib.rocks/image?repo=Infinitibit/graphbit" />
186
+ </a>
187
+
@@ -0,0 +1,165 @@
1
+ <div align="center">
2
+
3
+ # GraphBit - High Performance Agentic Framework
4
+
5
+ <p align="center">
6
+ <img src="assets/logo(circle).png" width="160px" alt="Logo" />
7
+ </p>
8
+
9
+ <!-- Added placeholders for links, fill it up when the corresponding links are available. -->
10
+ <p align="center">
11
+ <a href="https://graphbit.ai/">Website</a> |
12
+ <a href="https://docs.graphbit.ai/">Docs</a> |
13
+ <a href="https://discord.com/invite/huVJwkyu">Discord</a>
14
+ <br /><br />
15
+ </p>
16
+
17
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/InfinitiBit/graphbit/update-docs.yml?branch=main)](https://github.com/InfinitiBit/graphbit/actions/workflows/update-docs.yml)
18
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/InfinitiBit/graphbit/blob/main/CONTRIBUTING.md)
19
+ [![Rust Version](https://img.shields.io/badge/rust-1.70+-blue.svg)](https://www.rust-lang.org)
20
+ [![Python Version](https://img.shields.io/badge/python-3.10--3.13-blue.svg)](https://www.python.org)
21
+
22
+ **Type-Safe AI Agent Workflows with Rust Performance**
23
+
24
+ </div>
25
+
26
+ Graphbit is an **industry-grade agentic AI framework** built for developers and AI teams that demand stability, scalability, and low resource usage.
27
+
28
+ Written in **Rust** for maximum performance and safety, it delivers up to **68× lower CPU usage** and **140× lower memory** footprint than certain leading alternatives while consistently using far fewer resources than the rest, all while maintaining comparable throughput and execution speed. See [benchmarks](benchmarks/report/framework-benchmark-report.md) for more details.
29
+
30
+ Designed to run **multi-agent workflows in parallel**, Graphbit persists memory across steps, recovers from failures, and ensures **100% task success** under load. Its lightweight, resource-efficient architecture enables deployment in both **high-scale enterprise environments** and **low-resource edge scenarios**. With built-in observability and concurrency support, Graphbit eliminates the bottlenecks that slow decision-making and erode ROI.
31
+
32
+ ## Key Features
33
+
34
+ - **Tool Selection** - LLMs intelligently select tools based on descriptions
35
+ - **Type Safety** - Strong typing throughout the execution pipeline
36
+ - **Reliability** - Circuit breakers, retry policies, and error handling
37
+ - **Multi-LLM Support** - OpenAI, Azure OpenAI, Anthropic, OpenRouter, DeepSeek, Replicate, Ollama, TogetherAI
38
+ - **Resource Management** - Concurrency controls and memory optimization
39
+ - **Observability** - Built-in metrics and execution tracing
40
+
41
+ ## Quick Start
42
+
43
+ ### Installation
44
+ Clone the repository
45
+ ```bash
46
+ git clone https://github.com/InfinitiBit/graphbit.git
47
+ cd graphbit
48
+ ```
49
+
50
+ Install Rust
51
+ - **Linux/macOS**:
52
+ ```bash
53
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh && source $HOME/.cargo/env
54
+ ```
55
+ - **Windows**: Download & run [rustup-init.exe](https://win.rustup.rs/x86_64)
56
+
57
+ Install Poetry
58
+ ```bash
59
+ curl -sSL https://install.python-poetry.org | python3 -
60
+ ```
61
+
62
+ Install dependencies (recommended to use a Python virtual environment)
63
+ ```bash
64
+ poetry install --no-root
65
+ ```
66
+
67
+ Build from source
68
+ ```bash
69
+ cargo build --release
70
+ ```
71
+
72
+ Build Python bindings
73
+ ```bash
74
+ cd python/
75
+ maturin develop --release
76
+ ```
77
+
78
+ ### Environment Setup
79
+ First, set up your API keys:
80
+ ```bash
81
+ export OPENAI_API_KEY=your_openai_api_key_here
82
+ export ANTHROPIC_API_KEY=your_anthropic_api_key_here
83
+ export REPLICATE_API_KEY=your_replicate_api_token_here
84
+ ```
85
+
86
+ > **Security Note**: Never commit API keys to version control. Always use environment variables or secure secret management.
87
+
88
+ ### Basic Usage
89
+ ```python
90
+ import os
91
+
92
+ from graphbit import LlmConfig, Executor, Workflow, Node, tool
93
+
94
+ # Initialize and configure
95
+ config = LlmConfig.openai(os.getenv("OPENAI_API_KEY"), "gpt-4o-mini")
96
+
97
+ # Create executor
98
+ executor = Executor(config)
99
+
100
+ # Create tools with clear descriptions for LLM selection
101
+ @tool(_description="Get current weather information for any city")
102
+ def get_weather(location: str) -> dict:
103
+ return {"location": location, "temperature": 22, "condition": "sunny"}
104
+
105
+ @tool(_description="Perform mathematical calculations and return results")
106
+ def calculate(expression: str) -> str:
107
+ return f"Result: {eval(expression)}"
108
+
109
+ # Build workflow
110
+ workflow = Workflow("Analysis Pipeline")
111
+
112
+ # Create agent nodes
113
+ smart_agent = Node.agent(
114
+ name="Smart Agent",
115
+ prompt="What's the weather in Paris and calculate 15 + 27?",
116
+ system_prompt="You are an assistant skilled in weather lookup and math calculations. Use tools to answer queries accurately.",
117
+ tools=[get_weather, calculate]
118
+ )
119
+
120
+ processor = Node.agent(
121
+ name="Data Processor",
122
+ prompt="Process the results obtained from Smart Agent.",
123
+ system_prompt="""You process and organize results from other agents.
124
+
125
+ - Summarize and clarify key points
126
+ - Structure your output for easy reading
127
+ - Focus on actionable insights
128
+ """
129
+ )
130
+
131
+ # Connect and execute
132
+ id1 = workflow.add_node(smart_agent)
133
+ id2 = workflow.add_node(processor)
134
+ workflow.connect(id1, id2)
135
+
136
+ result = executor.execute(workflow)
137
+ print(f"Workflow completed: {result.is_success()}")
138
+ print("\nSmart Agent Output: \n", result.get_node_output("Smart Agent"))
139
+ print("\nData Processor Output: \n", result.get_node_output("Data Processor"))
140
+ ```
141
+
142
+ ## High-Level Architecture
143
+
144
+ <p align="center">
145
+ <img src="assets/architecture.svg" height="250" alt="GraphBit Architecture">
146
+ </p>
147
+
148
+ Three-tier design for reliability and performance:
149
+ - **Rust Core** - Workflow engine, agents, and LLM providers
150
+ - **Orchestration Layer** - Project management and execution
151
+ - **Python API** - PyO3 bindings with async support
152
+
153
+ ## Python API Integrations
154
+
155
+ GraphBit provides a rich Python API for building and integrating agentic workflows, including executors, nodes, LLM clients, and embeddings. For the complete list of classes, methods, and usage examples, see the [Python API Reference](docs/api-reference/python-api.md).
156
+
157
+ ## Contributing to GraphBit
158
+
159
+ We welcome contributions. To get started, please see the [Contributing](CONTRIBUTING.md) file for development setup and guidelines.
160
+
161
+ GraphBit is built by a wonderful community of researchers and engineers.
162
+
163
+ <a href="https://github.com/Infinitibit/graphbit/graphs/contributors">
164
+ <img src="https://contrib.rocks/image?repo=Infinitibit/graphbit" />
165
+ </a>
@@ -0,0 +1,59 @@
1
+ [dependencies]
2
+ pyo3 = {workspace = true, optional = true}
3
+ anyhow.workspace = true
4
+ async-trait.workspace = true
5
+ chrono.workspace = true
6
+ csv.workspace = true
7
+ docx-rs.workspace = true
8
+ futures.workspace = true
9
+ lazy_static.workspace = true
10
+ lopdf.workspace = true
11
+ petgraph.workspace = true
12
+ quick-xml.workspace = true
13
+ rand.workspace = true
14
+ regex.workspace = true
15
+ reqwest.workspace = true
16
+ scraper.workspace = true
17
+ serde.workspace = true
18
+ serde_json.workspace = true
19
+ thiserror.workspace = true
20
+ tokio.workspace = true
21
+ tracing.workspace = true
22
+ tracing-subscriber.workspace = true
23
+ uuid.workspace = true
24
+
25
+ [features]
26
+ default = []
27
+ python = ["pyo3"]
28
+
29
+ [lints]
30
+ workspace = true
31
+
32
+ [package]
33
+ description = "Core engine for GraphBit agentic workflow automation"
34
+ name = "graphbit-core"
35
+ authors.workspace = true
36
+ categories.workspace = true
37
+ documentation.workspace = true
38
+ edition.workspace = true
39
+ homepage.workspace = true
40
+ keywords.workspace = true
41
+ license-file.workspace = true
42
+ repository.workspace = true
43
+ rust-version.workspace = true
44
+ version.workspace = true
45
+ readme = "README.md"
46
+
47
+ # Enable vendored OpenSSL for aarch64 cross-compilation
48
+ # Cross-compilation containers lack aarch64-specific OpenSSL dev packages
49
+ [target.aarch64-unknown-linux-gnu]
50
+ [target.aarch64-unknown-linux-gnu.dependencies]
51
+ openssl = {version = "0.10", features = ["vendored"]}
52
+
53
+ # Enable vendored OpenSSL for musl targets (Alpine Linux)
54
+ # musl containers don't have OpenSSL dev packages, so we compile from source
55
+ [target.'cfg(target_env = "musl")'.dependencies]
56
+ openssl = {version = "0.10", features = ["vendored"]}
57
+
58
+ [target.'cfg(unix)'.dependencies]
59
+ jemallocator.workspace = true