@balchemyai/agent-sdk 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/README.md +12 -12
- package/dist/agent-loop/agent-loop.d.ts +11 -0
- package/dist/agent-loop/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop/agent-loop.js +57 -5
- package/dist/agent-loop/agent-loop.js.map +1 -1
- package/dist/agent-loop/llm-cost-tracker.d.ts +2 -0
- package/dist/agent-loop/llm-cost-tracker.d.ts.map +1 -1
- package/dist/agent-loop/llm-cost-tracker.js +7 -0
- package/dist/agent-loop/llm-cost-tracker.js.map +1 -1
- package/dist/agent-loop/rule-checker.d.ts +45 -0
- package/dist/agent-loop/rule-checker.d.ts.map +1 -0
- package/dist/agent-loop/rule-checker.js +72 -0
- package/dist/agent-loop/rule-checker.js.map +1 -0
- package/dist/agent-loop/types.d.ts +5 -0
- package/dist/agent-loop/types.d.ts.map +1 -1
- package/dist/agent-loop/types.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/docs/BEHAVIOR_RULES.md +184 -0
- package/docs/DEPLOYMENT.md +195 -0
- package/docs/QUICKSTART.md +123 -0
- package/docs/error-retry-strategy.md +27 -0
- package/docs/examples/custom-strategy.yaml +73 -0
- package/docs/examples/dca-accumulator.yaml +41 -0
- package/docs/examples/memecoin-sniper.yaml +47 -0
- package/docs/examples/swing-trader.yaml +50 -0
- package/docs/partner-integration-checklist.md +32 -0
- package/docs/python-parity-backlog.md +20 -0
- package/docs/release-policy.md +24 -0
- package/package.json +3 -4
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Swing Trader Strategy
|
|
2
|
+
#
|
|
3
|
+
# Holds positions for 2–72 hours. Enters on RSI oversold + MACD crossover.
|
|
4
|
+
# Targets 20% gain, stops at 10% loss. Uses a trailing stop to lock in profits.
|
|
5
|
+
#
|
|
6
|
+
# Risk profile: MEDIUM — requires technical indicator signals, holds through
|
|
7
|
+
# short-term volatility.
|
|
8
|
+
# Recommended LLM: claude-haiku-4-5 or gpt-4o-mini
|
|
9
|
+
|
|
10
|
+
mcp_endpoint: "${MCP_ENDPOINT}"
|
|
11
|
+
api_key: "${BALCHEMY_API_KEY}"
|
|
12
|
+
|
|
13
|
+
llm:
|
|
14
|
+
provider: anthropic
|
|
15
|
+
api_key: "${LLM_API_KEY}"
|
|
16
|
+
model: claude-haiku-4-5
|
|
17
|
+
max_daily_usd: 2 # Swing trader fires infrequently
|
|
18
|
+
timeout_ms: 10000
|
|
19
|
+
|
|
20
|
+
strategy: swing-trader
|
|
21
|
+
|
|
22
|
+
behavior_rules:
|
|
23
|
+
version: "1"
|
|
24
|
+
preset: swing-trader
|
|
25
|
+
|
|
26
|
+
filters:
|
|
27
|
+
min_liquidity_usd: 50000 # Only liquid assets for swing trades
|
|
28
|
+
max_market_cap_usd: 500000000 # Mid-cap and below
|
|
29
|
+
allowed_chains: [solana, base]
|
|
30
|
+
|
|
31
|
+
entry:
|
|
32
|
+
trigger: rsi_signal
|
|
33
|
+
indicators: [rsi, macd]
|
|
34
|
+
rsi_oversold: 30 # Enter when RSI < 30 (oversold)
|
|
35
|
+
max_position_usd: 200 # Larger positions — fewer, higher-conviction trades
|
|
36
|
+
slippage_bps: 100 # Tight slippage — not chasing
|
|
37
|
+
min_confidence: 0.75 # High confidence required
|
|
38
|
+
|
|
39
|
+
exit:
|
|
40
|
+
take_profit_pct: 20 # Exit at +20%
|
|
41
|
+
stop_loss_pct: 10 # Exit at -10%
|
|
42
|
+
trailing_stop_pct: 8 # Trail 8% below peak once in profit
|
|
43
|
+
min_hold_hours: 2 # Never exit in first 2 hours (noise avoidance)
|
|
44
|
+
max_hold_hours: 72 # Force exit after 3 days
|
|
45
|
+
|
|
46
|
+
risk:
|
|
47
|
+
max_single_trade_usd: 200
|
|
48
|
+
max_daily_loss_usd: 300
|
|
49
|
+
max_open_positions: 5
|
|
50
|
+
pause_on_drawdown_pct: 25
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Partner Integration Checklist
|
|
2
|
+
|
|
3
|
+
## Discovery & Metadata
|
|
4
|
+
|
|
5
|
+
- [ ] Publish `/.well-known/erc8004-discovery.json`
|
|
6
|
+
- [ ] Publish `/.well-known/erc8004-onboarding.md`
|
|
7
|
+
- [ ] Publish `/.well-known/erc8004-skills-manifest.json`
|
|
8
|
+
|
|
9
|
+
## Onboarding
|
|
10
|
+
|
|
11
|
+
- [ ] Enable at least one onboarding mode (`siwe` or `walletless`)
|
|
12
|
+
- [ ] Verify `POST /api/public/erc8004/onboarding/siwe`
|
|
13
|
+
- [ ] Verify `POST /api/public/erc8004/onboarding/identity` (if walletless enabled)
|
|
14
|
+
- [ ] If using Balchemy Studio, link `agentId` to `botId` from `My Bots -> MCP & Agents -> Agent Card -> External Agent Mapping`
|
|
15
|
+
- [ ] Validate replay protection (token/jti reuse rejection)
|
|
16
|
+
|
|
17
|
+
## Headers and Claims
|
|
18
|
+
|
|
19
|
+
- [ ] `Authorization: Bearer <mcpApiKey>` on MCP calls
|
|
20
|
+
- [ ] Identity claims include `provider`, `subjectId`, `agentId`, `chainId`, `controllingAddress`
|
|
21
|
+
- [ ] Provider auth header and timeout configured
|
|
22
|
+
|
|
23
|
+
## Rate Limits
|
|
24
|
+
|
|
25
|
+
- [ ] Onboarding route limits configured and monitored
|
|
26
|
+
- [ ] Discovery feed and health endpoint limits configured
|
|
27
|
+
|
|
28
|
+
## Operational
|
|
29
|
+
|
|
30
|
+
- [ ] JWKS endpoint reachable (`/.well-known/jwks.json`)
|
|
31
|
+
- [ ] Seed/failure telemetry visible in admin panel
|
|
32
|
+
- [ ] Kill-switches documented and tested
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Python SDK Minimum Parity Backlog
|
|
2
|
+
|
|
3
|
+
## Must-Have
|
|
4
|
+
|
|
5
|
+
1. `onboard_with_siwe(message, signature, agent_id)`
|
|
6
|
+
2. `onboard_with_identity(provider, identity_token, agent_id, chain_id=8453)`
|
|
7
|
+
3. `connect_mcp(endpoint, api_key)`
|
|
8
|
+
4. `list_tools()` and `call_tool(name, arguments)`
|
|
9
|
+
5. Error classes aligned with TS SDK codes
|
|
10
|
+
|
|
11
|
+
## Should-Have
|
|
12
|
+
|
|
13
|
+
1. Built-in timeout and retry policy helpers
|
|
14
|
+
2. SSE fallback parsing parity
|
|
15
|
+
3. Typed response dataclasses
|
|
16
|
+
|
|
17
|
+
## Nice-to-Have
|
|
18
|
+
|
|
19
|
+
1. Async client (`httpx`) and sync wrapper
|
|
20
|
+
2. CLI helper for onboarding smoke checks
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# SDK Release Policy (SemVer)
|
|
2
|
+
|
|
3
|
+
## Versioning
|
|
4
|
+
|
|
5
|
+
- `MAJOR`: breaking API changes.
|
|
6
|
+
- `MINOR`: backward-compatible feature additions.
|
|
7
|
+
- `PATCH`: bug fixes and internal improvements.
|
|
8
|
+
|
|
9
|
+
## Stability Levels
|
|
10
|
+
|
|
11
|
+
- `0.x`: fast iteration, possible interface churn.
|
|
12
|
+
- `1.x`: stable public API contract.
|
|
13
|
+
|
|
14
|
+
## Publish Gates
|
|
15
|
+
|
|
16
|
+
1. Typecheck passes.
|
|
17
|
+
2. Onboarding smoke examples updated.
|
|
18
|
+
3. Changelog entry added.
|
|
19
|
+
4. Backward compatibility review complete for public exports.
|
|
20
|
+
|
|
21
|
+
## Deprecation Rule
|
|
22
|
+
|
|
23
|
+
- Add deprecation notice in docs before removal.
|
|
24
|
+
- Keep deprecated APIs for at least one minor release when possible.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balchemyai/agent-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Balchemy external AI agent onboarding + MCP SDK — ERC-8004 onboarding, Solana/EVM trading, 100 tools via MCP",
|
|
@@ -38,11 +38,10 @@
|
|
|
38
38
|
"homepage": "https://balchemy.ai",
|
|
39
39
|
"repository": {
|
|
40
40
|
"type": "git",
|
|
41
|
-
"url": "https://github.com/balchemy/balchemy-agent"
|
|
42
|
-
"directory": "packages/sdk"
|
|
41
|
+
"url": "https://github.com/balchemy-ai/balchemy-agent-sdk"
|
|
43
42
|
},
|
|
44
43
|
"bugs": {
|
|
45
|
-
"url": "https://github.com/balchemy/balchemy-agent/issues"
|
|
44
|
+
"url": "https://github.com/balchemy-ai/balchemy-agent-sdk/issues"
|
|
46
45
|
},
|
|
47
46
|
"engines": {
|
|
48
47
|
"node": ">=18.0.0"
|