AGENTS.md · langchain-ai/langchain
AGENTS.md from langchain-ai/langchain: 391 lines covering Corridor security analysis, Project architecture and context, Core development principles, Model…
Template by langchain-ai
Install
Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/langchain-ai/langchain/master/AGENTS.md -o AGENTS.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.
- For
- Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
- Length
- 391 lines
- File
AGENTS.md
Sections
- Corridor security analysis
- Project architecture and context
- Core development principles
- Model profiles
- CI/CD infrastructure
- GitHub Actions & Workflows
- Additional resources
- OpenWiki
First lines (shown under the repo's MIT license)
# Global development guidelines for the LangChain monorepo This document provides context to understand the LangChain Python project and assist with development. <corridor> ## Corridor security analysis When Corridor's `analyzePlan` tool is available, create a plan and use the tool to analyze it before generating or modifying code. Apply the resulting security guidance before writing code. </corridor> ## Project architecture and context ### Monorepo structure This is a Python monorepo with multiple independently versioned packages that use `uv`. ```txt langchain/ ├── libs/ │ ├── core/ # `langchain-core` primitives and base abstractions │ ├── langchain/ # `langchain-classic` (legacy, no new features) │ ├── langchain_v1/ # Actively maintained `langchain` package │ ├── partners/ # Third-party integrations │ │ ├── openai/ # OpenAI models and embeddings │ │ ├── anthropic/ # Anthropic (Claude) integration │ │ ├── ollama/ # Local model support │ │ └── ... (other integrations maintained by the LangChain team) │ ├── text-splitters/ # Document chunking utilities │ ├── standard-tests/ # Shared test suite for integrations │ └── model-profiles/ # Model configuration profiles ├── .github/ # CI/CD workflows and templates ├── .vscode/ # VSCode IDE standard settings and recommended extensions ├── openwiki/ # Generated just-in-time evidence index (optional reading) └── README.md # Information about LangChain ``` - **Core layer** (`langchain-core`): Base abstractions, interfaces, and protocols. Users should not need to know about this layer directly. - **Implementation layer** (`langchain`): Concrete implementations and high-level public utilities - **Integration layer** (`partners/`): Third-party service integrations. Note that this monorepo is not exhaustive of all LangChain integrations; some are maintained in separate repos, such as `langchain-ai/langchain-google` and `langchain-ai/langchain-aws`. Usually these repos are cloned at the same level as this monorepo, so if needed, you can refer to their code directly by navigating to `../langchain-google/` from this monorepo. - **Testing layer** (`standard-tests/`): Standardized integration tests for partner integrations ### Development tools & commands - `uv` – Fast Python package installer and resolver (replaces pip/poetry) - `make` – Task runner for common development commands. Each package under `libs/` has its own `Makefile`; feel free to look at it for available commands and usage patterns. - `ruff` – Fast Python linter and formatter - `mypy` – Static type checking - `pytest` – Testing framework This monorepo uses `uv` for dependency management. Local development uses editable installs declared under each package's `[tool.uv.sources]` table in `pyproject.toml`, so path dependencies resolve to your working tree instead of PyPI. Each package in `libs/` has its own `pyproject.toml`, `uv.lock`, and `Makefile`. There is no workspace-level `pyproject.toml` or `Makefile` at the repo root — always `cd` into the package you are working on before running the commands below (for example `cd libs/langchain_v1` or `cd libs/core`). Before running your tests, set up all packages by running: ```bash # For all groups uv sync --all-groups # or, to install a specific group only: uv sync --group test ``` ```bash # Run unit tests (no network) make test # Run specific test file uv run --group test pytest tests/unit_tests/test_specific.py ``` ```bash # Lint code make lint # Format code make format # Type checking uv run --group lint mypy . ``` #### Environment and dependency management Use `uv` for all environment and dependency operations in this monorepo. Do not invoke `pip`, `poetry`, or `conda` directly. - Let `uv` manage the interpreter and virtual environments — `uv sync` and `uv run` operate without manual `source .venv/bin/activate`. Do not create ad-hoc virtual environments outside the package directory. - Each package targets its own supported Python range via its `pyproject.toml`; do not pin a global Python version. If you need an interpreter explicitly, defer to the package's `requires-python` rather than assuming system Python. - Install dependencies explicitly through `uv sync` (optionally `--group <name>` / `--all-groups`); never let them install implicitly. - Don't mix environments within a session, and don't add new dependencies unless strictly required — when you do, justify them (recent releases/commits, adoption). #### Key config files There is no single workspace config at the repository root. Configuration lives per package: - `libs/<package>/pyproject.toml`: Package metadata and dependency groups (`test`, `lint`, `typing`, `dev`, …) - `libs/<package>/uv.lock`: Locked dependencies for reproducible builds - `libs/<package>/Makefile`: Development tasks for that package (`test`, `lint`, `format`, `type`, …) - `libs/Makefile`: Cross-package `lock` / `check-lock` only - `.pre-commit-config.yaml` (repo root): Git hooks that run per-package format/lint #### PR and commit titles Follow Conventional Commits. See `.github/workflows/pr_lint.yml` for allowed types and scopes. All titles must include a scope with no exceptions — even for the main `langchain` package. - Start the text after `type(scope):` with a lowercase letter, unless the first word is a proper noun (e.g. `Azure`, `GitHub`, `OpenAI`) or a named entity (class, function, method, parameter, or variable name). - Wrap named entities in backticks so they render as code. Proper nouns are left unadorned. - Keep titles short and descriptive — save detail for the body. Examples: ```txt feat(langchain): add new chat completion feature fix(core): resolve type hinting issue in vector store chore(anthropic): update infrastructure dependencies feat(langchain): `ls_agent_type` tag on `create_agent` calls fix(openai): infer Azure chat profiles from model name ``` #### Branch naming Branches should be prefixed `<github-username>/<scope>/<short-description>`: - `<github-username>` — the author's GitHub login (e.g. `mdrxy`). - `<scope>` — the same scope used in the Conventional Commit title (`core`, `langchain`, partner name, `infra`, `docs`, etc.). - `<short-description>` — kebab-case, brief, no trailing slash. Examples: ```txt mdrxy/anthropic/normalize-tool-call-ids mdrxy/core/vector-store-type-hints mdrxy/infra/agents-md-branch ``` #### PR descriptions The description *is* the summary — do not add a `# Summary` header. - When the PR closes an issue, lead with the closing keyword on its own line at the very top, followed by a horizontal rule and then the body: ```txt Closes #123 --- <rest of description> ``` Only `Closes`, `Fixes`, and `Resolves` auto-close the referenced issue on merge. `Related:` or similar labels are informational and do not close anything. - Explain the *why*: who benefits, what problem they had, and how this solves it. Prefer a simple user story over a long summary. - Write for readers who may be unfamiliar with this area of the codebase. Avoid insider shorthand and prefer language that is friendly to public viewers — this aids interpretability. - Do **not** cite line numbers; they go stale as soon as the file changes. - Rarely include full file paths or filenames. Reference the affected symbol, class, or subsystem by name instead. - Wrap class, function, method, parameter, and variable names in backticks. - For net new features or behavior-changing bugfixes, PR descriptions should include a `## Release note` section that states the user-visible change in release-note-ready language. - Skip dedicated "Test plan" or "Testing" sections in most cases. Mention tests only when coverage is non-obvious, risky, or otherwise notable.
Signals
- Stars
- 148,371
- Forks
- 24,904
- Open issues
- 551
- Last commit (this folder)
- Sep 23, 2026 (1 month ago)
- Last release
- Oct 22, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/langchain-ai/langchain
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from langchain-ai
- 0.875score
deepagents-thread-inspector
langchain-aiOfficial
Inspect and explain conversations in the local Deep Agents Code SQLite session store.
SkillAFreshness: A★ 30.6KClaude Code +9 - 0.872score
configuration-hardening
langchain-aiOfficial
Review Talon tool placement and defensive prompts when requested or when adding or changing tools or subagents; apply confirmed changes and verify active…
SkillAFreshness: A★ 30.6KClaude Code +9 - 0.870score
skill-creator
langchain-aiOfficial
Guide for creating effective skills that extend agent capabilities with specialized knowledge, workflows, or tool integrations.
SkillAFreshness: A★ 30.6KClaude Code +9 - 0.869score
social-media
langchain-aiOfficial
Drafts engaging social media posts, writes hooks, suggests hashtags, creates thread structures, and generates companion images.
SkillAFreshness: A★ 30.6KClaude Code +9 - 0.869score
schema-exploration
langchain-aiOfficial
Lists tables, describes columns and data types, identifies foreign key relationships, and maps entity relationships in a database.
SkillAFreshness: A★ 30.6KClaude Code +9 - 0.869score
web-research
langchain-aiOfficial
Searches multiple web sources, synthesizes findings, and produces cited research reports using delegated subagents.
SkillAFreshness: A★ 30.6KClaude Code +9
Cite this page
AGENTS.md · langchain-ai/langchain. Agent Mart. https://agentmart.dev/templates/langchain-ai-langchain-agents-md (last updated 2026-10-24)