Skip to main content

🐮 Calfkit

Build decentralized multi-agent systems. Agents discover each other at runtime, choreograph work, and scale as independent, event-driven services.

License PyPI version PyPI downloads Python versions codecov Ask DeepWiki

Calfkit agents find each other and choreograph work over a mesh — a highly-connected data streaming network they auto-discover and communicate on. Each agent runs as an independent, event-driven service, so you can build free-flowing multi-agent workflows that collaborate and react to live data streams.


Why Calfkit?

  • Dynamic agent-to-agent discovery and collaboration. Agents find each other at runtime and work together — messaging each other and handing off tasks — so you build multi-agent systems without complex wiring or orchestration, and extend team capabilities at any time.
  • Scalable by default. Every agent runs and scales as an independent microservice, so your agent teams are resilient and scalable from day one.
  • React to realtime data streams. Agents are event-driven, so they react to realtime data streams — live market feeds, log streams, support-ticket queues — and send results wherever they're needed. Build agents that work like continuously streaming workflows, not one-off requests.
  • Scale on production-ready infrastructure. The agent mesh is Kafka-compatible so you can run + scale your agents on production-ready streaming infrastructure straight out of the box.

Installation

# Recommended for getting started, includes a zero-setup in-memory dev mesh:
pip install 'calfkit[mesh]'

Quickstart

With the [mesh] extra, ck dev spins up a local in-memory mesh for you — no Docker, no CALFKIT_MESH_URL required.

Agent

Save as general.py:

from calfkit import Agent, Handoff, Messaging, OpenAIResponsesModelClient

general = Agent(
    name="general",
    description="Answers simple questions and routes requests to whoever can handle it.",
    system_prompt="You are a general assistant. Defer technical questions to other agents.",
    model_client=OpenAIResponsesModelClient(model_name="gpt-5.4"),
    peers=[
        Messaging(discover=True),  # discover and delegate to any agent at runtime
        Handoff(discover=True),    # discover and hand off to any agent at runtime
    ],
)

Run it and chat

# Starts the agent (and a local mesh if one isn't running):
#   ck dev run <file>:<agent>
ck dev run general:general

# In a second terminal, chat with the agent:
ck dev chat

Add another agent — and watch them discover each other

Save as finance.py:

from calfkit import Agent, OpenAIResponsesModelClient

finance = Agent(
    name="finance",
    description="Answers the user's personal finance questions.",
    system_prompt="You are the personal finance specialist. Answer finance-related questions.",
    model_client=OpenAIResponsesModelClient(model_name="gpt-5.4"),
)
ck dev run finance:finance

Now ask a finance question in ck dev chatgeneral discovers finance at runtime and hands off automatically. No wiring, no orchestrator.

Running an agent mesh

Calfkit agents discover and communicate over a mesh.

For local dev, the bundled in-memory broker (via [mesh] extra) is zero-setup — see How to run a local mesh with ck dev.

In production, the mesh is Kafka-compatible so you can drop your agent swarms into production-ready Kafka streaming infrastructure you already use.

Want a fully-managed mesh your agents can join from anywhere? Join the beta

Documentation

  • Getting started: See docs/.
  • Examples: See examples/ — multi-agent team and general framework API examples.

Contributing

Issues and pull requests are welcome. Please open an issue to discuss substantial changes before sending a PR.

See CONTRIBUTING.md.

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calfkit-0.12.9.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

calfkit-0.12.9-py3-none-any.whl (860.2 kB view details)

Uploaded Python 3

File details

Details for the file calfkit-0.12.9.tar.gz.

File metadata

  • Download URL: calfkit-0.12.9.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for calfkit-0.12.9.tar.gz
Algorithm Hash digest
SHA256 593d74a751d11dfec325aba497f6d8434850f83af0fbc38670dddc08645abe4a
MD5 f76ac0ca38c537588d8baf44779be91b
BLAKE2b-256 5d238a94899d7bbb0db445088e0685b27938b2138d3d7521708e7891b2c94d58

See more details on using hashes here.

Provenance

The following attestation bundles were made for calfkit-0.12.9.tar.gz:

Publisher: release.yml on calf-ai/calfkit-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file calfkit-0.12.9-py3-none-any.whl.

File metadata

  • Download URL: calfkit-0.12.9-py3-none-any.whl
  • Upload date:
  • Size: 860.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for calfkit-0.12.9-py3-none-any.whl
Algorithm Hash digest
SHA256 4c86d397cf67079f1acf122f1280329adacea86e2a79173b13acdac1171e1d9b
MD5 ee1a990a5f268ed9fae0641052fcecb2
BLAKE2b-256 a19a54fb21095e9f5c44b467ef24088e5c365a96f477be3d497266ad898f0a34

See more details on using hashes here.

Provenance

The following attestation bundles were made for calfkit-0.12.9-py3-none-any.whl:

Publisher: release.yml on calf-ai/calfkit-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.13.0

2 files

0.12.10

2 files

This release

0.12.9 This release

2 files

0.12.8

2 files

0.12.7

2 files

0.12.6

2 files

0.12.5

2 files

0.12.4

2 files

0.12.3

2 files

0.12.2

2 files

0.12.1

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.1

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 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