Prompt-based multi-agent context framework
Project description
Syntha SDK
The context-based multi‑agent framework. Build agents that share, route, and persist context — with first‑class tooling for prompts, tools, and popular LLM frameworks.
Why Syntha
- Context Mesh with topic routing and user isolation
- ToolHandler with adapters (OpenAI, Anthropic, LangChain, Agno)
- Prompt builders for system and message prompts
- Pluggable persistence (SQLite, PostgreSQL)
- Lightweight, framework‑agnostic, production‑ready
Install
pip install syntha
60‑second Quick Start
from syntha import ContextMesh, ToolHandler, build_system_prompt
# 1) Shared context, isolated per user
context = ContextMesh(user_id="demo_user")
# 2) Agents interact via tools (no manual data passing)
handler = ToolHandler(context, "AssistantAgent")
context.push("project", "AI Customer Support")
context.push("status", "active", topics=["support"]) # topic‑routed
# 3) Context‑aware prompts for your LLM
system_prompt = build_system_prompt("AssistantAgent", context)
print(system_prompt[:200] + "...")
Framework Integrations
- OpenAI function calling:
handler.get_openai_functions() - Anthropic tool use:
handler.get_anthropic_tools() - LangChain BaseTool:
handler.get_langchain_tools() - Agno Functions:
handler.get_tools_for_framework("agno")
See the docs for concise, copy‑paste examples.
Agno in 30 seconds
from syntha import ContextMesh, ToolHandler
mesh = ContextMesh(user_id="demo")
handler = ToolHandler(mesh, agent_name="Assistant")
agno_tools = handler.get_tools_for_framework("agno")
try:
from agno.agent import Agent
agent = Agent(
name="Assistant",
tools=agno_tools,
instructions="Use tools to read/write context.",
model="gpt-4o",
)
# response = agent.run("List context keys and fetch 'project'")
except ImportError:
print("pip install agno to enable Agent integration")
Documentation
- Docs: https://doc.syntha.ca
- Quick Start: https://doc.syntha.ca/user-guide/introduction/quick-start/
- Examples: https://doc.syntha.ca/examples/overview/
- API Reference: https://doc.syntha.ca/api/overview/
License
Apache 2.0 © Syntha. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file syntha-0.2.7.tar.gz.
File metadata
- Download URL: syntha-0.2.7.tar.gz
- Upload date:
- Size: 90.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34cc4f64c0004be385e0f1c772cdf68f626372863380fc2d7ab46dfbc1dea53e
|
|
| MD5 |
c4e66e2eea037bb6ac966448ac86e345
|
|
| BLAKE2b-256 |
4244c6767a51dee611aef494d57cd3f02ecd7a4a4d7851a3b0e6e21b26cf766d
|
Provenance
The following attestation bundles were made for syntha-0.2.7.tar.gz:
Publisher:
release.yml on Kirch77/syntha
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
syntha-0.2.7.tar.gz -
Subject digest:
34cc4f64c0004be385e0f1c772cdf68f626372863380fc2d7ab46dfbc1dea53e - Sigstore transparency entry: 444750425
- Sigstore integration time:
-
Permalink:
Kirch77/syntha@b13d9e0f5b82be14528217ede256b81db590bbfb -
Branch / Tag:
refs/tags/v0.2.7 - Owner: https://github.com/Kirch77
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b13d9e0f5b82be14528217ede256b81db590bbfb -
Trigger Event:
push
-
Statement type:
File details
Details for the file syntha-0.2.7-py3-none-any.whl.
File metadata
- Download URL: syntha-0.2.7-py3-none-any.whl
- Upload date:
- Size: 56.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3759ee9036c51bcbf8fb55dd4c3590a24397f0e3f8ef12588d9f5bd8f65aca9f
|
|
| MD5 |
26eebe5774be187de02f023452e5bdfc
|
|
| BLAKE2b-256 |
02ceeaa2b6adf504f89426166bc5ada2d4e36628275ca33c74f3eee2b8ae6e26
|
Provenance
The following attestation bundles were made for syntha-0.2.7-py3-none-any.whl:
Publisher:
release.yml on Kirch77/syntha
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
syntha-0.2.7-py3-none-any.whl -
Subject digest:
3759ee9036c51bcbf8fb55dd4c3590a24397f0e3f8ef12588d9f5bd8f65aca9f - Sigstore transparency entry: 444750445
- Sigstore integration time:
-
Permalink:
Kirch77/syntha@b13d9e0f5b82be14528217ede256b81db590bbfb -
Branch / Tag:
refs/tags/v0.2.7 - Owner: https://github.com/Kirch77
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b13d9e0f5b82be14528217ede256b81db590bbfb -
Trigger Event:
push
-
Statement type: