Synqed - A wrapper around A2A for simplified multi-agent systems interaction and communication
Project description
Synqed
A Python SDK for building multi-agent systems with workspace-based orchestration.
Installation
pip install synqed
Quick Start
import synqed
from synqed import PlannerLLM, WorkspaceExecutionEngine, WorkspaceManager
# Initialize the planner
planner = PlannerLLM(
provider="anthropic",
api_key="your-api-key",
)
# Plan a task and create agents
task_plan, agent_specs = await planner.plan_task_and_create_agent_specs(
user_task="Your task description",
agent_provider="anthropic",
agent_api_key="your-api-key",
)
# Create agents from specs
agents = synqed.create_agents_from_specs(agent_specs)
# Register agents
for agent in agents:
synqed.AgentRuntimeRegistry.register(agent.name, agent)
# Create workspace manager and execution engine
workspace_manager = synqed.WorkspaceManager()
execution_engine = synqed.WorkspaceExecutionEngine(
planner=planner,
workspace_manager=workspace_manager,
)
# Create and run workspaces
root_workspace = await workspace_manager.create_workspace(
task_tree_node=task_plan.root,
parent_workspace_id=None,
)
await execution_engine.run_workspace(root_workspace.workspace_id)
Features
- PlannerLLM: Task decomposition and agent specification generation
- WorkspaceManager: Hierarchical workspace creation and management
- WorkspaceExecutionEngine: Multi-agent execution with message routing
- PlannerAgent: CEO-style coordinator for root workspaces
- Agent: Flexible agent creation with custom logic functions
- MCP Integration: Optional Model Context Protocol support
Development
Install for Development
make install
Run Tests
make test # core tests only
make test-examples # example tests
make test-all # all tests with coverage
Lint & Format
make lint # run linters
make format # format code
Publishing to PyPI
Prerequisites
pip install build twine
Create a .env file with your PyPI tokens:
TWINE_PASSWORD=pypi-your-production-token
TWINE_TEST_PASSWORD=pypi-your-test-token # optional
Publish
# publish to production pypi (recommended)
./scripts/publish.sh --prod
# or publish to test pypi first
./scripts/publish.sh --test
The publish.sh script automatically:
- Increments the patch version (e.g., 1.1.91 → 1.1.92)
- Updates
pyproject.tomlandsrc/synqed/__init__.py - Updates
python-backend/requirements.txtto use the new version - Cleans, builds, and uploads the package
- Prompts for confirmation before production publish
After publishing, commit the version bump:
git add -A && git commit -m "Release synqed v$(grep 'version = ' pyproject.toml | cut -d'"' -f2)"
git push origin main
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
synqed-1.1.93.tar.gz
(232.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
synqed-1.1.93-py3-none-any.whl
(149.9 kB
view details)
File details
Details for the file synqed-1.1.93.tar.gz.
File metadata
- Download URL: synqed-1.1.93.tar.gz
- Upload date:
- Size: 232.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6307c0afdf521b554bcf877b43ff98c4d6f479f11472bd62e58a58f58dffde6e
|
|
| MD5 |
f6133d3c03e3b49fb89739ab65b4c2c6
|
|
| BLAKE2b-256 |
3f3d2394702c568c65d0f1f0e31ac9631184265468e0674915b9d8bfa7bec9b9
|
File details
Details for the file synqed-1.1.93-py3-none-any.whl.
File metadata
- Download URL: synqed-1.1.93-py3-none-any.whl
- Upload date:
- Size: 149.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f675848629d25094894cf218da3bfac7dd45e7841fc618ce97cb055d8630d11
|
|
| MD5 |
80e9fc281e9c250e789126f299113850
|
|
| BLAKE2b-256 |
1e4fe508c3f5ce4b34cbd1a9e30b017e72152e8ef81bfcb4d4500f3f6c2df484
|