Skip to main content

easy-agentic

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 as a library

easy-agentic is published as an importable library. In a consumer project:

pip install easy-agentic          # core only
pip install easy-agentic[cli]     # + langgraph-cli for `langgraph dev`
pip install easy-agentic[all]     # + Anthropic/OpenAI providers + CLI

Point your own langgraph.json at the built-in global router graph:

{
  "dependencies": ["."],
  "graphs": { "agent": "easy_agentic.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.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 0.1.1

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 0.1.1
File Size Uploaded
easy_agentic-0.1.1.tar.gz 19.0 kB Details

Built distribution (wheel)

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

Total release size: 43.0 kB

Release files / easy_agentic-0.1.1.tar.gz

Download URL easy_agentic-0.1.1.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0f75203bfce4572d22f6979a192167543d3162e1329c1e8bbaa29d6fa057fd5b
BLAKE2b-256 checksum
How to use checksums
ef2815c92ccdb56aa57a33b2c5658de7c5c70d5b28a0968094206b0139bc520d
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-0.1.1-py3-none-any.whl

Download URL easy_agentic-0.1.1-py3-none-any.whl
Size 24.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ecabf860e2303822839cf7aaafa4d6a5c13349b4c30766dc767a0c39379e717f
BLAKE2b-256 checksum
How to use checksums
15d39fdd1b483275dbee43e73d7c36444f6502da93485e786d43f457a2b27de9
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.1 This release

2 release files

0.1.0

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