This project has been archived by its maintainers, and is no longer receiving any updates.
langchain-loadout
Per-turn skill selection for LangChain and deepagents agents: the model sees the few skills it needs, not a catalog of hundreds.
What it gives · Limits · How it works · Contributing
An agent with hundreds of skills carries every name and description in its system prompt, on every model call. Loadout decides each turn which skills matter and shows the model only those.
- Each turn stands alone. "Is a skill needed at all" is asked alongside the ranking, so a request that needs no skill costs one cheap answer and nothing is loaded. No state, no checkpointer, nothing to carry between turns.
- The logic is Loadout's, the judge is yours. The questions are simple — "pick one", "yes or no" — and go through a single port. A ready adapter ships for Jev.
- Confidence decides what the agent sees. High: the skill's instructions go straight into the
request. Medium: two or three candidates. Low: nothing, and the model can still call
find_skill. Every threshold is a setting. - A failure does not break the agent. Loadout wraps the ordinary skills middleware. If it times out or errors, the agent gets the full list, exactly as it would without Loadout.
What it gives
Measured on a testbed — a bank-statement assistant with a catalog of 236 skills, an agent on deepagents, 50 conversations of 5 turns each:
| with Loadout | full catalog in the prompt | |
|---|---|---|
| correct answer to the user | 86% | 86% |
| the right skill was taken | 86% | 57% |
| skills section of the prompt | 5,648 characters | 89,150 characters |
| input tokens per turn | 34,131 | 111,864 |
When the agent has tools and can work the answer out for itself, the skill barely affects whether the answer is right. What Loadout delivers consistently is context and a predictable skill choice. The reasoning behind the design is in docs/design.md.
Limits
- It is not an accuracy feature. Where a skill only restates what the model could work out, the answer is the same either way.
- A decision costs about 3 s on a catalog of 236 skills. Two seconds is reachable on a catalog of about a hundred, or on a turn that continues a topic.
- A turn costs slightly more, not less. The full catalog is identical every message and caches well; the Loadout prompt changes every turn and does not.
- Thresholds have to be fitted on your own data, and the library has no procedure for that yet.
- Everything above was measured on generated data, with one judge and one agent model.
The reasoning behind each of these is in docs/design.md.
Development
uv sync
just test # the test suite; no network needed
just lint # formatting, style and import order
just type # types
See CONTRIBUTING.md for issues, branches, commits and reviews, and docs/development.md for the coding rules.
License
Release files for langchain-loadout 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_loadout-0.1.0.tar.gz | 15.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_loadout-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.6 kB
Release files / langchain_loadout-0.1.0.tar.gz
| Download URL | langchain_loadout-0.1.0.tar.gz |
|---|---|
| Size | 15.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
32e49ae7a7cbd8d642d145c5d6789b50bceeba7fcea6991cadaea4727994e3e6
|
|
BLAKE2b-256 checksum How to use checksums |
fd5da3326fa1b4ffd663e7d063124ede0fbb33b263406e4bd37b34f320a8aaf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / langchain_loadout-0.1.0-py3-none-any.whl
| Download URL | langchain_loadout-0.1.0-py3-none-any.whl |
|---|---|
| Size | 21.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
df6007e593f2e14b7d5ae4bbf2409c513c0ad3ed2e144478bf9daedb78676c07
|
|
BLAKE2b-256 checksum How to use checksums |
7e1c2c0c00766279694b61117ec24228ec3a0beff8074f59b34675eab5113bba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log