MOSAICO IP Agent
This agent uses an LLM to parse natural language queries about software libraries, extracts package details, and fetches real-time licensing information from the Eclipse Foundation and ClearlyDefined APIs.
Features
- Provider-Agnostic Extraction: Leverages LiteLLM to accurately extract package names, types (npm, pypi, maven), and versions. While optimized for Ollama, it supports 100+ LLM providers (OpenAI, Anthropic, Azure, etc.) via simple configuration changes.
- License Verification: Automatically queries the Eclipse Foundation and ClearlyDefined to find the declared license for the extracted package.
- A2A SDK Integration: Fully compatible with the MOSAICO A2A architecture, handling task states and artifact generation.
- Observability: Built-in tracing and observability using Langfuse.
Prerequisites
- Python: 3.10 or higher
- Package Manager: uv (recommended)
- LLM Backend:
- Local: Ollama (Default)
- Remote: Any LiteLLM-supported provider (OpenAI, Claude, etc.)
Installation
From PyPI
pip install mosaico-ip-agent
From GHCR (Docker)
docker pull ghcr.io/gomes89/mosaico-ip-agent:latest
From Source (Development Only)
git clone https://github.com/gomes89/mosaico-ip-agent.git
cd mosaico-ip-agent
uv sync
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
Configuration
The agent is configured using environment variables. You can set these in your terminal or use a .env file if you install a package like python-dotenv later.
| Environment Variable | Default Value | Description |
|---|---|---|
| HOST | 0.0.0.0 | The host IP for the Uvicorn server to bind to. |
| PORT | 9000 | The port for the Uvicorn server. |
| AGENT_CARD_HOST | localhost | The host for the URL in the Agent Card. |
| AGENT_CARD_PORT | PORT | The port for the URL in the Agent Card. |
| LLM_API_BASE | http://localhost:11434 | The endpoint where the LLM provider is running. |
| LLM_API_KEY | (None) | The API key to access the LLM endpoint. |
| LLM_CONTEXT_LENGTH | (None) | Explicit context window size (specifically for Ollama). |
| LLM_MODEL_NAME | ollama/qwen2.5:0.5b | The model identifier for LiteLLM to request. |
| LANGFUSE_HOST | https://cloud.langfuse.com | The base URL of the Langfuse observability server. |
| LANGFUSE_PUBLIC_KEY | (None/Required) | The public key for the Langfuse observability server. |
| LANGFUSE_SECRET_KEY | (None/Required) | The secret key for the Langfuse observability server. |
Running the Agent
Because the project is installed as a package with defined entry points, you have two simple ways to start the agent:
Option 1: Using the CLI command
mosaico-ip-agent
Option 2: Running the module directly
python -m mosaico_ip_agent
You can verify the agent is running by querying the health check endpoint:
# Linux / macOS Bash:
curl -f http://localhost:9000/health
# Windows PowerShell:
Invoke-RestMethod -Uri "http://localhost:9000/health"
License
This program and the accompanying materials are made available under the terms of the MIT License, which is available at https://opensource.org/license/mit.
Release files for mosaico-ip-agent 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mosaico_ip_agent-0.1.3.tar.gz | 191.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mosaico_ip_agent-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 208.9 kB
Release files / mosaico_ip_agent-0.1.3.tar.gz
| Download URL | mosaico_ip_agent-0.1.3.tar.gz |
|---|---|
| Size | 191.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dea1d7a46df953f6735c4a0873f678154e5ce259f9864133daa61cee4d2f51c6
|
|
BLAKE2b-256 checksum How to use checksums |
140ff90306f2d480878a80d57cf4b88db0b044a1a04297c60f0f8b7ab9f0b8f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / mosaico_ip_agent-0.1.3-py3-none-any.whl
| Download URL | mosaico_ip_agent-0.1.3-py3-none-any.whl |
|---|---|
| Size | 17.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
431b80b329eebb6bfafc64ce48caced61faf46fe2cc66c8e95b5e5418f59e020
|
|
BLAKE2b-256 checksum How to use checksums |
8808a41f69f533398ed275449dfa06ea36fb46df1b1f376497008e8353214550
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|