Observed since 20 Oct, 18:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
actiongate-langchain
Gate LangChain tool execution through ActionGate primitives before execution.
Gate LangChain tool execution through ActionGate primitives.
pip install actiongate-langchain
from actiongate import Engine, Gate, Policy
from actiongate_langchain import gated_tool
ag = Engine()
@gated_tool(
actiongate=ag,
gate=Gate("tools", "search", "agent:1"),
policy=Policy(max_calls=10, window=60),
)
def search_web(query: str) -> str:
"""Search the web for a query."""
return api.search(query)
# Use with any LangChain agent
agent = create_react_agent(llm, [search_web], prompt)
The tool checks all gates before execution. If any gate blocks, it raises ToolException with the block reason — LangChain agents handle this automatically.
pip install actiongate-langchain[all]
from actiongate import Engine as AG, Gate, Policy
from budgetgate import Engine as BG, Ledger, Budget
from rulegate import Engine as RG, Rule, Ruleset, Context
from actiongate_langchain import gated_tool
from decimal import Decimal
def no_pii(ctx: Context) -> bool:
return "ssn" not in str(ctx.kwargs).lower()
ag, bg, rg = AG(), BG(), RG()
@gated_tool(
actiongate=ag,
gate=Gate("tools", "search", "agent:1"),
policy=Policy(max_calls=10, window=60),
budgetgate=bg,
ledger=Ledger("openai", "search", "agent:1"),
budget=Budget(max_spend=Decimal("5.00"), window=3600),
cost=Decimal("0.01"),
rulegate=rg,
rule=Rule("tools", "search"),
ruleset=Ruleset(predicates=(no_pii,)),
)
def search_web(query: str) -> str:
"""Search the web for a query."""
return api.search(query)
Gates evaluate in order: ActionGate → BudgetGate → RuleGate → execute → AuditGate.
For more control, use GatedTool.from_function() directly:
from actiongate_langchain import GatedTool
tool = GatedTool.from_function(
func=search_fn,
name="search_web",
description="Search the web",
actiongate=ag,
gate=Gate("tools", "search", "agent:1"),
policy=Policy(max_calls=10, window=60),
)
Apache-2.0. ActionGate and BudgetGate are Apache-2.0. RuleGate and AuditGate are BSL-1.1.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
actiongateEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | actiongate>=0.2.2 | runtime |
langchain-coreEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | langchain-core>=0.2.0 | runtime |
auditgateEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | auditgate>=0.2.0; extra == "all" | runtime |
budgetgateEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | budgetgate>=0.3.0; extra == "all" | runtime |
rulegateEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | rulegate>=0.2.2; extra == "all" | runtime |
auditgateEnvironment{
"extras": "",
"marker": "extra == \"audit\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | auditgate>=0.2.0; extra == "audit" | runtime |
budgetgateEnvironment{
"extras": "",
"marker": "extra == \"budget\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | budgetgate>=0.3.0; extra == "budget" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest>=8.0; extra == "dev" | runtime |
rulegateEnvironment{
"extras": "",
"marker": "extra == \"rules\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | rulegate>=0.2.2; extra == "rules" | runtime |
bdist_wheel · 8.92 KB · Python py3
sdist · 9.53 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 18:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:65299667fa7f9025fdd1cc068cb4ceafd2b7dd4058dcb30bcf27345c90cbc43a