A dialectical framework for augmented intelligence. AI reasoning powered with dialectics supports humans in: system optimization (psychology, engineering, business, politics, etc.); dispute resolution (mediation, conflicts, negotiations, etc.); decision-making (dilemmas, challenging situations, win-win, etc.).
Project description
Dialectical Framework
A reasoning framework for AI applications that need structured dialectical analysis. It curates a graph database through LLM-guided conversation, building up thesis-antithesis-synthesis structures from any domain.
The graph database is the state. Every interaction — extracting theses, finding oppositions, building wheels — writes semantic nodes and relationships into the graph. The framework is essentially a curation engine: an LLM orchestrator that progressively structures user input into dialectical knowledge graphs.
How It Works
- Input — User provides text, URLs, or ideas
- Analysis — LLM extracts theses, finds antitheses, generates aspects (T+, T-, A+, A-)
- Graph curation — Each insight is committed as nodes/relationships in the graph database
- Exploration — Perspectives are combined into Cycles, arranged into Wheels, and Transformations reveal paths toward synthesis
The graph accumulates structured reasoning over time. Applications query it, visualize it, or build on it.
Architecture
Host Application (Chainlit, API, CLI)
│
▼
Orchestrator (LLM + tools)
│
▼
Graph Database (Memgraph / Neo4j)
The Orchestrator is the main entry point. It manages an LLM conversation with tools that read and write the graph. The host app controls persona and session identity; the framework handles reasoning and graph curation.
Core Graph Structure
At the heart is the Dialectical Wheel — a semantic graph where nodes are statements and edges encode dialectical relationships (opposition, complementarity, transformation).
| Structure | Role |
|---|---|
| Statement | Atomic unit of meaning |
| Perspective | T/A opposition with aspects (T+, T-, A+, A-) |
| Cycle | Ordered sequence of Perspectives |
| Wheel | Concrete T-A arrangement implementing a Cycle |
| Transformation | Action-Reflection paths between segments |
| Synthesis | Emergent S+/S- from the Wheel's circular causality |
Think of a Wheel as a pizza: segments are slices (T, T+, T-), Perspectives are half-pizzas (thesis + opposing antithesis), and Transitions are the cuts between slices.
| Simple | Detailed |
|---|---|
Integration
The framework is designed as a drop-in reasoning engine for AI applications that need dialectical analysis — decision support, systems thinking, mediation, ethical modeling.
from dialectical_framework.dialectical_reasoning import DialecticalReasoning
from dialectical_framework.settings import Settings
from dialectical_framework.agents.orchestrator.orchestrator import Orchestrator
# Initialize once
DialecticalReasoning.setup(Settings.from_env())
# Per-session usage
orchestrator = Orchestrator(app_preamble="You are a systems thinking coach...")
async for event in orchestrator.chat_stream("Analyze the tension between growth and sustainability"):
# ThinkingDelta, TextDelta, ToolStart, ToolResult, ResponseComplete
handle(event)
Setup
Requirements
- Python 3.11+
- Memgraph or Neo4j
- An LLM provider (OpenAI, Anthropic, or any LiteLLM-compatible)
Install
poetry install
Environment Variables
| Variable | Description | Example |
|---|---|---|
DIALEXITY_DEFAULT_MODEL |
Model in provider/model format | bedrock/anthropic.claude-sonnet-4-20250514-v1:0 |
DIALEXITY_GRAPH_DB_VENDOR |
Graph database | memgraph (default) or neo4j |
DIALEXITY_GRAPH_DB_HOST |
Database host | 127.0.0.1 |
DIALEXITY_GRAPH_DB_PORT |
Database port | 7687 |
DIALEXITY_THINKING_LEVEL |
Extended thinking budget | medium, high, max (optional) |
Store in .env or export in your environment.
Run Tests
poetry run pytest # All tests (LLM mocked)
poetry run pytest -m llm # Only LLM-path tests (mocked)
poetry run pytest --real-llm # Hit real LLM provider
Built With
- Mirascope — LLM abstraction
- GQLAlchemy — Graph ORM
- dependency-injector — DI container
Learn More
Applications
- Eye Opener — Analyze text, reveal hidden assumptions
- Argument Inspector — Deep-dive into case arguments for analysts and mediators
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 dialectical_framework-1.1.1.tar.gz.
File metadata
- Download URL: dialectical_framework-1.1.1.tar.gz
- Upload date:
- Size: 242.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.8 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cedce3998f9f20f90f61844077339767dbdb020b125c7f4f4c3e8b3235e68c17
|
|
| MD5 |
0a0d8055819fcfb475b2bb9b74d0b574
|
|
| BLAKE2b-256 |
43c39a49738e4eeef87565791630b1be7b67cc3d08342a84157647aec71983fe
|
File details
Details for the file dialectical_framework-1.1.1-py3-none-any.whl.
File metadata
- Download URL: dialectical_framework-1.1.1-py3-none-any.whl
- Upload date:
- Size: 337.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.8 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e03c31668e403163133ced8acc485fb1b1e789b85350482669990bf67fc4e6fc
|
|
| MD5 |
1f8b109c75868bfe57c4d0f2198dd728
|
|
| BLAKE2b-256 |
d241be994c26bdfa022a812e13dbb01f774f20424c4ce121a26c3cbb24452bb2
|