An open-source, provider-agnostic agentic framework + interactive project scaffolder for LangChain and CrewAI. Pick your LLM provider, agents, RAG, memory, MCP tools and skills — generate a ready-to-run uv project.
Project description
🧬 AgentX-Kit
A provider-agnostic agentic framework + interactive project scaffolder for LangChain & CrewAI.
Pick your LLM provider (OpenAI, Azure, OpenRouter, Anthropic, Gemini, Vertex AI,
Bedrock, Groq, Ollama), choose your framework, agents, RAG, memory, MCP tools and
skills — and AgentX-Kit generates a ready-to-run project in its own uv
virtual environment.
pip install "agentx-kit[all]"
agentx new # interactive wizard → scaffolds a uv project
The PyPI distribution is
agentx-kit; the import name and CLI areagentx(pip install agentx-kit→import agentx/agentx --help).
📦 Installation
From PyPI (recommended)
pip install agentx-kit # core: CLI + scaffolder + base abstractions
pip install "agentx-kit[all]" # everything
Each LLM provider is an optional extra so you only pull the SDKs you use:
pip install "agentx-kit[openai,langgraph]" # OpenAI + LangGraph
pip install "agentx-kit[bedrock,crewai,rag,mcp]" # Bedrock + CrewAI + RAG + MCP
Using uv
uv pip install "agentx-kit[all]"
From GitHub (latest, unreleased)
pip install "agentx-kit[all] @ git+https://github.com/muhammadyahiya/agentx-kit.git"
From a local clone (development)
git clone https://github.com/muhammadyahiya/agentx-kit.git
cd agentx-kit
uv venv && uv pip install -e ".[all,dev]" # or: pip install -e ".[all,dev]"
pytest -q
Requires Python 3.10–3.13 and (for the scaffolder's
.venvcreation)uv.
Verify
agentx version
agentx providers # lists every provider + the env vars it needs
Why
- One factory, every provider.
get_chat_model("bedrock", ...)orget_chat_model("openrouter", ...)— same call, lazy imports, install only the extras you use. - Two frameworks. LangChain/LangGraph and CrewAI from the same building blocks.
- Batteries included. RAG, short/long-term memory, MCP tools, and a skills registry — each optional and gracefully degrading.
- Scaffolder, not a black box. The generated project is readable, idiomatic
code you own, pre-wired to your selections, in a fresh
.venv.
Use as a library
from agentx import get_chat_model, list_providers
llm = get_chat_model("openai", "gpt-4o-mini")
print(llm.invoke("Say hi in 3 words").content)
for spec in list_providers():
print(spec.id, "→", spec.label)
CrewAI:
from agentx import get_crewai_llm
llm = get_crewai_llm("openrouter", "anthropic/claude-3.5-sonnet")
Scaffold a project
agentx new # fully interactive
agentx new --name my-bot --yes # accept sensible defaults
agentx providers # list providers + required env vars
The wizard asks, one option at a time:
- Project name & target directory
- Framework — LangGraph or CrewAI
- LLM provider and model
- Number of agents (and their roles)
- RAG module? (vector store)
- Memory? (short-term / long-term / both)
- MCP tools?
- Skills integration?
- Prompt style (defaults or scaffolded custom prompts)
- Create
.venvanduv syncnow?
It then renders the project, writes a feature-aware pyproject.toml + .env.example,
and runs uv venv to create .venv.
Prompts: add at creation, or any time after
Prompts are not baked into code — every generated project keeps them in a
prompts.json that agents.py loads dynamically. Add an entry and the project
runs it on next start, no code changes.
# at creation
agentx new --yes -n chatops --prompt "You are a senior DevOps engineer. Be terse."
# after creation (run inside the project)
agentx prompt list
agentx prompt set assistant --text "You are an SRE. Prioritise reliability."
agentx prompt add reviewer --role "Code Reviewer" --goal "Review diffs" \
--text "You review code for bugs and security."
agentx prompt remove reviewer
prompts.json:
{
"with_rag": false,
"agents": {
"assistant": {"role": "...", "goal": "...", "system_prompt": "You are ..."}
}
}
A blank system_prompt is auto-derived from the agent's role + goal. You can also
just open prompts.json in an editor — the CLI is a convenience, not a gate.
🏢 Enterprise pack
Generate a production-shaped project with one flag — informed by a survey of CrewAI/LangGraph/create-llama/AgentStack/agno/pydantic-ai (see RESEARCH.md):
agentx new --yes -n my-bot --enterprise # everything below
# or pick individually:
agentx new --yes -n my-bot --observability --guardrails --serve --docker --ci --evals
What --enterprise adds to the generated project:
- Observability — OpenTelemetry GenAI tracing + optional Langfuse (
observability.py), opt-out viaAGENTX_TELEMETRY=false. - Guardrails — input/output validation + PII redaction (
guardrails.py). - FastAPI server —
server.pywith/health,/chat, and SSE/chat/stream. - Docker —
Dockerfile+docker-compose.yml(+.dockerignore). - CI —
.github/workflows/ci.yml(lint + compile + tests, optional eval gate). - Evals —
evals/LLM-as-judge harness runnable locally and in CI. - Typed config —
config.pyviapydantic-settings(12-factor). - Manifest —
agentx.jsondeclaring framework, provider, features (à lalanggraph.json).
These are also usable as a library in any project:
from agentx import (
setup_tracing, get_callbacks, # observability
build_resilient_chat, # retries + provider fallbacks
UsageLimits, UsageTracker, # token/cost budgets
apply_guards, structured_model, # guardrails + typed outputs
)
setup_tracing("my-service")
llm = build_resilient_chat("openai", "gpt-4o-mini", fallbacks=[("anthropic", "claude-3-5-sonnet-latest")])
Installation extras
| Extra | Installs | For |
|---|---|---|
openai / azure / openrouter |
langchain-openai |
OpenAI-compatible |
anthropic |
langchain-anthropic |
Claude |
google |
langchain-google-genai |
Gemini (AI Studio) |
vertex |
langchain-google-vertexai |
Vertex AI |
bedrock |
langchain-aws |
Amazon Bedrock |
groq |
langchain-groq |
Groq |
ollama |
langchain-ollama |
local |
langgraph |
langgraph, langchain |
LangGraph agents |
crewai |
crewai |
CrewAI crews |
rag |
langchain-community, chromadb |
RAG |
mcp |
langchain-mcp-adapters |
MCP tools |
observability |
opentelemetry-*, openinference-* |
tracing |
server |
fastapi, uvicorn |
serving |
all |
everything above | kitchen sink |
See DESIGN.md for the architecture and RESEARCH.md for the competitive analysis behind these features.
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 agentx_kit-0.2.0.tar.gz.
File metadata
- Download URL: agentx_kit-0.2.0.tar.gz
- Upload date:
- Size: 44.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66c45a8ed8f31c5a349001426a18029c3e8bea4322a5fe84a434dcf8c81c69ae
|
|
| MD5 |
4e9cd3632888af8c11cc4908cf5d49c7
|
|
| BLAKE2b-256 |
0a8fbbd54942a2085e39017f2c93e475dcdf25036307706fd5cc5761dd2177d6
|
Provenance
The following attestation bundles were made for agentx_kit-0.2.0.tar.gz:
Publisher:
publish.yml on muhammadyahiya/agentx-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentx_kit-0.2.0.tar.gz -
Subject digest:
66c45a8ed8f31c5a349001426a18029c3e8bea4322a5fe84a434dcf8c81c69ae - Sigstore transparency entry: 2025339965
- Sigstore integration time:
-
Permalink:
muhammadyahiya/agentx-kit@a70989c7e6d0b40f8f9a220391d0bd182cfa6e3c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/muhammadyahiya
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a70989c7e6d0b40f8f9a220391d0bd182cfa6e3c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file agentx_kit-0.2.0-py3-none-any.whl.
File metadata
- Download URL: agentx_kit-0.2.0-py3-none-any.whl
- Upload date:
- Size: 53.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9db26ce6bb079fd1f1620b6ae03707fbca276732701d909a39f8865a13eb8a60
|
|
| MD5 |
e17e890669d7201c2726f8401c17f713
|
|
| BLAKE2b-256 |
041053ccf50260c36105f0a0ba24c31535bae2a0a2b01beb4cf3e238349c5a31
|
Provenance
The following attestation bundles were made for agentx_kit-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on muhammadyahiya/agentx-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentx_kit-0.2.0-py3-none-any.whl -
Subject digest:
9db26ce6bb079fd1f1620b6ae03707fbca276732701d909a39f8865a13eb8a60 - Sigstore transparency entry: 2025340017
- Sigstore integration time:
-
Permalink:
muhammadyahiya/agentx-kit@a70989c7e6d0b40f8f9a220391d0bd182cfa6e3c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/muhammadyahiya
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a70989c7e6d0b40f8f9a220391d0bd182cfa6e3c -
Trigger Event:
workflow_dispatch
-
Statement type: