Local-first assurance and observability for AI agents
Project description
PathProof
Evidence-driven path assurance for AI agents.
Release status:
0.2.0rc1is a public release candidate for testing. It is not yet a stable production release.
Current MVP version: 0.1.2
PathProof is a local-first Python library for monitoring, evaluating, and enforcing policies on AI-agent runs.
Quick start
pip install pathproof-ai==0.2.0rc1
from pathproof import AgentMonitor, Policy
policy = Policy(
allowed_tools={"verify_customer", "search_orders", "create_ticket"},
max_tool_calls=10,
)
monitor = AgentMonitor(
agent_name="support_agent",
version="0.1.0",
policy=policy,
)
with monitor.run(task="Resolve customer complaint") as run:
run.tool_call(
name="verify_customer",
arguments={"customer_id": "C-102"},
function=lambda customer_id: {"verified": True},
)
run.record_output({"status": "resolved"})
report = run.evaluate()
print(report.to_text())
Included in v0.1
- Run and event recording
- Tool-call monitoring
- Policy checks
- Repeated-call detection
- Missing-prerequisite detection
- Human-approval gates
- Trust score with explanations
- Text and JSON reports
- In-memory, JSON, and SQLite storage
- Basic run comparison
Easier tool wrapping
with monitor.run(task="Demo") as run:
@run.tool()
def search(query: str):
return {"results": [query]}
result = search(query="agent assurance")
run.record_output(result)
Runtime limits are enforced before an extra step or tool call in warning, approval, and blocking modes. Tool failures can be explicitly marked as handled with run.handle_tool_failure(...).
Evidence bundles (v0.1.3)
bundle = run.evidence()
assert bundle.verify()
bundle.to_json()
The bundle fingerprints the complete run and evaluation. Any later payload change causes verification to fail. This is tamper evidence, not yet a digital signature or legal certificate.
Regression cases (v0.1.3)
case = run.regression_case(name="Prevent repeated search")
case.save("regressions/repeated-search.json")
result = check_regression(case, candidate_report)
assert result.passed
Deeper comparisons
compare_runs() now detects tool and step sequence changes, new or removed tools, new failure classes, new policy violations, and trust-score changes.
Causal evidence graph
PathProof now links steps, tool requests, tool results, and outputs. It can distinguish a successful-looking output from an unsafe execution path.
Development installation
python -m pip install -e ".[dev]"
python -m pytest
Privacy
PathProof is local-first. It does not require a cloud service and does not transmit recorded data by default. Review stored inputs, outputs, and tool arguments before using it with sensitive information.
Important limitation
PathProof provides technical monitoring, evidence, and configurable policy enforcement. It does not by itself certify that an AI decision is legally, ethically, or factually correct.
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 pathproof_ai-0.2.0rc1.tar.gz.
File metadata
- Download URL: pathproof_ai-0.2.0rc1.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
827757b3eeef269ddccd991c08dd0ba25ea0cd4570fc7d0c1965ac589a0288d9
|
|
| MD5 |
be23539ac0d6f82523dae33d5eef90eb
|
|
| BLAKE2b-256 |
a22ecdd79f53cf8a484e8d9f899bc2a15385bafbdf543b1a118ef8ee4b918f54
|
File details
Details for the file pathproof_ai-0.2.0rc1-py3-none-any.whl.
File metadata
- Download URL: pathproof_ai-0.2.0rc1-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
141e83c52074535e404d62669338c48ac753bd06b566104577211b06acaf2ed6
|
|
| MD5 |
b2e3b7359e185fbe92f0b486bc14a69b
|
|
| BLAKE2b-256 |
7878db17c3c5dfb44fc17015bc0eb153e1c4250d8ebe1b314cde63ca50e4166d
|