MOSAICO Solution Agent for IP-related queries.
Project description
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 |
|---|---|---|
| AGENT_HOST | 0.0.0.0 | The host IP for the Uvicorn server to bind to. |
| AGENT_PORT | 8000 | The port for the Uvicorn server. |
| AGENT_URL | http://localhost:8000/ | The URL broadcasted 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. |
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:8000/health
# Windows PowerShell:
Invoke-RestMethod -Uri "http://localhost:8000/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.
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 mosaico_ip_agent-0.1.0.tar.gz.
File metadata
- Download URL: mosaico_ip_agent-0.1.0.tar.gz
- Upload date:
- Size: 189.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d48fd70a10af1c676f0598cad49a63321d26759a7cc9cf71e983133227d487a7
|
|
| MD5 |
67c3884124e51bd52ff0e6d364264eec
|
|
| BLAKE2b-256 |
5750f20c6c01127a205057921e5f458e8a25a25357072a0daec5ac6529b283eb
|
Provenance
The following attestation bundles were made for mosaico_ip_agent-0.1.0.tar.gz:
Publisher:
pypi-publish.yml on gomes89/mosaico-ip-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mosaico_ip_agent-0.1.0.tar.gz -
Subject digest:
d48fd70a10af1c676f0598cad49a63321d26759a7cc9cf71e983133227d487a7 - Sigstore transparency entry: 1112867344
- Sigstore integration time:
-
Permalink:
gomes89/mosaico-ip-agent@f2b7153d10a8aed6e3bc4d837ab16ceae7752f63 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/gomes89
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@f2b7153d10a8aed6e3bc4d837ab16ceae7752f63 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mosaico_ip_agent-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mosaico_ip_agent-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72514602b57b1ac949dc86397d221c58b9c205ce87a6722a982a5fc4841fc5cf
|
|
| MD5 |
6087961014b6a50ecfbdcd4ccf5a7edd
|
|
| BLAKE2b-256 |
09c520b72877c59ffa14c50fe66dd79fdf990e6315a2f284bf5fa4e164c74f3b
|
Provenance
The following attestation bundles were made for mosaico_ip_agent-0.1.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on gomes89/mosaico-ip-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mosaico_ip_agent-0.1.0-py3-none-any.whl -
Subject digest:
72514602b57b1ac949dc86397d221c58b9c205ce87a6722a982a5fc4841fc5cf - Sigstore transparency entry: 1112867362
- Sigstore integration time:
-
Permalink:
gomes89/mosaico-ip-agent@f2b7153d10a8aed6e3bc4d837ab16ceae7752f63 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/gomes89
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@f2b7153d10a8aed6e3bc4d837ab16ceae7752f63 -
Trigger Event:
release
-
Statement type: