Skip to main content

SDK to facilitate the creation of AI agentic applications using Pydantic-AI, A2A, and MCP.

Project description

ALO PyAI SDK

SDK to facilitate the creation of AI agentic applications using Pydantic-AI, Agent-to-Agent (A2A) communication, and the Model Context Protocol (MCP).

Overview

This SDK provides tools and templates to quickly scaffold and manage AI agent projects. It leverages FastAPI for creating agent services and a central agent registry.

Features

  • CLI for project initialization, component generation (agents, MCP clients), and configuration management.
  • Standardized project structure.
  • FastAPI-based agent services and registry.
  • Integration with Pydantic-AI for agent logic.

Getting Started

  1. Prerequisites:

    • Python 3.10+
    • pip and venv (or your preferred virtual environment tool)
  2. Installation:

    pip install alo-pyai-sdk
    

    Alternatively, for development, clone the repository and install in editable mode:

    git clone https://github.com/aidataspark/core_alo-pyai-sdk.git
    cd alo_pyai_sdk
    pip install -e .
    
  3. Initialize a new project: This command creates a new project directory with the basic structure and an alo_config.yaml file.

    alo-pyai-sdk init my_new_ai_project
    cd my_new_ai_project
    
  4. Configure LLM Providers: Add at least one LLM configuration to your alo_config.yaml. This is required for agents to function and for AI-assisted generation.

    # Example for OpenAI
    alo-pyai-sdk config llm add --name default_openai --provider openai --api-key "YOUR_OPENAI_API_KEY" --model-name "gpt-4o"
    
    # Example for Anthropic
    alo-pyai-sdk config llm add --name default_anthropic --provider anthropic --api-key "YOUR_ANTHROPIC_API_KEY" --model-name "claude-3-5-sonnet-latest"
    

    Replace "YOUR_..._API_KEY" with your actual API keys.

  5. Start the Agent Registry (Optional but Recommended): The registry allows agents to discover each other.

    alo-pyai-sdk run registry
    

    By default, it runs on http://localhost:8000.

Usage

All commands are run via the alo-pyai-sdk CLI.

Project Initialization

  • Initialize a new project in the current directory:
    alo-pyai-sdk init
    
  • Initialize a new project in a specific directory:
    alo-pyai-sdk init path/to/your_project_name
    

Configuration Management (config)

  • LLM Configurations:

    • Add a new LLM provider configuration:
      alo-pyai-sdk config llm add --name my_llm --provider openai --api-key "sk-..." --model-name "gpt-4o"
      
    • List all LLM configurations:
      alo-pyai-sdk config llm list
      
    • Remove an LLM configuration:
      alo-pyai-sdk config llm remove --name my_llm
      
    • Update an existing LLM configuration:
      alo-pyai-sdk config llm update --name my_llm --model-name "gpt-4o-mini"
      
  • Registry Configuration:

    • Set the host and port for the agent registry:
      alo-pyai-sdk config registry --host 127.0.0.1 --port 8080
      
  • MCP Client Configurations (in alo_config.yaml): When you generate an MCP client using alo-pyai-sdk generate mcp-client --name <client_name> ..., its configuration is automatically added to the mcp_clients section in your alo_config.yaml file. This section maps client names to their configurations, which include the generated module path and factory function name. Example of an automatically added entry:

    mcp_clients:
      your_client_name: # This is <client_name> provided to the generate command
        module: "mcp_clients.your_client_name"
        factory_function: "get_your_client_name_mcp_server"
        # Parameters used during generation (like type, url, command, args, tool_prefix)
        # are also stored for reference and potential future use by the factory.
        type: "stdio" 
        command: "deno"
        args:
          - "run"
          - "-A"
          - "jsr:@pydantic/mcp-run-python"
          - "stdio"
        tool_prefix: "py_runner"
        parameters: {} # You can manually add parameters here for the factory function if needed
    

    Agents generated by the SDK will automatically load and use MCP servers defined in this section. You can still manually edit this section if needed for advanced configurations or for MCP clients not generated by the SDK.

Agent Generation (generate)

  • Generate a new agent service:

    alo-pyai-sdk generate agent --name MyStoryAgent --description "An agent that tells stories." --llm-config default_openai --output-type StoryOutput
    

    (This will create agents/my_story_agent/)

  • Generate an agent with AI assistance for its definition:

    alo-pyai-sdk generate agent --name MyCodeHelper --ai-assisted --llm-config default_openai
    

    (You will be prompted for details about the agent's purpose, output, etc.)

  • Generate an MCP client module:

    alo-pyai-sdk generate mcp-client --name python_stdio_runner --transport stdio --command "deno" --args "run,-A,jsr:@pydantic/mcp-run-python,stdio" --tool-prefix py_runner
    

    (This creates mcp_clients/python_stdio_runner.py)

Running Services (run)

  • Run the Agent Registry:

    alo-pyai-sdk run registry
    

    (Uses configuration from alo_config.yaml)

  • Run a specific Agent Service: (Ensure the registry is running if the agent is configured to register with it)

    # Example for an agent named 'MyStoryAgent'
    alo-pyai-sdk run agent MyStoryAgent 
    

    This command will look up the agent's port and other settings from alo_config.yaml (if previously generated and configured) or use defaults from the agent's local config.py. It will print the command to run the agent, typically:

    # Output from 'alo-pyai-sdk run agent MyStoryAgent':
    # Agent 'MyStoryAgent' will run using LLM config: default_openai
    # To start the agent, run the following command in your project directory:
    #    cd . 
    #    python -m uvicorn agents.my_story_agent.main:app --port 8001 --reload
    

    Then, you execute the printed python -m uvicorn ... command.

Provisioning (Future Feature)

  • Commands for deploying and managing agents in different environments (e.g., Docker, cloud platforms).
    # alo-pyai-sdk provision ... (Details TBD)
    

Contributing

(Contribution guidelines to be added)

License

This project is licensed under the MIT License - 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

alo_pyai_sdk-0.2.8.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

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

alo_pyai_sdk-0.2.8-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file alo_pyai_sdk-0.2.8.tar.gz.

File metadata

  • Download URL: alo_pyai_sdk-0.2.8.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for alo_pyai_sdk-0.2.8.tar.gz
Algorithm Hash digest
SHA256 34fb6041aa0b301c306a3707d4a600b237b3cfa13a02dc020a394d9be3b6026e
MD5 bdfee221545f8d4431e34e73b72c6ac2
BLAKE2b-256 514c73577266a60f0919b4460a17ebad28072fa4c01afbf17e0fb10c47392eaa

See more details on using hashes here.

File details

Details for the file alo_pyai_sdk-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: alo_pyai_sdk-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 46.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for alo_pyai_sdk-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 3914a2fb71184a90bbcda917a8be7e86588cc82e68a72e5e6f9cee360f5edbdd
MD5 1aa72d51a3f1825916e0bde014b207ec
BLAKE2b-256 b838a6e748e3fd4f06604d9d3003ab3239b4deedec7d1ab42552423839e7102e

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