Domain-agnostic LLM orchestration engine built on LangGraph
Project description
alfredagain
Domain-agnostic LLM orchestration engine built on LangGraph.
Alfred is a multi-agent assistant framework. You implement a DomainConfig to teach it your domain — entities, subdomains, prompts, database adapter — and Alfred handles the orchestration: routing, planning, CRUD execution, entity tracking, prompt assembly, and conversation memory.
Install
pip install alfredagain
Quick Start
from alfred.domain.base import DomainConfig, EntityDefinition, SubdomainDefinition
from alfred.domain import register_domain
class MyDomain(DomainConfig):
@property
def name(self) -> str:
return "mydomain"
@property
def entities(self) -> dict[str, EntityDefinition]:
# Define your entities...
...
@property
def subdomains(self) -> dict[str, SubdomainDefinition]:
# Define your subdomains...
...
# Implement remaining abstract methods...
# Register and run
register_domain(MyDomain())
from alfred.graph.workflow import run_alfred
response, conversation = await run_alfred(
user_message="Hello!",
user_id="user_1",
)
What Alfred Provides
- Pipeline orchestration — Understand → Think → Act → Reply, with LangGraph state management
- Entity tracking — SessionIdRegistry translates UUIDs to simple refs (recipe_1, item_2)
- CRUD execution — Schema-driven database operations with middleware hooks
- Prompt assembly — Domain-provided personas, examples, and context injection
- Conversation memory — Turn summarization, context windowing, session persistence
- Model routing — Complexity-based model selection (mini for simple, full for complex)
- Streaming — 11 typed events for real-time UI updates
Architecture
Core is fully domain-agnostic. It never imports any domain package. Domains implement DomainConfig (66 methods — 23 abstract, 43 with defaults) and call register_domain().
See docs/architecture/ for detailed documentation:
overview.md— Architecture index + pipeline diagramdomain-implementation-guide.md— How to build a new domaincore-public-api.md— Entry points, extension protocols
Development
git clone https://github.com/YOUR_USERNAME/alfred-core.git
cd alfred-core
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -e ".[dev]"
pytest tests/ -v
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
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 alfredagain-2.0.0.tar.gz.
File metadata
- Download URL: alfredagain-2.0.0.tar.gz
- Upload date:
- Size: 22.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84db089181ff5de3a11920d1cee9343f878031c26338742ba7471b12ebea7680
|
|
| MD5 |
24867b50f6173230062f0c43a8a12bf7
|
|
| BLAKE2b-256 |
54f5cb43bd5f1d08580dbbbe548272318ada8458d48d21c683c535ebabb5d657
|
File details
Details for the file alfredagain-2.0.0-py3-none-any.whl.
File metadata
- Download URL: alfredagain-2.0.0-py3-none-any.whl
- Upload date:
- Size: 189.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19a24f0b445256c54289f234de7ff8284e77abc998c07fa3ff9f4e7a4aeddb25
|
|
| MD5 |
324b46c1c494b922669e508ef8712a2d
|
|
| BLAKE2b-256 |
0898663a0a4158f2788a18814360aa59bc2e4313eefb48fc3276924cdd7c18d6
|