Skip to main content

😵🦜 dead-parrot

A Framework for Scalable AI Agents

🐱 GitHub | 🐍 PyPI

dead-parrot is a Python package created by Lucas Konstantin Bärenfänger (@pygumby) as part of his thesis for the master's program "Data Analytics & Management" at Frankfurt School of Finance & Management. The thesis addresses the challenges of building and maintaining AI agents at scale in large organizations. These include heterogeneous technology stacks, sensitivity to the choice of underlying language models (LMs) and more. dead-parrot implements the approaches proposed to meet the challenges.


Overview

dead-parrot defines two key abstractions:

  • Expert agents answer questions based on subject-matter expertise, via retrieval-augmented generation (RAG)
  • Triage agents answer questions by interacting with expert agents in an agentic loop, via the ReAct pattern

dead-parrot builds on three key technologies:

  • DSPy to program LM pipelines declaratively, replacing brittle prompt engineering
  • Temporal to orchestrate agents as durable workflows, with automatic retries and recovery
  • Model Context Protocol (MCP) to expose agents in a standardized way, enabling integration with LM clients
                         ┌──────────┐┌─────────┐
                         │   MCP    ││  REST   │
                         │  server  ││ server  │
                         └──────────┘└─────────┘
                         ┌─────────────────────┐
                         │ ┌─────────────────┐ │
                         │ │  Triage agent   │ │
                         │ │  (DSPy ReAct)   │ │
                         │ └─────────────────┘ │
                         │  Temporal workflow  │
                         └─────────────────────┘
                         ┌─────────────────────┐
                         │    REST clients     │
                         └─────────────────────┘
                                    ▲
                                    │
                                    │
                 ┌──────────────────┴─────┬────────────────────────┐
                 │                        │                        │
                 │                        │                        │
                 ▼                        ▼                        ▼
┌──────────┐┌─────────┐  ┌──────────┐┌─────────┐  ┌──────────┐┌─────────┐
│   MCP    ││  REST   │  │   MCP    ││  REST   │  │   MCP    ││  REST   │
│  server  ││ server  │  │  server  ││ server  │  │  server  ││ server  │
└──────────┘└─────────┘  └──────────┘└─────────┘  └──────────┘└─────────┘
┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐
│ ┌─────────────────┐ │  │ ┌─────────────────┐ │  │ ┌─────────────────┐ │
│ │ Expert agent #1 │ │  │ │ Expert agent #2 │ │  │ │ Expert agent #n │ │
│ │   (DSPy RAG)    │ │  │ │   (DSPy RAG)    │ │  │ │   (DSPy RAG)    │ │
│ └─────────────────┘ │  │ └─────────────────┘ │  │ └─────────────────┘ │
│  Temporal workflow  │  │  Temporal workflow  │  │  Temporal workflow  │
└─────────────────────┘  └─────────────────────┘  └─────────────────────┘

Usage

dead-parrot is available on PyPI and can be installed via uv add dead-parrot or pip install dead-parrot.

The demos folder contains three projects that serve as examples of and templates for building agents with dead-parrot. There are two expert agents grounded in public documents from the European Central Bank (ECB), and one triage agent that answers questions by interacting with them:

  • ecb_bs_expert_agent: Expert agent for ECB Banking Supervision matters, grounded in public ECB documents
  • ecb_hr_expert_agent: Expert agent for ECB Human Resources matters, grounded in public ECB documents
  • ecb_triage_agent: Triage agent that answers questions on ECB matters by interacting with the expert agents

Each expert agent can be run standalone, but together with the triage agent they form the full architecture shown above. To start them all together, ensure uv and Temporal are installed, then run ./demos/start_all.sh. To ask questions to the triage agent, hook up localhost:9000/mcp with your favorite local LM client, e.g., Goose or Claude Desktop. Please refer to each demo's README.md for more information.

Development

  • Install dependencies: uv sync --all-packages
  • Type-check: uv run mypy .
  • Lint: uv run ruff check . --fix
  • Format: uv run ruff format .

License

MIT License

Metadata

Release files for dead-parrot 0.1.9

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

Source distribution (sdist)

Source distribution for dead-parrot 0.1.9
File Size Uploaded
dead_parrot-0.1.9.tar.gz 3.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dead-parrot 0.1.9
File Interpreter ABI Platform
dead_parrot-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 3.1 MB

Release files / dead_parrot-0.1.9.tar.gz

Download URL dead_parrot-0.1.9.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
d074bed716c10f5bbb20ac518c2ed63da5a3bf8301d71ac38d449ddebab98541
BLAKE2b-256 checksum
How to use checksums
8482be5c0896cb32d54c6689c9d5f4dde52a4082b26502123abf03bbc35912a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / dead_parrot-0.1.9-py3-none-any.whl

Download URL dead_parrot-0.1.9-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
335dd0af709476191d092e4b09860e7d5004743bfb0bc75e295b3ccc0fe605ec
BLAKE2b-256 checksum
How to use checksums
239597a37fdd179d1791eec33149ad2bfc7c6e9c5c7904c81fde0c552f2ee254
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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