"Work on the actively maintained LangChain v1 agent package:
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill agents-and-middleware --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Agents And Middleware?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-agents-and-middleware)More formats (shields.io, HTML) on the badges page.
---
name: agents-and-middleware
description: "Work on the actively maintained LangChain v1 agent package:
init_chat_model, create_agent, structured output, tools, middleware,
embeddings initialization, provider routing, and agent runtime customization.
Use for libs/langchain_v1 agent workflows and route low-level core primitives
or provider implementation details to sibling skills."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# Agents and Middleware
Use this sub-skill for practical work in the actively maintained `langchain` package around v1 agents, middleware, model initialization, structured output, tools, and embeddings. This guidance is distilled from the LangChain v1 source and tests and is self-contained for future coding agents.
## When to Use
- User asks about `init_chat_model`, `create_agent`, `response_format`, tool schemas, injected tool runtime, or configurable chat models.
- User asks to add, configure, or debug middleware such as retry, fallback, human-in-the-loop, summarization, tool/model call limits, PII redaction, file search, shell execution, todo planning, provider tool search, tool retry, or tool selection.
- User asks why provider resolution fails for a chat or embedding model, especially when optional integration packages or credentials are missing.
- User asks to customize agent state, runtime context, checkpointer/store usage, interrupts, streaming, or debug behavior at the `langchain` v1 layer.
## Route Elsewhere
- For low-level runnable, message, tool, callback, language-model, or embedding primitives from `langchain_core`, use `../core-primitives/SKILL.md`.
- For provider implementation packages such as `langchain-openai`, `langchain-anthropic`, `langchain-ollama`, or provider-specific parameters/classes, use `../integrations/SKILL.md`.
- For legacy `langchain-classic` imports, chains, retrievers, or classic agents, use the sibling skill that owns classic APIs instead of rewriting v1 guidance.
## Reference Map
- Start with [references/agent-workflows.md](references/agent-workflows.md) for source layout, import paths, common edit workflows, validation commands, structured output, tools, embeddings, and provider initialization.
- Use [references/middleware-reference.md](references/middleware-reference.md) for middleware families, exported classes, hook styles, ordering, state/context patterns, and safety constraints.
- Use [references/troubleshooting.md](references/troubleshooting.md) for missing provider packages, credentials/network skips, structured output/tool validation, middleware ordering, HITL/shell/file-search safety, and v1-vs-classic confusion.
- Run [scripts/agent_import_smoke.py](scripts/agent_import_smoke.py) as a safe import-only smoke check when an environment is available.
## Fast Workflow
1. Confirm the target package is `libs/langchain_v1`; its distribution name is `langchain` and its package imports are `langchain.*`.
2. Inspect the nearest v1 public API files first: `langchain/chat_models/base.py`, `langchain/agents/factory.py`, `langchain/agents/structured_output.py`, `langchain/agents/middleware/`, `langchain/tools/`, and `langchain/embeddings/base.py`.
3. Prefer tests under `tests/unit_tests/agents`, `tests/unit_tests/chat_models`, `tests/unit_tests/tools`, and `tests/unit_tests/embeddings` for expected public behavior.
4. For package validation, use `uv` from `libs/langchain_v1`; do not use `pip`, `poetry`, or `conda` directly for this monorepo.
5. Skip network-backed model invocations unless credentials, provider packages, and user permission are present; use fake models or import checks for local validation.
## Safe Validation
From `libs/langchain_v1`, use targeted package tests when `uv` is available:
```bash
uv run --group test pytest tests/unit_tests/chat_models/test_chat_models.py tests/unit_tests/agents/test_response_format.py tests/unit_tests/tools/test_imports.py tests/unit_tests/embeddings/test_base.py
```
From this sub-skill directory, use the bundled smoke script with any Python environment that already has `langchain` installed:
```bash
python scripts/agent_import_smoke.py
```
The smoke script imports public APIs only and does not call providers, networks, shell commands, or external files.
## Guardrails
- Keep v1 import paths explicit: `langchain.chat_models`, `langchain.agents`, `langchain.agents.middleware`, `langchain.tools`, and `langchain.embeddings`.
- Do not add provider-specific hard dependencies to `langchain` core code unless the package metadata intentionally lists them as optional extras.
- Do not run shell/file-search/HITL examples as unattended validation; these require user-reviewed safety decisions.
- Do not link future runtime instructions to source-checkout docs, examples, tests, or absolute local paths; distill facts into this sub-skill or bundled references.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!