Skip to main content

AI Agents framework with Pydantic AI support and LLM Gateway integration

Project description

Rakam Systems Agent

The agent package of Rakam Systems providing AI agent implementations powered by Pydantic AI.

Overview

rakam-systems-agent provides flexible AI agents with tool integration, chat history, and LLM gateway abstractions. This package depends on rakam-systems-core.

Features

  • Configuration-First Design: Change agents without code changes — just update YAML files
  • Async/Sync Support: Full support for both synchronous and asynchronous agent operations
  • Tool Integration: Easy tool definition and integration using the Tool.from_schema pattern
  • Model Settings: Control model behavior including parallel tool calls, temperature, and max tokens
  • Pydantic AI Powered: Built on top of Pydantic AI library
  • Streaming Support: Both sync and async streaming interfaces
  • Chat History: Multiple backends (JSON, SQLite, PostgreSQL)
  • LLM Gateway: Unified interface for OpenAI and Mistral AI

Installation

pip install rakam-systems-agent

Available extras:

Extra What it adds
llm-providers openai, mistralai, tiktoken
all Everything above
pip install rakam-systems-agent[all]

Quick Start

import asyncio
from rakam_systems_agent import BaseAgent
from rakam_systems_core.ai_core.interfaces import ModelSettings
from rakam_systems_core.ai_core.interfaces.tool import ToolComponent as Tool

async def get_weather(city: str) -> dict:
    """Get weather information for a city"""
    return {"city": city, "temperature": 72, "condition": "sunny"}

agent = BaseAgent(
    name="weather_agent",
    model="openai:gpt-4o",
    system_prompt="You are a helpful weather assistant.",
    tools=[
        Tool.from_schema(
            function=get_weather,
            name='get_weather',
            description='Get weather information for a city',
            json_schema={
                'type': 'object',
                'properties': {
                    'city': {'type': 'string', 'description': 'The city name'},
                },
                'required': ['city'],
                'additionalProperties': False,
            },
            takes_ctx=False,
        ),
    ],
)

async def main():
    result = await agent.arun(
        "What's the weather in San Francisco?",
        model_settings=ModelSettings(parallel_tool_calls=True),
    )
    print(result.output_text)

asyncio.run(main())

Core Components

  • BaseAgent — Primary agent implementation powered by Pydantic AI, with tool support and streaming
  • Tool — Wrapper for tool functions using Tool.from_schema pattern
  • ModelSettings — Configure parallel tool calls, temperature, max tokens
  • LLM Gateway — Provider-agnostic interface for OpenAI and Mistral (details)
  • Chat History — JSON, SQLite, and PostgreSQL backends
  • MCP Server — Message-based component registry for agent tools (details)

Package Structure

rakam-systems-agent/
├── src/rakam_systems_agent/
│   ├── components/
│   │   ├── base_agent.py         # BaseAgent (Pydantic AI-powered)
│   │   ├── llm_gateway/          # LLM provider gateways
│   │   ├── chat_history/         # Chat history backends
│   │   ├── tools/                # Built-in tools
│   │   └── __init__.py           # Exports
│   └── server/                   # MCP server
└── pyproject.toml

Documentation

For API reference, advanced usage (dependencies, streaming, YAML config), and troubleshooting, see the official documentation.

Contributing

When adding new agent types:

  1. Inherit from BaseAgent
  2. Implement ainfer() for async or infer() for sync
  3. Add tests in tests/

License

See main project LICENSE file.

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

rakam_systems_agent-0.1.4.tar.gz (36.4 kB view details)

Uploaded Source

Built Distribution

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

rakam_systems_agent-0.1.4-py3-none-any.whl (53.6 kB view details)

Uploaded Python 3

File details

Details for the file rakam_systems_agent-0.1.4.tar.gz.

File metadata

  • Download URL: rakam_systems_agent-0.1.4.tar.gz
  • Upload date:
  • Size: 36.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.6

File hashes

Hashes for rakam_systems_agent-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9cc0896a42d9e06da774d472ae3cdc11f02d1b8bee61bd3f8d7cc8fcfa49ce07
MD5 9b810dc50de068bb7ed4d81e159fc2ea
BLAKE2b-256 9a9bf87686dff3e81a9e8016632dad75e41d5c7b4c63e0120f43c3f90d0892f0

See more details on using hashes here.

File details

Details for the file rakam_systems_agent-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for rakam_systems_agent-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a4b216398937635e458a808fa7cf63ae262a394a8ea5555dd94b144bf5c3f1d5
MD5 a73ad225cbabb8ca12f60187a2796e71
BLAKE2b-256 29be8b4fd05a90aecc8488f57b6bb16f8fc212cf8c6e363440a9b10ad8b4a363

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