Secure middleware SDK for AI agents.
Project description
AgentShield
AgentShield is a lightweight Python SDK (v0.1.5) that provides a secure middleware layer between AI agents and developer resources such as repositories, file systems, APIs, and tools.
Its purpose is to prevent accidental leakage of sensitive data (API keys, passwords, tokens, etc.) while still allowing agents to perform useful work.
Features
- SecureFS – safe file reader that scans and redacts secrets.
- SecretScanner – regex/entropy-based detection engine.
- Redactor – replaces detected secrets with placeholders.
- OutputGuard – inspects agent outputs and blocks or redacts leaks.
- Policy – YAML-driven configuration for allowed/blocked types.
Getting Started
Install via pip (when released) or add the package to your project.
pip install agentshield-api
If you’re just trying the library out against a test index, you can install from TestPyPI with:
pip install -i https://test.pypi.org/simple agentshield-api
Note that the distribution on PyPI is named agentshield-api (not
agentshield) to avoid collisions with other projects.
from agentshield import SecureFS, OutputGuard
fs = SecureFS()
safe_content = fs.read_file("config.env")
guard = OutputGuard()
clean_output = guard.inspect("some text containing secret=abc123")
Running the test suite
A small pytest-based test suite lives under tests/. After installing
requirements (PyYAML, pytest), run:
python -m pytest -q
You should see five tests covering core functionality.
Extending detection
The :class:agentshield.secret_scanner.SecretScanner class ships with a
set of common regexes (API keys, tokens, AWS formats, JWTs, etc.). If
you need to recognise additional secrets, simply:
from agentshield.secret_scanner import SecretScanner
import re
scanner = SecretScanner()
scanner.register_pattern("MY_SECRET", re.compile(r"mysecret=\S+"))
Patterns are applied in the order they are registered, and you can also provide a custom list during initialization.
Custom policy
By default the library loads a YAML file named default_policy.yaml from the
policies/ directory in the package. You can override this behaviour by
suppling your own Policy instance:
from agentshield import SecureFS, Policy
policy = Policy(allowed=["ENV_VAR"], blocked=["API_KEY"], block_mode="error")
fs = SecureFS(policy=policy)
Or create your own YAML file and load it:
p = Policy.load_from_file("/path/to/my_policy.yaml")
guard = OutputGuard(policy=p)
The configuration schema is simple:
allowed:
- ENV_VAR
blocked:
- API_KEY
block_mode: redact # or error or warn
This makes it easy to adapt AgentShield to your project’s risk profile.
Project Structure
agentshield/
__init__.py
secure_fs.py
secret_scanner.py
redactor.py
output_guard.py
policy.py
policies/
default_policy.yaml
examples/
example_usage.py
tests/
test_*.py
pyproject.toml
requirements.txt
README.md
LICENSE
License
This project is open source under the Apache license.
Project details
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 agentshield_api-0.1.5.tar.gz.
File metadata
- Download URL: agentshield_api-0.1.5.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d885339814ab71efdd674911a91a197fa2b90b5499d46c656ca630543b144c55
|
|
| MD5 |
199a6502abffaa7b2dbc4357b490ec50
|
|
| BLAKE2b-256 |
7370e6a514c42d38d2a44b2829c17fcba04ad548c1ea4c03f6e5dce6ae8ed862
|
File details
Details for the file agentshield_api-0.1.5-py3-none-any.whl.
File metadata
- Download URL: agentshield_api-0.1.5-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c5fbc26da7ef6bbd50fed26e4433d9f22e729f669cfbf66bceadb53113554a8
|
|
| MD5 |
d6031208167c3369cbd79aea0215e40e
|
|
| BLAKE2b-256 |
082d6ef213d3d0b28e546961b8b4ceb6c687cf852d5e00bd40a788e37058fd73
|