Skip to main content

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 add and uv run.

Key points

  • Dependencies are managed only through uv add — don't hand-edit the dependencies in pyproject.toml; exact versions are pinned in uv.lock (kept under version control).
  • uv run implicitly syncs the environment before executing, so after adding a dependency you can run uv run directly — no need to uv sync first.
  • No pip install, no source .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 .venv python)
  • uv run python foo.py → runs foo.py with .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.

Metadata

Release files for easy-agentic-plugin 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for easy-agentic-plugin 0.1.0
File Size Uploaded
easy_agentic_plugin-0.1.0.tar.gz 19.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for easy-agentic-plugin 0.1.0
File Interpreter ABI Platform
easy_agentic_plugin-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.4 kB

Release files / easy_agentic_plugin-0.1.0.tar.gz

Download URL easy_agentic_plugin-0.1.0.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
42140799e3642d77b6639f4d8a1bac676f95b15adbf997eb1dcf31d89c092649
BLAKE2b-256 checksum
How to use checksums
6506cb4762ddc5d0c809b1695315afb2961367da459c97a7ab369983312ffd2c
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / easy_agentic_plugin-0.1.0-py3-none-any.whl

Download URL easy_agentic_plugin-0.1.0-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ccf348da8326b02b0c7a32d703516505a836670d86d8a88964d9f74dd3e257de
BLAKE2b-256 checksum
How to use checksums
3a9f76b8d1cc12f6b16081f0f7a617fd8e444fc78413233bef2d9bd1553bd0ca
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page