Skip to main content

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 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy_agentic_plugin-0.1.0.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easy_agentic_plugin-0.1.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

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

Hashes for easy_agentic_plugin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 42140799e3642d77b6639f4d8a1bac676f95b15adbf997eb1dcf31d89c092649
MD5 4d407f47d97df2470841a8b85768882b
BLAKE2b-256 6506cb4762ddc5d0c809b1695315afb2961367da459c97a7ab369983312ffd2c

See more details on using hashes here.

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

Hashes for easy_agentic_plugin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ccf348da8326b02b0c7a32d703516505a836670d86d8a88964d9f74dd3e257de
MD5 3f2a364c59755c4397e9ae2e85328a1f
BLAKE2b-256 3a9f76b8d1cc12f6b16081f0f7a617fd8e444fc78413233bef2d9bd1553bd0ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page