Current collected state Current
Observed since 20 Oct, 23:19 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentsentinel-core
Safety controls for AI agents — budgets, approvals, rate limits, and audit logs
Safety controls for AI agents — budgets, approvals, rate limits, audit logs, and DLP.
pip install agentsentinel
from agentsentinel import AgentPolicy, AgentGuard
policy = AgentPolicy(
daily_budget=10.00,
require_approval=["send_email", "delete_*"],
rate_limits={"web_search": "10/min"},
)
guard = AgentGuard(policy)
@guard.protect("web_search")
def search_web(query: str) -> str:
return f"Results for: {query}"
# LangChain
from agentsentinel.integrations.langchain import protect_langchain_agent
executor = protect_langchain_agent(executor, policy=policy)
# CrewAI
from agentsentinel.integrations.crewai import protect_crew
crew = protect_crew(crew, policy=policy)
# LlamaIndex
from agentsentinel.integrations.llamaindex import protect_agent
agent = protect_agent(agent, policy=policy)
# OpenAI Assistants
from agentsentinel.integrations.openai_assistants import protect_function_map
functions = protect_function_map(functions, guard=guard)
# Anthropic Tools
from agentsentinel.integrations.anthropic_tools import protect_tool_handlers
handlers = protect_tool_handlers(handlers, guard=guard)
Cost tracking for OpenAI, Anthropic, Google, Mistral, Cohere, Meta, AWS Bedrock, Azure OpenAI, Groq, Together, Perplexity, DeepSeek, xAI, and local models.
Full docs at docs.agentsentinel.net
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
langchainEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | langchain>=0.1.0; extra == "all" | runtime |
slack-sdkEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | slack-sdk>=3.0.0; extra == "all" | runtime |
tiktokenEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | tiktoken>=0.5.0; extra == "all" | runtime |
blackEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | black>=23.0.0; extra == "dev" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | mypy>=1.0.0; extra == "dev" | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio>=0.21.0; extra == "dev" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pytest>=7.0.0; extra == "dev" | runtime |
ruffEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | ruff>=0.1.0; extra == "dev" | runtime |
langchainEnvironment{
"extras": "",
"marker": "extra == \"langchain\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | langchain>=0.1.0; extra == "langchain" | runtime |
slack-sdkEnvironment{
"extras": "",
"marker": "extra == \"slack\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | slack-sdk>=3.0.0; extra == "slack" | runtime |
tiktokenEnvironment{
"extras": "",
"marker": "extra == \"tiktoken\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | tiktoken>=0.5.0; extra == "tiktoken" | runtime |
bdist_wheel · 112 KB · Python py3
sdist · 106.86 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 23:19 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:b367ab853f0bb8cb2164db64ecd1066cde933ceda00d6fa18a2d152bf824bfce