Trust infrastructure for AI agents - AI should do what it says, we make sure it does
Project description
AgentIntent
AI Should Do What It Says. We Make Sure It Does.
AgentIntent is the trust infrastructure for AI agents. Register your agents, declare their intent, and monitor their behavior to build trust.
Installation
pip install agentintent
With LangChain support:
pip install agentintent[langchain]
Quick Start
LangChain (2 lines of code)
from langchain.agents import AgentExecutor
from agentintent import AgentIntentCallback
# Just add our callback - that's it!
agent = AgentExecutor(
agent=my_agent,
tools=my_tools,
callbacks=[AgentIntentCallback("ai_xxxxx")] # ← Add this line
)
# Use your agent as normal
result = agent.invoke({"input": "Do something"})
With Intent Manifest (recommended)
Define what your agent should do, and we'll make sure it does:
from agentintent import AgentIntent, IntentManifest
# Define what your agent is supposed to do
manifest = IntentManifest(
name="ExpenseBot",
description="Processes expense reports",
# Tools this agent is allowed to use
allowed_tools=["email_read", "ocr", "form_submit"],
# Tools this agent must NEVER use
forbidden_tools=["code_execute", "file_delete", "send_email"],
# Block violations instead of just warning
enforcement_mode="block"
)
# Initialize AgentIntent
ai = AgentIntent(api_key="ai_xxxxx", manifest=manifest)
# Get the callback for LangChain
callback = ai.langchain_callback()
# Use with your agent
agent = AgentExecutor(
agent=my_agent,
tools=my_tools,
callbacks=[callback]
)
# If agent tries to use a forbidden tool, it will be blocked
result = agent.invoke({"input": "Process this expense report"})
Universal Wrapper (any framework)
from agentintent import monitor
# Wrap any agent or function
monitored_agent = monitor(your_agent, api_key="ai_xxxxx")
# Or use as a decorator
@monitor(api_key="ai_xxxxx")
def my_agent_function(input):
# Your agent logic
return result
Features
🛡️ Intent Declaration
Tell us what your agent should do:
manifest = IntentManifest(
name="CustomerServiceBot",
allowed_tools=["search_kb", "send_response"],
forbidden_tools=["access_billing", "modify_account"],
allowed_api_patterns=["api.company.com/*"],
forbidden_api_patterns=["*.stripe.com/*"],
)
📊 Automatic Monitoring
Every action is tracked:
- LLM calls (model, tokens, duration)
- Tool usage (which tools, inputs/outputs)
- API calls (endpoints, patterns)
- Agent decisions (reasoning, tool selection)
⚡ Real-Time Enforcement
Block bad behavior before it happens:
# enforcement_mode options:
# - "block": Raise exception on violation
# - "warn": Log warning but allow
# - "log": Just log, no warnings
manifest = IntentManifest(
name="SecureBot",
forbidden_tools=["dangerous_tool"],
enforcement_mode="block" # Will raise EnforcementError
)
🏆 Trust Score
Build reputation over time:
# Get your agent's trust score
score = ai.get_trust_score()
# {
# "score": 94,
# "tier": "TRUSTED",
# "breakdown": {
# "intent_alignment": 98,
# "behavioral_consistency": 96,
# "developer_reputation": 91,
# "security_posture": 89
# }
# }
Supported Frameworks
| Framework | Status | Integration |
|---|---|---|
| LangChain | ✅ Ready | Callback handler |
| CrewAI | 🚧 Coming | Agent wrapper |
| AutoGen | 🚧 Coming | Message interceptor |
| LlamaIndex | 🚧 Coming | Event handler |
| Custom Python | ✅ Ready | Decorator/wrapper |
Performance
AgentIntent is designed for zero-impact monitoring:
- < 1ms overhead per action (local enforcement)
- Async logging (never blocks your agent)
- Batched uploads (efficient network usage)
- Fail-safe (if our cloud is down, your agent keeps running)
Configuration
Environment Variables
export AGENTINTENT_API_KEY="ai_xxxxx"
export AGENTINTENT_BASE_URL="https://api.agentintent.ai/v1" # optional
Manifest from File
# manifest.yaml
manifest = IntentManifest.from_file("manifest.yaml")
# manifest.yaml
name: MyAgent
version: "1.0.0"
description: Does useful things
allowed_tools:
- search
- calculator
forbidden_tools:
- code_execute
- file_delete
limits:
max_llm_calls_per_minute: 60
max_tool_calls_per_minute: 120
enforcement_mode: warn
API Reference
AgentIntent
ai = AgentIntent(
api_key="ai_xxxxx",
manifest=manifest, # Optional: IntentManifest
enforcement_mode="warn", # Optional: override manifest
cloud_enabled=True, # Optional: disable cloud logging
)
# Get callbacks/wrappers
callback = ai.langchain_callback()
# Manual logging
ai.log_action("tool_call", {"tool": "search", "query": "..."})
# Check enforcement
result = ai.check_tool("dangerous_tool")
if result.blocked:
print(f"Blocked: {result.reason}")
# Get metrics
metrics = ai.get_metrics()
# Cleanup
ai.close()
IntentManifest
manifest = IntentManifest(
name="MyAgent",
version="1.0.0",
description="What this agent does",
# Tool permissions
allowed_tools=["tool1", "tool2"],
forbidden_tools=["bad_tool"],
# API permissions (regex patterns)
allowed_api_patterns=["api.safe.com/*"],
forbidden_api_patterns=["*.dangerous.com/*"],
# Data permissions
allowed_data_sources=["public_db"],
forbidden_data_sources=["private_db", "credentials"],
# Rate limits
limits={
"max_llm_calls_per_minute": 60,
"max_tool_calls_per_minute": 120,
},
# Enforcement
enforcement_mode="block", # or "warn" or "log"
)
License
MIT License - see the LICENSE file in the repository.
Links
- Website: https://agentintent.ai
- Documentation: https://docs.agentintent.ai
- GitHub: https://github.com/agentintent/agentintent-python
- Discord: https://discord.gg/agentintent
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 agentintent-0.1.2.tar.gz.
File metadata
- Download URL: agentintent-0.1.2.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfc86aa1a56b164737ef4a8b97252dc1c2ff05c9b441a8eebc837d21c2f23946
|
|
| MD5 |
d53868c3c7e32f8b6d194dab2f0c8d8c
|
|
| BLAKE2b-256 |
b8d1e11132652527896e1df1ccc56cc2865e28a0b5f8dbd9df250ca18b6e29e9
|
File details
Details for the file agentintent-0.1.2-py3-none-any.whl.
File metadata
- Download URL: agentintent-0.1.2-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d75328b90f32235cd32392fc11579e673456994dbdc617edd3baa562dc5c12d
|
|
| MD5 |
0ed4c759f75247b926aafa4e025e6a4b
|
|
| BLAKE2b-256 |
2a733cd729955f16490b94cccd8bf33db0f58e2b34d74fca3ff0844f3b96283a
|