Skip to main content

A plugin framework for agents, built on LangGraph deepagents + langgraph-cli.

Project description

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.

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-0.1.1.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-0.1.1-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file easy_agentic-0.1.1.tar.gz.

File metadata

  • Download URL: easy_agentic-0.1.1.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-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0f75203bfce4572d22f6979a192167543d3162e1329c1e8bbaa29d6fa057fd5b
MD5 3b0d906fab88e82e80da302fda510fdc
BLAKE2b-256 ef2815c92ccdb56aa57a33b2c5658de7c5c70d5b28a0968094206b0139bc520d

See more details on using hashes here.

File details

Details for the file easy_agentic-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: easy_agentic-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 24.0 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-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ecabf860e2303822839cf7aaafa4d6a5c13349b4c30766dc767a0c39379e717f
MD5 414a12b77932adc841088edd93857ed5
BLAKE2b-256 15d39fdd1b483275dbee43e73d7c36444f6502da93485e786d43f457a2b27de9

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