agentseed
Minimal pluggable LLM agent server: FastAPI + Pydantic AI with swappable providers (AWS Bedrock, OpenAI, Anthropic, Groq, Ollama) behind one async interface.
Quick Start
uv sync
# Configure a provider (bedrock is the default)
export AWS_PROFILE=my-profile # Bedrock (SSO)
export AWS_REGION=ap-southeast-2 # Bedrock
aws sso login --profile my-profile
# export CHAT_SERVICE=openai|anthropic|groq|ollama # override provider
export OPENAI_API_KEY=sk-... # OpenAI
export ANTHROPIC_API_KEY=sk-ant-... # Anthropic
export GROQ_API_KEY=gsk_... # Groq
uv run agentseed
# http://localhost:8000
uv run agentseed check # which providers are live?
Endpoints
GET /— chat UI (agentseed/index.html)GET /health— livenessGET /providers/status[?service=&all_models=]— live-probe providers (a few tokens each)GET /config— default provider/model, availability, and all selectablemodelspairsPOST /agent/chat[?service=&model=]— native Pydantic AI message history (ModelMessage JSON arrays); optional query params pick a pair frommodels.json
Frontend
The chat UI is a single file, agentseed/index.html, based on the one-page app
template from onepageapp. FastAPI serves
it at /. It loads Vue 3, Bootstrap, marked and pug from CDNs, so there is no
build step: edit the file and reload the page.
It keeps the conversation in localStorage as Pydantic AI ModelMessage JSON,
and has a provider/model dropdown fed by /config. Providers that failed the
startup probe are shown disabled, with the error on hover.
Layout
agentseed/providers.py— Pydantic AI model/embedding builders,CHAT_SERVICEselection (defaultbedrock), andget_aws_configagentseed/server.py— FastAPI app (/,/health,/config,/agent/chat) and the Pydantic AI agent builderagentseed/cli.py—agentseed(serve, default) andagentseed check(cyclopts + uvicorn)agentseed/logger.py— Rich logging setupagentseed/models.json— selectable chat and embedding modelsagentseed/index.html— single-file chat UI (Vue 3 + Bootstrap via CDN)tests/— offline tests for the chat endpoint
Checking providers
agentseed check sends each provider's default model a one-word prompt
(capped at 16 output tokens) and prints a table of live/failed providers with
latency and the error. It exits non-zero if any probe fails.
uv run agentseed check # default model of every provider
uv run agentseed check anthropic groq # only these providers
uv run agentseed check --all # every model in models.json
The same probe is available at GET /providers/status.
Tests
uv run pytest
Metadata
Release files for agentseed 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentseed-0.1.0.tar.gz | 118.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentseed-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 138.9 kB
Release files / agentseed-0.1.0.tar.gz
| Download URL | agentseed-0.1.0.tar.gz |
|---|---|
| Size | 118.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
74fdcfb86a285b30d7f5f1f4024e4d33aefaf706e710c9334821816219d60d61
|
|
BLAKE2b-256 checksum How to use checksums |
48f09b2db4e95c55dfd9f290a6e426df081ef1b2f84dfc88b070ed58d5cca719
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agentseed-0.1.0-py3-none-any.whl
| Download URL | agentseed-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba6032283dc67bb56315d2f0c5c815023afe4464cdb0d76239b9599738190917
|
|
BLAKE2b-256 checksum How to use checksums |
7526d3c6430cef3a7964386e5300b463751d4e0a0ee9b668aed5b9361b1a88b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|