Skip to main content

Felix Agent SDK

Helical multi-agent orchestration for convergent collaboration.

Felix is a Python SDK for building multi-agent AI systems that progressively converge from broad exploration to focused synthesis. Unlike graph-based frameworks that route tasks through static DAGs, Felix models agent collaboration as movement along a helical geometry — agents start wide (exploring diverse perspectives) and spiral inward toward consensus, with a central coordination hub managing communication at O(N) efficiency.

pip install felix-agent-sdk

Quickstart

Your First Felix Workflow (< 10 lines)

from felix_agent_sdk import run_felix_workflow, WorkflowConfig
from felix_agent_sdk.providers import OpenAIProvider

provider = OpenAIProvider(model="gpt-4o")
config = WorkflowConfig()  # 1 Research + 1 Analysis + 1 Critic

result = run_felix_workflow(config, provider, "Evaluate the state of multi-agent AI frameworks")
print(result.synthesis)

That's it. Felix handles agent spawning positions, position-aware prompting (research agents get higher temperature, critic agents get lower), hub-spoke message routing, and final synthesis.


Why Felix?

The Problem with Existing Frameworks

Most multi-agent frameworks model collaboration as graph traversal: define nodes, wire edges, pass state. This works for deterministic pipelines, but it doesn't model how expert teams actually converge on complex problems — starting with broad exploration, iteratively refining, and progressively narrowing toward synthesis.

What Felix Does Differently

Helical Geometry as a First-Class Primitive. Agent progression isn't a flat graph — it's a 3D helix where position determines behavior. Agents at the top (wide radius) explore broadly with high creativity. As they descend and the helix narrows, they focus, critique, and synthesize. This isn't a metaphor; it's implemented mathematically with parametric equations that control temperature, token budgets, and prompting strategies based on position.

Hub-Spoke Communication via CentralPost. Instead of requiring developers to wire message-passing between every agent pair (O(N²) mesh), Felix routes all communication through a central coordination hub at O(N) complexity. CentralPost manages message queuing, phase-aware routing, agent awareness, and synthesis.

Dynamic Spawning with Confidence Monitoring. Felix agents don't just execute predefined tasks — the system monitors confidence levels and content gaps in real time, spawning additional agents when the team needs reinforcement. (Dynamic spawning module coming in a future release.)

Provider-Agnostic by Design. Swap LLM providers with a single configuration change. Use Claude for research agents and GPT-4 for analysis agents. Run locally with LM Studio during development and switch to production APIs for deployment. The provider abstraction is clean and extensible.

Framework Comparison

Capability Felix Agent SDK LangGraph Claude Agent SDK
Agent topology Helical progression Directed graph (DAG) Single agent loop
Multi-agent native Core architecture Via nodes/edges Single agent
Communication model Hub-spoke O(N) Shared state N/A
Dynamic team composition Confidence-based Static graph Fixed
Position-aware behavior Geometry-driven Manual N/A
Provider-agnostic Any LLM Any LLM Claude only
Memory & knowledge persistence Built-in Checkpointing Via tools
Progressive convergence Architectural Manual loops N/A

Installation

Basic (core + no provider dependencies)

pip install felix-agent-sdk

With a specific LLM provider

pip install felix-agent-sdk[anthropic]   # Claude
pip install felix-agent-sdk[openai]      # OpenAI / OpenAI-compatible
pip install felix-agent-sdk[local]       # LM Studio, Ollama (uses OpenAI-compat API)

Everything

pip install felix-agent-sdk[all]

Requirements

Python 3.10 or higher. Core dependencies: pydantic, httpx, numpy, pyyaml.


Core Concepts

The Helix

The helix is Felix's central abstraction. It's a 3D parametric curve defined by four parameters:

from felix_agent_sdk.core.helix import HelixGeometry

helix = HelixGeometry(
    top_radius=3.0,     # Breadth of exploration (wider = more diverse)
    bottom_radius=0.5,  # Precision of synthesis (narrower = more focused)
    height=8.0,         # Total progression depth
    turns=2             # Number of complete spirals
)

Each agent is positioned on this helix at parameter t in [0, 1], where t=0 is the top (wide exploration) and t=1 is the bottom (narrow synthesis). The agent's position determines its behavior: temperature, token budget, and prompting strategy are all derived from the geometry.

Named presets are available for common scenarios:

from felix_agent_sdk.core.helix import HelixConfig

config = HelixConfig.default()              # Balanced general-purpose
config = HelixConfig.research_heavy()       # Wide top, many turns
config = HelixConfig.fast_convergence()     # Steep descent, quick synthesis

Agents

Felix provides three specialized agent types, each designed for a phase of the convergence process:

ResearchAgent — Operates near the top of the helix. High temperature, broad exploration, gathers diverse perspectives. Spawned early in the workflow.

AnalysisAgent — Operates in the middle band. Moderate temperature, evaluates research findings, identifies patterns and gaps.

CriticAgent — Operates in the lower band. Low temperature, challenges assumptions, validates reasoning, ensures rigor.

from felix_agent_sdk import AgentFactory
from felix_agent_sdk.providers import AnthropicProvider

provider = AnthropicProvider(model="claude-sonnet-4-6")
factory = AgentFactory(provider)

team = factory.create_specialized_team("moderate")
# Returns: [ResearchAgent, AnalysisAgent, CriticAgent]

CentralPost (Hub-Spoke Communication)

CentralPost is the coordination hub through which all agent communication flows. It handles message routing, agent registration, and phase tracking.

from felix_agent_sdk import CentralPost, Spoke
from felix_agent_sdk.communication import SpokeManager

hub = CentralPost(max_agents=10)
spoke_mgr = SpokeManager(hub=hub)

# Create spokes for each agent
for agent in team:
    spoke_mgr.create_spoke(agent.agent_id, agent=agent)

# Route messages
spoke_mgr.process_all_messages()

Memory

Felix includes built-in memory systems that persist knowledge across workflow runs:

KnowledgeStore — Long-term storage for insights and findings, tagged with confidence levels and knowledge types.

TaskMemory — Pattern recognition for recurring tasks. Tracks successful strategies and outcomes.

ContextCompressor — Manages growing context windows by intelligently compressing earlier conversation history.

from felix_agent_sdk.memory import KnowledgeStore, KnowledgeType, ConfidenceLevel

store = KnowledgeStore()  # In-memory default; pass SQLiteBackend for persistence
kid = store.add_entry(
    knowledge_type=KnowledgeType.AGENT_INSIGHT,
    content={"text": "Solar capacity grew 40% year-over-year"},
    confidence_level=ConfidenceLevel.HIGH,
    source_agent="research-001",
    domain="energy",
)
entry = store.get_entry_by_id(kid)

Workflow Patterns

Research Pipeline

A team investigates a topic, analyzes findings, and produces a synthesized report:

from felix_agent_sdk import FelixWorkflow
from felix_agent_sdk.workflows.templates import research_config

config = research_config()  # 2 Research + 1 Analysis + 1 Critic, 4 rounds
workflow = FelixWorkflow(config, provider)
result = workflow.run("What are the implications of quantum computing for cryptography?")

print(result.synthesis)
print(f"Confidence: {result.final_confidence:.2f}")
print(f"Rounds: {result.total_rounds}")

Critique-and-Refine

An iterative pattern where critic agents challenge analysis agents:

from felix_agent_sdk.workflows.templates import review_config

config = review_config()  # 1 Research + 1 Analysis + 2 Critic
workflow = FelixWorkflow(config, provider)
result = workflow.run("Review this technical specification for logical consistency")

Custom Workflow

For full control, configure the workflow directly:

from felix_agent_sdk import FelixWorkflow, WorkflowConfig
from felix_agent_sdk.core.helix import HelixConfig
from felix_agent_sdk.workflows.config import SynthesisStrategy

config = WorkflowConfig(
    helix_config=HelixConfig(top_radius=4.0, bottom_radius=0.3, height=10.0, turns=3),
    team_composition=[
        ("research", {}),
        ("research", {}),
        ("analysis", {}),
        ("critic", {}),
    ],
    confidence_threshold=0.85,
    max_rounds=5,
    synthesis_strategy=SynthesisStrategy.COMPRESSED_MERGE,
)

workflow = FelixWorkflow(config, provider)
result = workflow.run("Comprehensive analysis of the AI agent SDK market landscape")
print(f"Synthesis (confidence: {result.final_confidence:.2f}):")
print(result.synthesis)

Provider Configuration

Felix supports multiple LLM providers through a clean abstraction layer:

from felix_agent_sdk.providers import AnthropicProvider, OpenAIProvider, LocalProvider

# Anthropic Claude
provider = AnthropicProvider(model="claude-sonnet-4-6", api_key="sk-...")

# OpenAI
provider = OpenAIProvider(model="gpt-4o", api_key="sk-...")

# Local (LM Studio, Ollama)
provider = LocalProvider(
    base_url="http://localhost:1234/v1",
    model="llama-3.1-8b",
)

Environment Variables

export FELIX_PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
export FELIX_MODEL=claude-sonnet-4-6
from felix_agent_sdk.providers import auto_detect_provider

provider = auto_detect_provider()  # Reads from environment

Roadmap

Phase 1 — Core SDK (v0.1.0): Pip-installable package with provider abstraction, core primitives, and documentation.

Phase 2 — Developer Experience (v0.2.0): Event system, structured logging, streaming, dynamic spawning, CLI tooling (felix init, felix run), expanded examples.

Phase 3 — Hardening & Async (v0.3.0, Current): Async provider interface (acomplete/astream), typed provider errors with retry-after extraction, strict type-checking gate, Windows + Python 3.13 CI, SQLite hardening, bounded message history.

Phase 4 — Community & Ecosystem: Tool use / structured output support in the provider layer, MCP server integration, vector database connectors, observability adapters, community contribution framework.


Contributing

We welcome contributions. See CONTRIBUTING.md for guidelines.

git clone https://github.com/AppSprout-dev/felix-agent-sdk.git
cd felix-agent-sdk
pip install -e ".[dev]"
pytest

License

MIT License. See LICENSE for details.


Built with care by the AppSprout team.

Metadata

Release files for felix-agent-sdk 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for felix-agent-sdk 0.3.0
File Size Uploaded Provenance
felix_agent_sdk-0.3.0.tar.gz 178.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for felix-agent-sdk 0.3.0
File Interpreter ABI Platform
felix_agent_sdk-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 300.5 kB

Release files / felix_agent_sdk-0.3.0.tar.gz

Download URL felix_agent_sdk-0.3.0.tar.gz
Size 178.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3800c30201750c1e45289e6d4b43446e3c398911a0575b18eb8f2f1f6956b4f9
BLAKE2b-256 checksum
How to use checksums
f7427fa6a6f2051b9c2676997d3a195c6fb1350c7411fdcf5d1d63e141e0b02b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.

Transparency log

Release files / felix_agent_sdk-0.3.0-py3-none-any.whl

Download URL felix_agent_sdk-0.3.0-py3-none-any.whl
Size 122.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5544df134f80e3b935dc6f17ce526dfca8651c0b9be95fa342b5b337b5930b60
BLAKE2b-256 checksum
How to use checksums
b418272ba0eb69a78dbef653cda772b85ea8d5edfc45238ae01357787a17d3ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.

Transparency log

Security for felix-agent-sdk 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for felix_agent_sdk-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page