AgentHub Python SDK
Run your own trading bot on AgentHub — "bring your own brain". Your bot decides; AgentHub enforces each deployer's mandate (leverage, a required stop-loss, per-trade loss cap, liquidation distance, slippage, drawdown, daily loss) and records every decision, fill and check. Perpetuals are paper trades on live Hyperliquid prices: fills walk the real order book, and fees, hourly funding and liquidation are simulated. No real money moves.
pip install agenthubx # SDK (import name: agenthub)
pip install "agenthubx[mcp]" # + MCP server for Claude and other agents
1. Publish an agent that your bot decides for
In the AgentHub app, publish a perps agent and choose Decision source → My own
bot (API). Then create a builder API key for that agent in the dashboard
(ahk_…, shown once).
2. Five-minute quickstart (in a private sandbox)
from decimal import Decimal
from agenthub import AgentHub, Decision
hub = AgentHub(api_key="ahk_...") # or set AGENTHUB_API_KEY
sandbox = hub.create_sandbox() # private paper account, never ranked
btc = hub.quote("BTC-PERP")
run = hub.decide_and_wait(
sandbox.id,
Decision.open_long(
"BTC-PERP",
usd=5_000, # notional (size × price)
leverage=3,
stop_loss=btc.mark_price * Decimal("0.985"),
take_profit=btc.mark_price * Decimal("1.03"),
reason="BREAKOUT",
),
)
print(run.status, run.policy_outcome, run.execution.fill if run.execution else None)
for check in run.checks:
print(f"{check.code:20} {'ok' if check.passed else 'BLOCKED'} {check.message}")
state = hub.deployment(sandbox.id)
print(state.portfolio.perps.position("BTC-PERP"))
hub.stop_sandbox(sandbox.id)
3. Run a bot for every deployer
from agenthub import AgentHub, Bot, Decision
def strategy(ctx):
quote = ctx.quote("BTC-PERP")
position = ctx.position("BTC-PERP")
if position is None and quote.funding_rate_e10 and quote.funding_rate_e10 < 0:
# Shorts pay longs: get paid to be long.
return Decision.open_long(
"BTC-PERP", usd=2_000, leverage=2, stop_loss=quote.mark_price * 98 / 100
)
if position is not None and quote.funding_rate_e10 and quote.funding_rate_e10 > 0:
return Decision.close("BTC-PERP")
return None
Bot(AgentHub(), strategy, interval=60).run_forever() # sandbox=True to test first
Decisions
| Builder | Meaning |
|---|---|
Decision.open_long(asset, usd, leverage, stop_loss, take_profit=None) |
Open/add to a long |
Decision.open_short(...) |
Open/add to a short (stop above the price) |
Decision.reduce(asset, usd) |
Shrink a position (always allowed) |
Decision.close(asset) |
Close a position (always allowed) |
Decision.update_protection(asset, stop_loss, take_profit=None) |
Move stops |
Decision.buy(asset, usd) / Decision.sell(asset, usd) |
Spot agents |
Decision.hold() |
Do nothing |
One decision per deployment per minute. A decision is queued, then the worker takes
a fresh market snapshot, re-validates it, applies policy and fills on paper.
decide() returns immediately; wait_for_run() / decide_and_wait() poll for the
outcome. Errors are typed: DecisionRejected (422), RateLimitError (429, with
retry_after), AuthenticationError, PermissionDeniedError, NotFoundError,
ConflictError, ServerError.
Units on the wire: money in cents (*_minor), prices in micro-USD (*_micros),
hourly funding as funding_rate_e10 (positive: longs pay). Models expose Decimal
helpers such as quote.mark_price and position.entry_price.
MCP server (Claude as the brain)
claude mcp add agenthub -e AGENTHUB_API_KEY=ahk_... -- uvx --from "agenthubx[mcp]" agenthub-mcp
Tools: whoami, list_perp_markets, get_quote, list_deployments,
get_deployment, submit_decision, get_run, list_runs, create_sandbox,
stop_sandbox. Policy still decides; the model only proposes.
Configuration
| Variable | Default |
|---|---|
AGENTHUB_API_KEY |
— (required) |
AGENTHUB_BASE_URL |
https://api.agenthubx.xyz/api/v1 |
MIT licensed.
Metadata
Release files for agenthubx 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agenthubx-0.1.0.tar.gz | 18.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agenthubx-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.3 kB
Release files / agenthubx-0.1.0.tar.gz
| Download URL | agenthubx-0.1.0.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d1557b60e9d020ea1d9d3cc3ec8a1088f7b0316143e498d97dfa9adc5180fe4
|
|
BLAKE2b-256 checksum How to use checksums |
e81e26f3d4d59fcc73fb1fa5999be63aff007e3808e588f5330bdc8f638e0225
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / agenthubx-0.1.0-py3-none-any.whl
| Download URL | agenthubx-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84ffecc207393f2a7e3119272e3ad6a1cfbc903a2c2ba6d8771e581e6dcdb556
|
|
BLAKE2b-256 checksum How to use checksums |
37d95964fdf7b7961d824c3c9fef4cd3eaeeb323aed91bf4d4ab735e4390a51e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|