Skip to main content

Quesen — LangChain / LangGraph Tool

Deterministic Agent Firewall + A2A risk validation as LangChain BaseTools. Integrate in under 5 minutes.

Status: v0.3.0 · tracks Quesen engine v1.10.0 (TSC v2 firewall) · requires quesen-sdk>=0.4.1. Developer portal: https://senueren.co.za/quesen · Source: https://github.com/Shxnque/quesen


Agent Firewall (30-second, no signup)

from quesen_langchain import QuesenFirewallTool

# sandbox=True self-serves a free key against the hosted engine.
firewall = QuesenFirewallTool(
    base_url="https://web-production-aa5ba.up.railway.app",
    sandbox=True,
)

# Give it to any LangChain/LangGraph agent, or call directly:
verdict = firewall._run(
    agent="my-agent", action="send_data",
    target="https://paste.evil.example", data_class="secret",
)
print(verdict["decision"])                       # 'BLOCK'
print([r["code"] for r in verdict["reasons"]])   # ['EGRESS_SECRET_UNTRUSTED']

action accepts send_data / tool_call / payment (+ aliases). For production pass api_key="sk_live_..." instead of sandbox=True.


Install

pip install quesen-langchain
# or from source while we publish:
pip install git+https://github.com/Shxnque/quesen-langchain.git

Brings quesen-sdk>=0.2.0 and langchain-core with it. No LLM lock-in.


30-second usage

from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
from quesen_langchain import QuesenValidateTool, QuesenReportTool

validate_tool = QuesenValidateTool(base_url="https://<your-quesen>", api_key="sk_live_abc")
report_tool   = QuesenReportTool(base_url="https://<your-quesen>", api_key="sk_live_abc")

agent = ChatOpenAI(model="gpt-4o-mini").bind_tools([validate_tool, report_tool])
print(agent.invoke([HumanMessage("Should I ape into a 1-day-old token with 4 scam keywords and 95% engagement?")]))

Receipt provenance (v1.10, tracked in v0.2.0)

QuesenValidateTool._run(...) returns the raw response dict verbatim from the underlying quesen-sdk client. When talking to a v1.10.0+ engine that dict includes two additional fields:

  • input_snapshot_hash — 64-char SHA-256 hex over the canonical request payload.
  • commit_sha — 40-char git SHA of the engine ruleset live at decision time (or "unknown").

Both flow through unchanged for downstream LangGraph nodes to consume, log, or verify. See the developer portal API reference for the field contract.


What ships

Tool Wraps Purpose
QuesenValidateTool POST /validate Deterministic PROCEED/REVIEW/SKIP verdict (carries v1.10 provenance)
QuesenSimulateTool POST /simulate Free counterfactual (test the model without spending a call)
QuesenReportTool POST /report Post-decision outcome feedback (v1.1 schema)

All three are langchain_core.tools.BaseTool subclasses with structured Pydantic inputs. Compatible with LangGraph, create_react_agent, bind_tools(), and every LangChain callback pipeline.


Environment

Var Meaning
QUESEN_BASE_URL Optional default base URL (else pass to the tool constructor).
QUESEN_API_KEY Optional default API key.

Doctrine compliance (inherited from parent)

  • Determinism. No prompt-tuning, no randomness in the wrapper.
  • Ecosystem neutrality. Depends on langchain-core only, not on any specific LLM provider.
  • Fail-closed. Timeouts surface as tool errors; recommended agent policy: treat as SKIP.
  • Provenance forwarded. The raw dict returned to the LangChain runtime carries input_snapshot_hash and commit_sha unchanged, so downstream nodes can pin the ruleset.

MIT license. See senueren.co.za/quesen for canonical documentation.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quesen_langchain-0.3.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quesen_langchain-0.3.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file quesen_langchain-0.3.0.tar.gz.

File metadata

  • Download URL: quesen_langchain-0.3.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.16

File hashes

Hashes for quesen_langchain-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c410197e0be6a48d6ac6de73c61dbe3a7d59aa377c23a6b3ae72e6940f10a865
MD5 fdde704ab153acad2860785badbd1002
BLAKE2b-256 4f0111c094fea658a4de67292e76b5cc5f2bf355ee351460acdcb07f4729e330

See more details on using hashes here.

File details

Details for the file quesen_langchain-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for quesen_langchain-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c297f0df1a7609dacad03e687980de264ce37d12f3f0f64f297fa385f314ea96
MD5 f11f406b4a42864e3ce52c914036e626
BLAKE2b-256 39e57c46566117b0c1e2df53748c8ffb261385e216482bb0c421579929f2eb0d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page