Skip to main content

A Framework for Scalable AI Agents

Project description

๐Ÿ˜ต๐Ÿฆœ 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

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

dead_parrot-0.1.8.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dead_parrot-0.1.8-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file dead_parrot-0.1.8.tar.gz.

File metadata

  • Download URL: dead_parrot-0.1.8.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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}

File hashes

Hashes for dead_parrot-0.1.8.tar.gz
Algorithm Hash digest
SHA256 dd5cce0afb5a6fd9d99805fef5b2e4c822424e9e131e748fb0829d963b581334
MD5 9d2655604ea0944f1f23685785387177
BLAKE2b-256 ae8d6c1265752d824b9835b67b19f250b52f4bf50bef583f81c3d290edc41ee2

See more details on using hashes here.

File details

Details for the file dead_parrot-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: dead_parrot-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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}

File hashes

Hashes for dead_parrot-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 9d14dda4479e6baa4325ee4d4f4fcfb9537a722a8b98620e2acf055a729233e1
MD5 e299515fd938e124a01e6b946954508b
BLAKE2b-256 680c71bda330a2d92e4e85d704f69b562075efd60315e549a65a174f53af8c54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page