AgentRisk
Risk guardrails for AI trading agents. Your agent proposes; your policy decides.
AgentRisk sits in front of trade execution: it analyzes portfolio risk, checks each proposed trade against a policy you write, and manages that policy. The core is deterministic (same inputs, same verdict), transparent (policies are plain YAML you can read and edit), and fail-closed (invalid input or a missing policy blocks, never a silent pass).
AgentRisk never recommends trades and never executes them. A
PASSmeans a trade did not break the rules you wrote, not that it is safe or profitable. See DISCLAIMER.md.
Quickstart
The fastest path for a Claude agent is the Claude Code plugin. It installs the Agent
Skill and registers the MCP server in one step
(via uvx, so there is nothing else to install):
/plugin marketplace add trycoin-ai/agentrisk
/plugin install agentrisk@agentrisk
For any other MCP client, register the server yourself:
{
"mcpServers": {
"agentrisk": {
"command": "uvx",
"args": ["--from", "agentrisk[mcp]", "agentrisk-mcp"]
}
}
}
Then ask questions in plain English and the agent translates them into three tool calls:
| Tool | Question it answers | Returns |
|---|---|---|
analyze_portfolio_risk |
What risk am I holding? | Concentration, exposure, and policy-compliance report |
check_trade_risk |
Should this trade go through? | PASS / WARN / BLOCK with a one-line reason |
generate_risk_policy |
What are my rules? | A human-readable YAML policy (create, update, show) |
The plugin path needs uv for uvx. See
examples/claude_desktop.md for a two-minute Claude
Desktop setup.
Agent Skill
For Claude agents, AgentRisk ships an optional Agent Skill that encodes the
discipline the guardrail depends on: before any order reaches a broker, classify the
trade, call check_trade_risk, respect the verdict, and record the result, in that
order. The plugin above installs it with the server. To install just the skill:
- Claude Code or Claude Desktop: copy
skills/agentrisk/into~/.claude/skills/. - claude.ai: upload
skills/agentrisk/SKILL.mdas a skill.
The enforcement contract
AgentRisk returns advice. It cannot physically stop an order, so your integration must gate execution on the verdict:
result = check_trade_risk(portfolio, trade)
if not result.proceed:
refuse(result.summary) # BLOCK: never call the broker
elif result.acknowledgements_required:
confirm_with_user(result) # WARN: surface warnings first
else:
execute(trade) # PASS
If you call the broker regardless of the verdict, you have a logger, not a guardrail. See the integration guide.
Using the library directly
The three tools are also a pure Python library, with no network calls and no LLM in the core:
pip install agentrisk
Every parameter, return field, and error case is in the tool reference.
What it checks
- Concentration caps on single names, sectors, themes, and asset classes, evaluated on the simulated post-trade portfolio.
- Asset-class rules (allow, warn, or block) for crypto, options, and margin.
- Order sanity: max order size, minimum cash floor, insufficient-funds detection.
- Restricted symbols and data quality (stale snapshots warn, invalid ones block).
The policy reference covers every field and the safety behaviors: fail closed, exits are never trapped, only breach-worsening trades block, and the one-time bypass.
Documentation
| Doc | Contents |
|---|---|
| Concepts | The mental model and the agent/AgentRisk division of labor |
| Architecture | The module layout and how a call flows through the core |
| Policy reference | Every policy field and the check behavior it drives |
| Tool reference | Parameters, outputs, and error cases for all three tools |
| CLI reference | The agentrisk command: policy, check, analyze |
| Integration guide | The enforcement contract, broker MCP pairing, audit log |
| Threat model | What AgentRisk can and cannot protect against |
| Classification data | The open taxonomy and how to contribute corrections |
Roadmap
Next is deterministic stress scenarios, ETF look-through, and behavioral limits (v0.2), then options analytics, broker snapshot adapters, short positions, and multi-currency (v0.3). Trade recommendations, signals, execution, and telemetry are permanently out of scope. See the milestones.
Contributing
Classification-data corrections and new deterministic checks are especially welcome. See CONTRIBUTING.md, and keep the core pure: no network, no LLM calls, no hidden state.
License
MIT. See LICENSE.
Metadata
Release files for agentrisk 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentrisk-0.1.3.tar.gz | 872.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentrisk-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / agentrisk-0.1.3.tar.gz
| Download URL | agentrisk-0.1.3.tar.gz |
|---|---|
| Size | 872.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71962a38fed742c467f898df9893ba33ee0646cb3ca3a7e8bcafbe34bad6e8ee
|
|
BLAKE2b-256 checksum How to use checksums |
c70cf8d77a7a5b4f90f9d5e0cc77d54c0e163fe946b7e281e7ed775f140a35e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / agentrisk-0.1.3-py3-none-any.whl
| Download URL | agentrisk-0.1.3-py3-none-any.whl |
|---|---|
| Size | 261.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
38c3721f7fe70362896c11c34780e9a8001cf2f5789d694ad589421f9b2ca2f6
|
|
BLAKE2b-256 checksum How to use checksums |
b52b979605dbca8b18863191aa67a4064259aadd672e90c5f2fca2131fac1e9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log