Agents for intelligence and coordination
Project description
Calute
Calute is a framework for building AI agents that can orchestrate function calls and switch between agents. It is designed for researchers experimenting with agent orchestration and function calling.
Key Features
- Agent Orchestration: Calute helps manage multiple agents and their interactions, allowing you to create complex AI systems.
- Function Calling: Calute simplifies the process of calling functions from AI agents, enabling them to interact with external tools and data sources.
- Agent Switching: Calute provides agent switching capabilities, allowing you to create more dynamic and intelligent systems that can adapt to different situations.
- Workflow Engine: Calute includes a workflow engine for defining and executing complex workflows involving LLMs and function execution.
- LLM Client Abstraction: Calute supports OpenAI and Gemini models through a unified client interface, making it easy to switch between different LLMs.
Installation
To install Calute, use the following command:
poetry install
Usage
Here are some examples of how to use Calute:
Registering an Agent
from calute import Agent, AgentFunction, Calute
def my_function(input_data: str, context_variables: dict = None):
"""My function description (LLM will read the docs!)"""
return f"Function executed with input: {input_data}"
agent = Agent(
id="my_agent",
name="My Agent",
functions=[AgentFunction(func=my_function)],
instructions="Follow these instructions."
)
# Assuming you have an initialized OpenAI or Gemini client
# client = OpenAI(...) or client = Gemini(...)
# calute = Calute(client)
# calute.register_agent(agent)
Defining a Workflow
from calute import Workflow, WorkflowStep, WorkflowEngine, WorkflowStepType
# Assuming you have a Calute instance
# calute = Calute(...)
# workflow_engine = WorkflowEngine(calute)
# workflow = workflow_engine.create_function_workflow(
# id="my_workflow",
# name="My Workflow",
# functions=[my_function]
# )
Running a Workflow
# Assuming you have a workflow defined
# result = await workflow_engine.execute_workflow(
# workflow_id="my_workflow",
# context_variables={"input_data": "Hello, world!"}
# )
# print(result)
Modules
calute.py: Core Calute class with orchestration capabilities.chain_module.py: Function chaining and execution.client.py: LLM client abstraction for OpenAI and Gemini.executors.py: Function and agent execution logic.workflow.py: Workflow engine for defining and executing complex workflows.types/: Data types and structures used in Calute.utils.py: Utility functions.basics.py: Basic registries.
Types
Agent: Represents an AI agent with capabilities and functions.PromptTemplate: Configurable template for structuring agent prompts.FunctionCall: Represents a function call to be executed.Workflow: Defines a workflow with steps and transitions.
Example Mermaid Diagram
graph LR
A[User Prompt] --> B{Agent Orchestrator}
B --> C{Agent 1}
C --> D[Function Call 1]
D --> E{Function Executor}
E --> F[Result 1]
F --> B
B --> G{Agent 2}
G --> H[Function Call 2]
H --> E
E --> I[Result 2]
I --> J[Final Response]
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributing
Contributions are welcome! Please see the contributing guidelines for more information.
Contact
If you have any questions or issues, please contact erfanzar.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file calute-0.0.14.tar.gz.
File metadata
- Download URL: calute-0.0.14.tar.gz
- Upload date:
- Size: 127.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cae8caad54ee22d5f0ceb74cd23f9ebd50ff4137a702a57edf9a16bfe0190743
|
|
| MD5 |
7e6af862cddb750b30999580e01dcfe6
|
|
| BLAKE2b-256 |
dc8cfeef067ddd372b292bee009259e7087f3d1f68eab156be89d82cebe30f4e
|
File details
Details for the file calute-0.0.14-py3-none-any.whl.
File metadata
- Download URL: calute-0.0.14-py3-none-any.whl
- Upload date:
- Size: 73.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e89e473a2eb597ef00f0e30e9abae89902e634685514df760a03fb7cb808f2f8
|
|
| MD5 |
ab51f3413af457908eb8868c459d4a45
|
|
| BLAKE2b-256 |
607f51698639c6f36cb5d0dc023586579b4a1243a16f78be3bd4cd5ea8a98679
|