Observed since 20 Oct, 20:17 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
aegis-langchain
LangChain governance middleware for Aegis ACP (maintenance-only — Anthropic SDK is the active hero)
⚠️ Sprint 25 freeze (2026-06-26):
aegis-langchainis now maintenance-only. The Aegis team has narrowed focus to a single hero SDK,aegis-anthropic, while we drive design-partner revenue.aegis-langchaincontinues to receive security patches but no new features until further notice. The drop-in LangChain contract below remains fully supported against the canonical/executeAPI; you can keep using it in production.
Drop-in LangChain middleware that routes every tool invocation through Aegis's runtime governance pipeline before execution.
pip install aegis-langchain
Wraps a LangChain agent (AgentExecutor / Runnable) so every tool the agent decides to call is pre-checked by Aegis (POST /execute) before the tool actually runs. Blocked calls return a descriptive message back to the agent loop; allowed calls pass through unchanged.
Aegis decides what to block based on action semantics — the DROP TABLE, rm -rf, kubectl delete, external-PII-egress patterns in services/policy/policies/action_semantics_deny.rego. The deny is earned from the content of the action, not from a hardcoded "critical" tag on the agent. So a buyer flipping the agent's risk level can't accidentally bypass it.
Every check produces a signed audit row in the Aegis chain. Verify any of them offline with aegis-verify (the tools/aegis_verify/ CLI).
from aegis_langchain import AegisMiddleware
agent = AegisMiddleware(
my_langchain_agent,
api_key="acp_...", # or AEGIS_API_KEY env var
aegis_url="https://aegisagent.in", # or AEGIS_URL env
tenant_id="00000000-0000-0000-0000-000000000001",
agent_id="<your-agent-uuid>",
)
result = agent.invoke({"input": "analyze the customer table and clean up old rows"})
# Each tool invocation is pre-checked. Blocked tools return a message
# explaining the deny; the agent reasons over it like any other tool
# observation.
Works with any LangChain agent that uses tools (AgentExecutor, structured-chat agents, custom runnables that invoke tools via tool_call).
If the Aegis gateway is unreachable, tool invocations return deny with reason aegis_unreachable_fail_closed. Letting unchecked calls through because the security plane was down defeats the integration's purpose.
After any allowed (or denied) tool call:
GET /receipts/key — ed25519 PEMGET /compliance/export/eu-ai-act?period_start=…&period_end=… — signed bundleaegis-verify --bundle bundle.json — V1–V6 checks pass without any network call back to Aegislangchain-core>=0.1 (auto-pulled with pip install "aegis-langchain[langchain]")Apache 2.0.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.25 | runtime |
langchain-coreEnvironment{
"extras": "",
"marker": "extra == \"langchain\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain-core>=0.1; extra == "langchain" | runtime |
bdist_wheel · 11.93 KB · Python py3
sdist · 11.46 KB · Python source
Observed since 20 Oct, 20:17 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:32acac1ced8e17499e15fcf789f63dcdbe80dd5c8c33e9cf438f1171789aeefa