A plugin framework for agents, built on LangGraph deepagents + langgraph-cli.
Project description
easy-agentic-plugin
An Agent-oriented plugin framework: it provides a unified extension-injection mechanism for agents built on top of LangGraph deepagents + langgraph-cli. Every extension (agent / tool / skill / filesystem / middleware / model, …) is wired in through plugins.
It is not a business agent, and it does not implement a runtime or a serving container — those are handled by deepagents and langgraph-cli respectively. For the detailed positioning and design, see doc/requirement.md and doc/architecture.md.
Tech stack
- Python 3.12 (pinned via uv)
- Package / environment management: uv
- Agent runtime: deepagents; serving / interface: langgraph-cli (agent server)
- LLM direction: Claude (
langchain-anthropic)
Quick start
# 1. Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. Sync dependencies (install everything from uv.lock into .venv)
uv sync
# 3. Configure environment variables: copy the .env template and fill in API keys, etc.
# (.env is git-ignored — never commit real secrets)
# 4. Start the local agent server (LangGraph Studio)
uv run langgraph dev
# Defaults to http://127.0.0.1:2024
Using easy-agentic-plugin as a library
easy-agentic-plugin is published as an importable library. In a consumer project:
pip install easy-agentic-plugin # core only
pip install easy-agentic-plugin[cli] # + langgraph-cli for `langgraph dev`
pip install easy-agentic-plugin[all] # + Anthropic/OpenAI providers + CLI
Point your own langgraph.json at the built-in global router graph:
{
"dependencies": ["."],
"graphs": { "agent": "easy_agentic_plugin.graph:main" },
"env": ".env"
}
Then drop in your own agents/ and plugins/ directories. Prefer to compose the graph
yourself? Use the build_graph() factory exported from the top-level package.
Optional extras:
| Extra | Pulls in | Use when |
|---|---|---|
anthropic |
langchain-anthropic |
serving Claude models |
openai |
langchain-openai |
serving OpenAI models |
cli |
langgraph-cli[inmem] |
running langgraph dev / building an image |
all |
all of the above | one-shot install |
How uv is used
uv is a single tool that handles Python version + virtual environment + dependencies + running: it reads pyproject.toml (declared dependencies) → resolves uv.lock (pinned exact versions) → syncs them into .venv. Day to day you do not need to activate the virtual environment manually — just use uv run.
Most-used commands
| Command | What it does | When |
|---|---|---|
uv add <pkg> |
Add a runtime dependency (writes to pyproject and installs) | When you need a library (don't hand-edit pyproject) |
uv add --dev <pkg> |
Add a dev dependency (pytest, ruff, …) | Tooling used only for dev/test |
uv remove <pkg> |
Remove a dependency | When no longer needed |
uv run <cmd> |
Run a command inside the project env | Everything: uv run pytest, uv run langgraph dev |
uv sync |
Reconcile .venv with uv.lock |
After pulling code / switching environments |
90% of the time you'll only use
uv addanduv run.
Key points
- Dependencies are managed only through
uv add— don't hand-edit thedependenciesinpyproject.toml; exact versions are pinned inuv.lock(kept under version control). uv runimplicitly syncs the environment before executing, so after adding a dependency you can runuv rundirectly — no need touv syncfirst.- No
pip install, nosource .venv/bin/activate— uv prepares the environment for the subprocess automatically. - Python version is pinned to 3.12 by
.python-version; uv selects the matching interpreter automatically.
How uv run works internally (in brief)
uv run X ≈ "ensure the environment matches the lock" + "temporarily activate .venv" + "run X". X ultimately resolves to an executable under .venv/bin/ bound to this project's interpreter:
uv run pytest→ runs.venv/bin/pytest(an entry-point script generated at install time, whose shebang points at the project.venvpython)uv run python foo.py→ runsfoo.pywith.venv/bin/python
Handy flags: --no-sync (skip syncing), --frozen (don't re-resolve), --locked (require the lock to be up to date, good for CI).
Common development commands
uv run langgraph dev # Start the local agent server (entry graph: easy_agentic_plugin.graph:main)
uv run pytest # Run tests
uv add <pkg> / uv add --dev <pkg> # Add dependencies
uv sync # Sync the environment
Project documentation
- CLAUDE.md — project constitution (for AI collaborators)
- doc/ — requirements, architecture, conventions, roadmap, decision records (ADRs)
The documents under
doc/are kept in Chinese as the design/working record.
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 easy_agentic_plugin-0.1.0.tar.gz.
File metadata
- Download URL: easy_agentic_plugin-0.1.0.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42140799e3642d77b6639f4d8a1bac676f95b15adbf997eb1dcf31d89c092649
|
|
| MD5 |
4d407f47d97df2470841a8b85768882b
|
|
| BLAKE2b-256 |
6506cb4762ddc5d0c809b1695315afb2961367da459c97a7ab369983312ffd2c
|
File details
Details for the file easy_agentic_plugin-0.1.0-py3-none-any.whl.
File metadata
- Download URL: easy_agentic_plugin-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccf348da8326b02b0c7a32d703516505a836670d86d8a88964d9f74dd3e257de
|
|
| MD5 |
3f2a364c59755c4397e9ae2e85328a1f
|
|
| BLAKE2b-256 |
3a9f76b8d1cc12f6b16081f0f7a617fd8e444fc78413233bef2d9bd1553bd0ca
|