CommunityCodierung & Entwicklunggithub.com

langchain-ai/langchain-middleware

Rufe diese Fähigkeit auf, wenn du eine Mensch-im-Kreis-Bestätigung, benutzerdefinierte Middleware oder strukturierte Ausgabe benötigst. Behandelt HumanInTheLoopMiddleware für menschliche Genehmigung gefährlicher Tool-Aufrufe, Erstellung benutzerdefinierter Middleware mit Hooks, Command-Resume-Muster und strukturierte Ausgabe mit Pydantic/Zod.

Was ist langchain-middleware?

Diese Fähigkeit (Skill) für KI-Agenten konzentriert sich auf die Implementierung von Mensch-im-Kreis (Human-in-the-Loop)-Genehmigungen, benutzerdefinierter Middleware und strukturierte Ausgabe in LangChain-basierten Anwendungen. Sie ist besonders nützlich, wenn ein Agent riskante Aktionen ausführt (z. B. Dateilöschung oder Zahlungsauslösung), die eine menschliche Freigabe erfordern. Der Skill umfasst die Verwendung von `HumanInTheLoopMiddleware`, um Tool-Aufrufe zur Überprüfung durch einen Menschen zu pausieren, sowie die Erstellung eigener Hooks für Logging, Zugriffskontrolle oder andere Zwischenverarbeitung. Darüber hinaus wird das `Command`-Resume-Muster beschrieben, um unterbrochene Workflows nach der menschlichen Bestätigung fortzusetzen. Der dritte Schwerpunkt liegt auf der strukturierten Ausgabe mit Pydantic (Python) oder Zod (TypeScript), um KI-Ergebnisse in einem typsicheren, maschinenlesbaren Format zu erzwingen. Diese Fähigkeit ist plattformunabhängig und kann mit LangChain und allen gängigen KI-Agentenframeworks wie Claude Code, Cursor, Codex, VSCode Agents und ähnlichen Integrationsumgebungen verwendet werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/langchain-ai/langchain-skills/tree/main/skills/langchain-middleware

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht langchain-middleware?

RUFE DIESE FÄHIGKEIT AUF, wenn du eine Mensch-im-Kreis-Bestätigung, benutzerdefinierte Middleware oder strukturierte Ausgabe benötigst. Behandelt:

  • HumanInTheLoopMiddleware für menschliche Genehmigung gefährlicher Tool-Aufrufe
  • Erstellung benutzerdefinierter Middleware mit Hooks
  • Command-Resume-Muster
  • Strukturierte Ausgabe mit Pydantic/Zod

Mensch-im-Kreis (Human-in-the-Loop)

Die HumanInTheLoopMiddleware hält die Ausführung des Agenten an, wenn ein Tool aufgerufen wird, das eine menschliche Genehmigung erfordert. Der Agent sendet eine Anfrage an den Benutzer mit einer Beschreibung der auszuführenden Aktion. Der Benutzer kann die Aktion genehmigen, ablehnen oder Änderungen vorschlagen. Nach der Genehmigung wird die Ausführung fortgesetzt.

Verwendung:

from langchain.middleware import HumanInTheLoopMiddleware

middleware = HumanInTheLoopMiddleware(
    agent=my_agent,
    dangerous_tools=["delete_file", "exec_shell_command"],
    prompt_template="Möchten Sie diese Aktion ausführen: {action}?",
)

Benutzerdefinierte Middleware mit Hooks

Du kannst eigene Middleware-Komponenten erstellen, die in den Lebenszyklus des Agenten eingreifen. Verwende Hooks wie before_tool_call, after_tool_call, before_llm_call und after_llm_call, um Logging, Zugriffskontrolle oder Datenvalidierung durchzuführen.

Beispiel:

class LoggingMiddleware:
    async def before_tool_call(self, tool_name, args):
        print(f"Tool {tool_name} wird mit {args} aufgerufen")
        return args  # oder modifiziere die Argumente

    async def after_tool_call(self, tool_name, result):
        print(f"Tool {tool_name} gab {result} zurück")
        return result

Command-Resume-Muster

Verwende das Command-Muster, um unterbrochene Workflows nach einer Pause (z. B. menschlicher Bestätigung) fortzusetzen. Der Agent kann einen Command-Datensatz mit einem resume-Token speichern. Nach der Bestätigung wird der Datensatz geladen und der Workflow ab dieser Stelle fortgesetzt.

Beispiel:

from langchain.command import Command, Resume

# Speichere einen Command
command = Command(
    tool="delete_file",
    args={"path": "/tmp/test.txt"},
    resume=Resume(
        token="abc123",
        context={"user": "max"}
    )
)

# Später fortsetzen
resume = Resume.load(token="abc123")
agent.resume(resume)

Strukturierte Ausgabe mit Pydantic/Zod

Erzwinge strukturierte, typsichere Ausgaben von KI-Modellen mithilfe von Pydantic (Python) oder Zod (TypeScript). Definiere ein Schema, das die erwartete Ausgabe beschreibt. Der Agent extrahiert die Antwort des Modells in dieses Schema.

Beispiel in Python mit Pydantic:

from pydantic import BaseModel

class MeetingScheduler(BaseModel):
    title: str
    date: str
    duration_minutes: int
    participants: list[str]

result = agent.structured_output(MeetingScheduler, prompt="Erstelle eine Besprechungseinladung für morgen um 14:00 Uhr mit Alice und Bob zum Thema "Projekt-Update".")
print(result.title)  # "Projekt-Update"

Beispiel in TypeScript mit Zod:

import { z } from "zod";

const MeetingScheduler = z.object({
  title: z.string(),
  date: z.string(),
  duration_minutes: z.number(),
  participants: z.array(z.string()),
});

const result = await agent.structuredOutput(MeetingScheduler, "Erstelle eine Besprechungseinladung für morgen um 14:00 Uhr mit Alice und Bob zum Thema "Projekt-Update".");
console.log(result.title); // "Projekt-Update"

Plattformunterstützung

Diese Fähigkeit ist für LangChain und kompatible KI-Agentenframeworks (Claude Code, Cursor, Codex, VSCode Agents, etc.) konzipiert.

Weiterführende Informationen

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

langchain-ai/deep-agents-core

INVOKE THIS SKILL when building ANY Deep Agents application. Covers create_deep_agent(), harness architecture, SKILL.md format, and configuration options.

langchain-ai/deep-agents-memory

INVOKE THIS SKILL when your Deep Agent needs memory, persistence, or filesystem access. Covers StateBackend (ephemeral), StoreBackend (persistent), FilesystemMiddleware, and CompositeBackend for routing.

langchain-ai/deep-agents-orchestration

INVOKE THIS SKILL when using subagents, task planning, or human approval in Deep Agents. Covers SubAgentMiddleware, TodoList for planning, and HITL interrupts.

langchain-ai/framework-selection

INVOKE THIS SKILL at the START of any LangChain/LangGraph/Deep Agents project, before writing any agent code. Determines which framework layer is right for the task: LangChain, LangGraph, Deep Agents, or a combination. Must be consulted before other agent skills.

langchain-ai/langchain-dependencies

INVOKE THIS SKILL when setting up a new project or when asked about package versions, installation, or dependency management for LangChain, LangGraph, LangSmith, or Deep Agents. Covers required packages, minimum versions, environment requirements, versioning best practices, and common community tool packages for both Python and TypeScript.

langchain-ai/langchain-fundamentals

Create LangChain agents with create_agent, define tools, and use middleware for human-in-the-loop and error handling.

langchain-ai/langchain-rag

INVOKE THIS SKILL when building ANY retrieval-augmented generation (RAG) system. Covers document loaders, RecursiveCharacterTextSplitter, embeddings (OpenAI), and vector stores (Chroma, FAISS, Pinecone).

langchain-ai/langgraph-fundamentals

INVOKE THIS SKILL when writing ANY LangGraph code. Covers StateGraph, state schemas, nodes, edges, Command, Send, invoke, streaming, and error handling.

langchain-ai/langgraph-human-in-the-loop

INVOKE THIS SKILL when implementing human-in-the-loop patterns, pausing for approval, or handling errors in LangGraph. Covers interrupt(), Command(resume=...), approval/validation workflows, and the 4-tier error handling strategy.

langchain-ai/langgraph-persistence

INVOKE THIS SKILL when your LangGraph needs to persist state, remember conversations, travel through history, or configure subgraph checkpointer scoping. Covers checkpointers, thread_id, time travel, Store, and subgraph persistence modes.

langchain-ai/swarm

Dispatches many independent items in parallel: create a table, fan out to subagents, aggregate results. One row = one unit of work.

Verwandte Skills