Skip to main content

A framework to build powerful AI agent teams.

Project description

🐮 Calfkit

Build powerful AI agents with automatic, open inter-agent discovery and communication.

License PyPI version PyPI downloads Python versions codecov Ask DeepWiki

Calfkit agents dynamically find each other at runtime and choreograph work, with no hard-coded orchestrator or wiring. Build free-flowing and flexible multi-agent workflows.


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.
  • No bottleneck, no single point of failure. Every agent runs and scales as an independent microservice, so your agent teams are resilient and scalable from day one.
  • Act on live data in realtime. Agents are event-driven so they act on realtime data streams, sending live results wherever they're needed — build agents that work like continuous workflows, not one-off requests.

Installation

pip install calfkit

Quickstart

Agents run on a mesh. Set the CALFKIT_MESH_URL environment variable.

Agent

from calfkit import Agent, Handoff, Messaging, Tools, 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-mini"),
    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 locally

You can add more agents to the team as you keep this agent's process running in the background.

# `CALFKIT_MESH_URL` required

# Start the agent process (general_help.py): 
# ck run file_name:agent_name
ck run general_help:general  

# Interactive agent chat CLI
ck chat

Add another agent to the team

from calfkit import Agent, agent_tool, Tools, ToolContext, 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-mini"),
)

Run new agent locally

ck run finance_help:finance

ck chat

Running an agent mesh

Calfkit agents discover and communicate over an agent mesh (CALFKIT_MESH_URL), which you can run locally yourself.

Start one with Docker:

git clone https://github.com/calf-ai/calfkit-broker && cd calfkit-broker && make dev-up

If you might be interested in a fully-managed mesh server your agents can join from anywhere, let me know.

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 for development setup, the quality gates (make fix / make check / make test), PR conventions, and how to write and run tests — including integration tests.

License

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

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

calfkit-0.12.4.tar.gz (1.1 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.4-py3-none-any.whl (779.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: calfkit-0.12.4.tar.gz
  • Upload date:
  • Size: 1.1 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.4.tar.gz
Algorithm Hash digest
SHA256 455f5275461710016f589d0639317d0289ea4c4361e3c6bebabd7b15b045d643
MD5 51681950bff281754bee3952b3a99402
BLAKE2b-256 26926c56d129cee2fa57d0e9de41f0f904ea776a7c4b4896714e04a8270100df

See more details on using hashes here.

Provenance

The following attestation bundles were made for calfkit-0.12.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: calfkit-0.12.4-py3-none-any.whl
  • Upload date:
  • Size: 779.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3d2f426bea04ea89090a23b1718b8c3df5c9c3993568ae7363ab8c59aa1c5ef4
MD5 8c47f66986279ee4ee9fc5ae95bab3d7
BLAKE2b-256 5374ecbf5e0083b43a076593ae252d12d961af869178ae896defefc291010f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for calfkit-0.12.4-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.

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