Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
4289a01
feat: initial report
javidsegura Dec 18, 2025
448f052
asas
javidsegura Jan 18, 2026
48d4a22
refactor: eliminated unnecesary files, added uv for installation
javidsegura Jan 18, 2026
da70906
feat/ agent abstarction is functional. Memory is not yet integrated. …
javidsegura Jan 18, 2026
37c8a17
feat: added final example with asyncflow running in parallel
javidsegura Jan 18, 2026
fac178b
initial set of plots for laptop config for strong scaling only
javidsegura Jan 19, 2026
243d962
feat: added weak scaling plots
javidsegura Jan 20, 2026
c2243ea
feat: added shared backend workloads
javidsegura Jan 21, 2026
303efbc
refactor: rerun with onger experiment config
javidsegura Jan 21, 2026
c7a5379
feat: added service tool
javidsegura Jan 21, 2026
384f088
feat: added support for autogen and parsl
javidsegura Jan 26, 2026
5c0b40e
feat: added support for autogen and parsl
javidsegura Jan 26, 2026
1ec100e
feat: added support for autogen and parsl
javidsegura Jan 29, 2026
8c178d3
merge commit
javidsegura Jan 29, 2026
d052133
addede bnechark outline
javidsegura Feb 3, 2026
c173aea
doc: updated outline with assingned tasks
javidsegura Feb 3, 2026
c69a335
feat: added stable API for benchmarking module
javidsegura Feb 3, 2026
51200c8
feat: finished experiment 2 for makespan
javidsegura Feb 4, 2026
9a950bb
feat: added hook for capturing flowgentic overhead events
javidsegura Feb 4, 2026
4b19296
feat: chane wrappers names to represent hpc semantics and not langrap…
javidsegura Feb 4, 2026
56938ee
feat: added plots for throughput and overhead
javidsegura Feb 4, 2026
24d69e7
feat: added script to run multiple config benchmark suite
javidsegura Feb 5, 2026
6aaca1c
feat: resvoled ayncflow and memory explosion error
javidsegura Feb 6, 2026
5f68e83
added async context manager
javidsegura Feb 8, 2026
ac0cb54
added fix for 2x execution
javidsegura Feb 9, 2026
625187d
hotfix: fixed weak scaling ratio
javidsegura Feb 9, 2026
c4b51fc
hotfix: fixed weak scaling ratio
javidsegura Feb 9, 2026
5e26387
removede linux deadlock
javidsegura Feb 9, 2026
5773adc
cluster updates
jds-pr Feb 11, 2026
ee12567
feat: added lower bound for backend slots
jds-pr Feb 12, 2026
1a270af
feat: added updated weak scaling ratio and workload to be 2**17
javidsegura Feb 13, 2026
013176c
feat: added discord set-up
javidsegura Feb 13, 2026
e545904
feat: added full discord communication
jds-pr Feb 17, 2026
b30e4ef
discord
jds-pr Feb 17, 2026
d75fa2d
feat: added cluster sripts
Feb 19, 2026
32e2684
Revert "feat: added cluster sripts"
Feb 19, 2026
4cedf44
removed old directories as per indicated by matteo
javidsegura Feb 23, 2026
5201eeb
Ignore tests from the previous version
mturilli Feb 25, 2026
6e9ecbd
Fix deprecated json module import
mturilli Feb 25, 2026
f817eea
Fix logging race condition
mturilli Feb 25, 2026
cce4daa
Extend event model
mturilli Feb 25, 2026
962a729
Implement event model in Parsl connector
mturilli Feb 25, 2026
68f5f24
Test tool lifecycle
mturilli Feb 25, 2026
14515e6
Fix bug in event ordering
mturilli Feb 26, 2026
4c1ec56
Remove bookkeeping duration
mturilli Mar 4, 2026
2bd6298
Add testing for lifecycle durations
mturilli Mar 4, 2026
fd4d399
Fix linting
mturilli Mar 4, 2026
b3ce0c5
Split dependencies
mturilli Mar 4, 2026
1db7a7f
Lazy dependencies, am I reimplementing pip?!
mturilli Mar 4, 2026
680862d
refactor: migrated to new event model
javidsegura Mar 12, 2026
5e6f451
Removed heavy experiment result from being tracked by git
javidsegura Mar 12, 2026
1fb6eff
Stop tracking benchmark results and fix gitignore scope
javidsegura Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed .coverage
Binary file not shown.
33 changes: 13 additions & 20 deletions .github/workflows/continuous_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ on: [push, pull_request]

jobs:
lint_and_format:
runs-on: ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Fetch code
uses: actions/checkout@v3
# - name: Check linting
# - name: Check linting
# uses: astral-sh/ruff-action@v1
# with:
# args: "check"
Expand All @@ -19,27 +19,27 @@ jobs:
needs: lint_and_format
steps:
- name: Fetch code
uses: actions/checkout@v3
uses: actions/checkout@v3
- name: "Install dependecies"
run: pip install bandit
- name: "Check with bandit"
run: bandit -r src/
tests:
runs-on: ubuntu-latest
runs-on: ubuntu-latest
needs: lint_and_format
strategy:
matrix:
python-version: ['3.10', '3.11']
steps:
- name: Fetch code
uses: actions/checkout@v3
uses: actions/checkout@v3

- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'

- name: Cache pip dependencies
uses: actions/cache@v3
with:
Expand All @@ -48,27 +48,20 @@ jobs:
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-
${{ runner.os }}-pip-

- name: "Install graphviz"
run: |
sudo apt-get update
sudo apt-get install -y graphviz graphviz-dev
shell: bash


- name: "Create virtual environment"
run: |
python -m venv .venv
shell: bash

- name: "Install dependencies"
run: |
source .venv/bin/activate
pip install -e ".[dev]"
pip install pygraphviz
shell: bash

- name: Run python tests with coverage
env:
env:
OPEN_ROUTER_API_KEY: ${{ secrets.OPEN_ROUTER_API_KEY }}
run: |
source .venv/bin/activate
Expand All @@ -79,13 +72,13 @@ jobs:
--cov-report=term:skip-covered \
tests/
shell: bash

- name: "Show coverage summary"
if: always()
run: |
echo "=== Coverage Summary ==="
coverage report || echo "Coverage report not available"

- name: Upload results of test coverage
uses: actions/upload-artifact@v4
if: always()
Expand Down
11 changes: 7 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ logs/
# Temporary files
*.tmp

agent_run_data/
im-working.txt
uv.lock

# examples/**/agent_execution_results/
*.db
#Ignore vscode AI rules
.github/instructions/codacy.instructions.md
.venv/


tests/benchmark/results/
1 change: 0 additions & 1 deletion .python-version

This file was deleted.

106 changes: 36 additions & 70 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,84 +1,50 @@
.PHONY: install format lint docs tests examples-sequential-research examples-sequential-financial examples-supervisor examples-supervisor-sales examples-supervisor-product-research examples-basic examples-parallel-minimal examples-parallel-llm-router examples-mcp-sales-analytics

.DEFAULT_GOAL:= help
SHELL := /bin/bash


# VARIABLES
# VARIABLES FOR PRETTY PRINT
RED = \033[31m
GREEN = \033[32m
YELLOW = \033[33m
BLUE = \033[34m
RESET = \033[0m

# VARIABLES, GENERAL
VENV_PATH = ./.venv
VENV_ACTIVATE = source $(VENV_PATH)/bin/activate

help:
@echo "$(BLUE)Available commands:$(RESET)"
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(GREEN)%-15s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST)

# ============
# = SET-UP =
# ============

install: #Install dependencies with pip => install graphviz
$(VENV_ACTIVATE) && pip install -e "."
$(VENV_ACTIVATE) && pre-commit install
$(VENV_ACTIVATE) && pip install --config-settings="--global-option=build_ext" \
--config-settings="--global-option=-I$$(brew --prefix graphviz)/include/" \
--config-settings="--global-option=-L$$(brew --prefix graphviz)/lib/" \
pygraphviz
install-dev:
$(VENV_ACTIVATE) && pip install -e ".[dev]"
$(VENV_ACTIVATE) && pre-commit install
$(VENV_ACTIVATE) && pip install --config-settings="--global-option=build_ext" \
--config-settings="--global-option=-I$$(brew --prefix graphviz)/include/" \
--config-settings="--global-option=-L$$(brew --prefix graphviz)/lib/" \
pygraphviz


# ============
# = CI/CD =
# ============
format:
$(VENV_ACTIVATE) && ruff format .

lint:
$(VENV_ACTIVATE) && ruff check --fix .
docs: ## Renders docs locally
$(VENV_ACTIVATE) && mkdocs serve
tests: ## Run tests
$(VENV_ACTIVATE) && pytest -vv -s \
--cov=flowgentic \
--cov-report=html:coverage_report \
--cov-report=term-missing \
--cov-report=term:skip-covered \
tests/
tests-units:
$(VENV_ACTIVATE) && pytest -vv -s \
--cov=flowgentic \
--cov-report=html:coverage_report \
--cov-report=term-missing \
--cov-report=term:skip-covered \
tests/unit

# ============
# = EXAMPLES =
# ============

## LangGraph
### Design Patterns
examples-chatbot-toy:
$(VENV_ACTIVATE) && python3 -m examples.langgraph-integration.design_patterns.chatbot.toy
examples-sequential-research:
$(VENV_ACTIVATE) && python3 -m examples.langgraph-integration.design_patterns.sequential.research_agent.main
examples-supervisor-toy:
$(VENV_ACTIVATE) && python3 -m examples.langgraph-integration.design_patterns.supervisor.toy.main
#### Memory
examples-sequential-research-memory:
$(VENV_ACTIVATE) && python3 -m examples.langgraph-integration.design_patterns.sequential.research_agent_memory.main
### Services
examples-services-intermittent-task:
$(VENV_ACTIVATE) && python3 -m examples.langgraph-integration.service-task.service-intermittent
### Miscellaneous
examples-runtime-graph:
$(VENV_ACTIVATE) && python3 -m examples.langgraph-integration.miscellaneous.runtime-graph-creation
# 1) Set-up
help: ## Show this help message
@printf "$(BLUE) Available commands: $(RESET)\n"
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(GREEN)%-15s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST)
install: ## Install core dev dependencies
uv venv $(VENV_PATH) --python 3.10
uv pip install -e ".[dev]"
install-benchmark: ## Install dev + benchmark dependencies (langgraph + asyncflow)
uv venv $(VENV_PATH) --python 3.10
uv pip install -e ".[langgraph,asyncflow,dev]"
install-all: ## Install all dependencies (frameworks + runtimes + dev)
uv venv $(VENV_PATH) --python 3.10
uv pip install -e ".[all,dev]"

# 2) Examples
examples-lg-asyncflow: ## Langgraph + Asyncflow
$(VENV_ACTIVATE) && python3 -m examples.langgraph_asyncflow
examples-ca-asyncflow: ## CrewAI + Asyncfow
$(VENV_ACTIVATE) && python3 -m examples.crewai_asyncflow
examples-ag-asyncflow: ## AutoGen + Asyncfow
$(VENV_ACTIVATE) && python3 -m examples.autogen_asyncflow
examples-lg-parsl: ## AutoGen + Parsl
$(VENV_ACTIVATE) && python3 -m examples.langgraph_parsl
examples-ag-parsl: ## AutoGen + Parsl
$(VENV_ACTIVATE) && python3 -m examples.autogen_parsl

# 3) Benchmark
benchmark: ## Run the experiments in the benchmarking
$(VENV_ACTIVATE) && python3 -m tests.benchmark.data_generation.run_experiments

benchmark-multiple-workloads: ## Run the full benchmark suite with multiple configs
$(VENV_ACTIVATE) && python3 -m tests.benchmark.run_benchmark_suite
Loading
Loading