Skip to main content

Grasp Agents Library

Project description

Grasp Agents


Grasp Agents

PyPI version License: MIT PyPI downloads GitHub Stars GitHub Forks

Overview

Grasp Agents is a modular Python framework for building agentic AI pipelines and applications. It provides reusable agent classes, message handling, LLM integration, memory, and orchestration utilities. The framework is designed for flexibility, composability, and clarity, enabling rapid prototyping and robust development of multi-agent systems.

Features

  • Modular agent base classes
  • Message and memory management
  • LLM and tool orchestration
  • Logging and usage tracking
  • Extensible architecture

Project Structure

  • src/grasp_agents/ — Core framework modules
    • base_agent.py, llm_agent.py, comm_agent.py: Agent classes
    • agent_message.py, agent_message_pool.py: Messaging
    • memory.py: Memory management
    • cloud_llm.py, llm.py: LLM integration
    • tool_orchestrator.py: Tool orchestration
    • usage_tracker.py, grasp_logging.py: Usage and logging
    • data_retrieval/, openai/, typing/, workflow/: Extensions and utilities
  • configs/ — Configuration files
  • data/ — Logs and datasets

Quickstart & Installation Variants (UV Package manager)

Option 1: UV Package Manager Project

Note: You can check this sample project code in the src/grasp_agents/examples/demo/uv folder. Feel free to copy and paste the code from there to a separate project. There are also examples for other package managers.

1. Prerequisites

Install the UV Package Manager:

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Create Project & Install Dependencies

mkdir my-test-uv-app
cd my-test-uv-app
uv init .

Create and activate a virtual environment:

uv venv
source .venv/bin/activate

Add and sync dependencies:

uv add grasp_agents
uv sync

3. Example Usage

Create a file, e.g., hello.py:

Ensure you have a .env file with your OpenAI and Google AI Studio API keys set

OPENAI_API_KEY=your_openai_api_key
GOOGLE_AI_STUDIO_API_KEY=your_google_ai_studio_api_key
import asyncio
from typing import Any

from grasp_agents.llm_agent import LLMAgent
from grasp_agents.openai.openai_llm import (
    OpenAILLM,
    OpenAILLMSettings,
)
from grasp_agents.typing.io import (
    AgentPayload,
)
from grasp_agents.run_context import RunContextWrapper

from dotenv import load_dotenv

load_dotenv()

class Response(AgentPayload):
    response: str


chatbot = LLMAgent[Any, Response, None](
    agent_id="chatbot",
    llm=OpenAILLM(
        model_name="gpt-4o",
        llm_settings=OpenAILLMSettings(),
    ),
    sys_prompt=None,
    out_schema=Response,
)


@chatbot.parse_output_handler
def output_handler(conversation, ctx, **kwargs) -> Response:
    return Response(response=conversation[-1].content)


async def main():
    ctx = RunContextWrapper(print_messages=True)
    out = await chatbot.run("Hello, agent!", ctx=ctx)
    print(out.payloads[0].response)


asyncio.run(main())

Run your script:

uv run hello.py

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

grasp_agents-0.1.13.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

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

grasp_agents-0.1.13-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

Details for the file grasp_agents-0.1.13.tar.gz.

File metadata

  • Download URL: grasp_agents-0.1.13.tar.gz
  • Upload date:
  • Size: 31.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.3

File hashes

Hashes for grasp_agents-0.1.13.tar.gz
Algorithm Hash digest
SHA256 8e9db6505d02a21693701eddcc3f0dfc248ac0d2d458a814075318c7443da289
MD5 4e46b09cb509c62e2e96b4c086a28605
BLAKE2b-256 35e037433de89e892899c0457c802f77eaafb0022c9e725c1f79cd73ad78dfa9

See more details on using hashes here.

File details

Details for the file grasp_agents-0.1.13-py3-none-any.whl.

File metadata

File hashes

Hashes for grasp_agents-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 fd7c82c4f39613329a80c2150a7147096a34fe537fc238121c08348570fd5d65
MD5 24702a7e9b8bb02708438323a543742a
BLAKE2b-256 f701dc4737e8d7972219a9a1d4a2ffc290846dfcad02e8a3fcf662d9eb2f07c7

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