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.
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 agentrisk-0.1.1.tar.gz.
File metadata
- Download URL: agentrisk-0.1.1.tar.gz
- Upload date:
- Size: 860.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
179c1134274a6f8d3fd47dacb9c763c07c2d91d5692be15da0437fd931b85cd2
|
|
| MD5 |
5815c285e3fa752e720787f542a67185
|
|
| BLAKE2b-256 |
7caacaa70144a6bfcc459789932285e0a3f2aa23013b07bc773a0eadbb1cd818
|
Provenance
The following attestation bundles were made for agentrisk-0.1.1.tar.gz:
Publisher:
publish.yml on trycoin-ai/agentrisk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentrisk-0.1.1.tar.gz -
Subject digest:
179c1134274a6f8d3fd47dacb9c763c07c2d91d5692be15da0437fd931b85cd2 - Sigstore transparency entry: 2082125070
- Sigstore integration time:
-
Permalink:
trycoin-ai/agentrisk@3252a85770847511eb4c9584f8dd5eccbbe95e0a -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/trycoin-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3252a85770847511eb4c9584f8dd5eccbbe95e0a -
Trigger Event:
push
-
Statement type:
File details
Details for the file agentrisk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: agentrisk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 255.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fae960b654586d1a8b28019925a9e94127ae681a9b6a69fdeb1520f83430ee8
|
|
| MD5 |
5c349527a05d227bfb78471b4befd2e7
|
|
| BLAKE2b-256 |
ca8d4ceee5dd803fcf3da95dd1349bcb11159953a3fd995223dd19c11a546541
|
Provenance
The following attestation bundles were made for agentrisk-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on trycoin-ai/agentrisk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentrisk-0.1.1-py3-none-any.whl -
Subject digest:
5fae960b654586d1a8b28019925a9e94127ae681a9b6a69fdeb1520f83430ee8 - Sigstore transparency entry: 2082125074
- Sigstore integration time:
-
Permalink:
trycoin-ai/agentrisk@3252a85770847511eb4c9584f8dd5eccbbe95e0a -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/trycoin-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3252a85770847511eb4c9584f8dd5eccbbe95e0a -
Trigger Event:
push
-
Statement type: