Behavioral telemetry and policy enforcement for AI agents
Project description
quint-agent
Behavioral telemetry and policy enforcement for AI agents.
Capture every prompt, tool call, and tool result from your AI agents. Enforce YAML-defined policy at the tool-call boundary. Replay sessions in the cloud.
Install
pip install 'quint-agent[anthropic]' # or [langchain], [openai], [mcp], [all]
30-second example (raw Anthropic loop)
import anthropic
import quint_agent
from quint_agent.integrations.anthropic import guarded_dispatch
quint_agent.init(api_key="qak_...") # default policy blocks .env reads, rm -rf, etc.
def read_file(path: str) -> str:
return open(path).read()
tools_map = {"read_file": read_file}
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=[{"name": "read_file", "description": "Read a file", "input_schema": {
"type": "object", "properties": {"path": {"type": "string"}}, "required": ["path"]
}}],
messages=[{"role": "user", "content": "Read /etc/passwd"}],
)
for block in response.content:
if block.type == "tool_use":
result = guarded_dispatch(block.name, block.input, tools_map)
LangChain
from quint_agent.integrations.langchain import QuintCallbackHandler
chain.invoke({"input": "..."}, config={"callbacks": [QuintCallbackHandler()]})
@quint.guard decorator
import quint_agent
quint_agent.init(api_key="qak_...")
@quint_agent.guard()
def read_file(path: str) -> str:
return open(path).read()
read_file(path="/etc/hosts") # allowed
read_file(path="/home/me/.env") # raises ToolBlockedError
MCP
from quint_agent.integrations.mcp import QuintMCPClient
async with mcp_client() as session:
guarded = QuintMCPClient(session)
result = await guarded.call_tool("read_file", {"path": "/x"})
Custom policy
# my_policy.yaml
rules:
- name: no_prod_db
action: block
when:
- op: equals
path: tool_name
value: execute_sql
- op: contains
path: args.connection
value: prod
quint_agent.init(api_key="...", policy=open("my_policy.yaml").read())
Default policy
Ships with 4 rules out of the box:
- Block
.envfile reads - Block AWS credentials access
- Escalate on
secrets/directory reads - Block destructive shell commands (
rm -rf /)
Override by passing your own policy to quint.init(policy=...).
License
Apache 2.0 -- see LICENSE.
Built by Quint Security.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quint_agent-0.1.0.tar.gz.
File metadata
- Download URL: quint_agent-0.1.0.tar.gz
- Upload date:
- Size: 184.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a2c5e88f15707c939ff1e00b6358ead557d507617e17d4264272f449ee80c51
|
|
| MD5 |
0bd570a5c78f5b9f4b96a42d2c25cb9d
|
|
| BLAKE2b-256 |
a43afe9ff1014d5ce8945e4a0fe5dd514b5ef61fdb24806c5502751e1b809e77
|
Provenance
The following attestation bundles were made for quint_agent-0.1.0.tar.gz:
Publisher:
release.yml on Quint-Security/quint-agent-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quint_agent-0.1.0.tar.gz -
Subject digest:
7a2c5e88f15707c939ff1e00b6358ead557d507617e17d4264272f449ee80c51 - Sigstore transparency entry: 1630652744
- Sigstore integration time:
-
Permalink:
Quint-Security/quint-agent-py@78ad4c52006676ad6929e00d3b2c1803c03fcef7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Quint-Security
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@78ad4c52006676ad6929e00d3b2c1803c03fcef7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file quint_agent-0.1.0-py3-none-any.whl.
File metadata
- Download URL: quint_agent-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0db7ac35a587d0c6c41392744f2dbe4334d5d81eeb90668c04106a0957d6b5d3
|
|
| MD5 |
9929eda89d036399384fc0a58fba5080
|
|
| BLAKE2b-256 |
784eb18e13cca3737732289f529ed209266dfc6ce03ea78f272eb70f4c1681cf
|
Provenance
The following attestation bundles were made for quint_agent-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Quint-Security/quint-agent-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quint_agent-0.1.0-py3-none-any.whl -
Subject digest:
0db7ac35a587d0c6c41392744f2dbe4334d5d81eeb90668c04106a0957d6b5d3 - Sigstore transparency entry: 1630652754
- Sigstore integration time:
-
Permalink:
Quint-Security/quint-agent-py@78ad4c52006676ad6929e00d3b2c1803c03fcef7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Quint-Security
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@78ad4c52006676ad6929e00d3b2c1803c03fcef7 -
Trigger Event:
push
-
Statement type: