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
-
Prerequisites:
- Python 3.10+
pipandvenv(or your preferred virtual environment tool)
-
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 .
-
Initialize a new project: This command creates a new project directory with the basic structure and an
alo_config.yamlfile.alo-pyai-sdk init my_new_ai_project cd my_new_ai_project
-
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. -
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"
- Add a new LLM provider configuration:
-
Registry Configuration:
- Set the host and port for the agent registry:
alo-pyai-sdk config registry --host 127.0.0.1 --port 8080
- Set the host and port for the agent registry:
-
MCP Client Configurations (in
alo_config.yaml): When you generate an MCP client usingalo-pyai-sdk generate mcp-client --name <client_name> ..., its configuration is automatically added to themcp_clientssection in youralo_config.yamlfile. 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 localconfig.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
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 alo_pyai_sdk-0.2.2.tar.gz.
File metadata
- Download URL: alo_pyai_sdk-0.2.2.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8001399b172a7701b2ed9da72da41b55a3f2d782b4daf4b07f71140f3e2bc5c8
|
|
| MD5 |
d0327d09b0552d8028a534270d18bd53
|
|
| BLAKE2b-256 |
dc8b09f44bc71c6ecb5bea2a6add845f6bf6fbdcb7c14405628674ae33227e37
|
File details
Details for the file alo_pyai_sdk-0.2.2-py3-none-any.whl.
File metadata
- Download URL: alo_pyai_sdk-0.2.2-py3-none-any.whl
- Upload date:
- Size: 47.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e931c4a1c925060ca6ee4a34eea0d1b98deef5a089aa384095c1f86303f6b7ca
|
|
| MD5 |
8c3d46c2e731309861291dfd858eee6d
|
|
| BLAKE2b-256 |
11e7ee5b65267a5e13d7a3bbdb5944c4912408f0d27163d2838723b8764f8b84
|