open-agents-ai 0.103.36 → 0.103.37
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/README.md +89 -4
- package/dist/index.js +9 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,7 +72,8 @@ The agent uses tools autonomously in a loop — reading errors, fixing code, and
|
|
|
72
72
|
- **Task templates** — specialized system prompts and tool recommendations for code, document, analysis, plan tasks
|
|
73
73
|
- **Inference capability scoring** — canirun.ai-style hardware assessment at first launch: memory/compute/speed scores, per-model compatibility matrix, recommended model selection
|
|
74
74
|
- **Auto-install everything** — first-run wizard auto-installs Ollama, curl, Python3, python3-venv with platform-aware package managers (apt, dnf, yum, pacman, apk, zypper, brew)
|
|
75
|
-
- **P2P inference network** — `/
|
|
75
|
+
- **P2P inference network** — `/expose` local models or forward any `/endpoint` (Chutes, Groq, OpenRouter, etc.) through the libp2p P2P mesh. Passthrough mode (`/expose passthrough`) relays upstream API requests; `--loadbalance` distributes rate-limited token budgets across peers. `/expose config` provides an arrow-key menu for all settings. Gateway stats show budget remaining from `x-ratelimit-*` headers. Background daemon persists across OA restarts
|
|
76
|
+
- **P2P mesh networking** — `/p2p` with secret-safe variable placeholders (`{{OA_VAR_*}}`), trust tiers (LOCAL/TEE/VERIFIED/PUBLIC), WebSocket peer mesh, and inference routing with automatic secret redaction/injection
|
|
76
77
|
- **Secret vault** — `/secrets` manages API keys and credentials with AES-256-GCM encrypted persistence; secrets are automatically redacted before sending to untrusted inference peers and re-injected on response
|
|
77
78
|
- **Auto-expanding context** — detects RAM/VRAM and creates an optimized model variant on first run
|
|
78
79
|
- **Mid-task steering** — type while the agent works to add context without interrupting
|
|
@@ -277,7 +278,7 @@ On startup and `/model` switch, Open Agents detects your RAM/VRAM and creates an
|
|
|
277
278
|
| `aiwg_workflow` | Execute AIWG commands and workflows |
|
|
278
279
|
| **Nexus P2P & x402 Payments** | |
|
|
279
280
|
| `nexus` | Decentralized agent networking — connect, rooms, DMs, peer discovery, invoke capabilities, metering, trust/blocking, IPFS storage |
|
|
280
|
-
| `nexus:expose` | Expose local
|
|
281
|
+
| `nexus:expose` | Expose local models or forward upstream endpoints as metered inference capabilities with pricing, passthrough, and load balancing |
|
|
281
282
|
| `nexus:wallet_create` | Generate secp256k1/EVM wallet (Base mainnet USDC) with AES-256-GCM encryption + x402-wallet.key |
|
|
282
283
|
| `nexus:spend` | Sign EIP-3009 USDC TransferWithAuthorization — budget-checked, gasless for payer |
|
|
283
284
|
| `nexus:remote_infer` | Route inference to a remote peer's model — auto-discovers peers, budget-checks, invokes, returns result |
|
|
@@ -956,8 +957,12 @@ The TUI features an animated multilingual phrase carousel, live metrics bar with
|
|
|
956
957
|
| `/expose ollama` | Expose local inference via libp2p (default) |
|
|
957
958
|
| `/expose ollama --tunnel` | Expose via cloudflared tunnel |
|
|
958
959
|
| `/expose ollama --full` | Allow full Ollama API access (pull/delete) |
|
|
959
|
-
| `/expose
|
|
960
|
-
| `/expose
|
|
960
|
+
| `/expose passthrough` | Forward configured `/endpoint` through libp2p P2P |
|
|
961
|
+
| `/expose forward --loadbalance` | Passthrough with distributed rate-limit budget |
|
|
962
|
+
| `/expose config` | Interactive expose configuration menu (arrow-key nav) |
|
|
963
|
+
| `/expose stop` | Stop all expose gateways |
|
|
964
|
+
| `/expose stop --libp2p` | Stop libp2p gateway only |
|
|
965
|
+
| `/expose status` | Show expose usage stats + budget |
|
|
961
966
|
| **Metrics & Updates** | |
|
|
962
967
|
| `/cost` | Show token cost breakdown for the current session |
|
|
963
968
|
| `/score` | Show inference capability scorecard (memory, compute, speed, model compatibility) |
|
|
@@ -1526,6 +1531,86 @@ Expose your local Ollama models to the decentralized nexus network, or consume a
|
|
|
1526
1531
|
|
|
1527
1532
|
Transport: DHT + mDNS + NATS relay + circuit relay. Auth key is auto-generated and required for all requests. System metrics (CPU/GPU/memory) are available to consumers via the `system_metrics` capability. Without `--full`, destructive Ollama API endpoints (`/api/pull`, `/api/delete`, `/api/create`) are blocked.
|
|
1528
1533
|
|
|
1534
|
+
#### Passthrough & Forward Mode
|
|
1535
|
+
|
|
1536
|
+
Forward any configured `/endpoint` (Chutes, Groq, OpenRouter, Together, vLLM, etc.) through the libp2p P2P network. Your node becomes a relay — peers connect to you via libp2p and you forward their requests to your upstream API:
|
|
1537
|
+
|
|
1538
|
+
```bash
|
|
1539
|
+
# Set your upstream endpoint first
|
|
1540
|
+
/endpoint https://llm.chutes.ai --auth cpk_your_key_here
|
|
1541
|
+
|
|
1542
|
+
# Expose it through P2P — peers discover and invoke via libp2p
|
|
1543
|
+
/expose passthrough
|
|
1544
|
+
# or equivalently:
|
|
1545
|
+
/expose forward
|
|
1546
|
+
|
|
1547
|
+
# With load balancing: distributes daily token budget across peers
|
|
1548
|
+
/expose passthrough --loadbalance
|
|
1549
|
+
```
|
|
1550
|
+
|
|
1551
|
+
**How it works:**
|
|
1552
|
+
- Your node registers inference capabilities on the P2P mesh using your upstream endpoint's models
|
|
1553
|
+
- Remote peers discover and invoke these capabilities via libp2p streams (DHT/mDNS/NATS)
|
|
1554
|
+
- Requests are forwarded to your upstream API, responses streamed back to the peer
|
|
1555
|
+
- The libp2p daemon persists in the background — it survives OA restarts and remains discoverable even when the TUI is closed
|
|
1556
|
+
- When you reopen OA, it reconnects to the existing daemon and resumes stats tracking
|
|
1557
|
+
|
|
1558
|
+
**Rate limit distribution (`--loadbalance`):**
|
|
1559
|
+
- Captures `x-ratelimit-remaining-tokens` and `x-ratelimit-limit-tokens` headers from upstream API responses
|
|
1560
|
+
- Displays remaining token budget in the gateway stats under "Budget"
|
|
1561
|
+
- Distributes the total daily token budget across connected peers proportionally
|
|
1562
|
+
- Prevents any single peer from exhausting the shared budget
|
|
1563
|
+
|
|
1564
|
+
#### Budget & Rate Limit Monitoring
|
|
1565
|
+
|
|
1566
|
+
When exposing an upstream endpoint that returns rate-limit headers (most cloud providers do), the gateway stats automatically track your remaining budget:
|
|
1567
|
+
|
|
1568
|
+
```
|
|
1569
|
+
Expose Gateway Stats (libp2p passthrough)
|
|
1570
|
+
Status active
|
|
1571
|
+
Transport libp2p (passthrough)
|
|
1572
|
+
Peer ID 12D3KooWSzC75QX...
|
|
1573
|
+
Uptime 2h 15m
|
|
1574
|
+
Total requests 847
|
|
1575
|
+
Tokens in 125.4K
|
|
1576
|
+
Tokens out 892.1K
|
|
1577
|
+
Budget 1.2M/10M (12% left)
|
|
1578
|
+
|
|
1579
|
+
Models
|
|
1580
|
+
qwen3.5-4b 412 reqs in:52.3K out:401.2K
|
|
1581
|
+
qwen3.5-9b 435 reqs in:73.1K out:490.9K
|
|
1582
|
+
|
|
1583
|
+
Active Peers (3)
|
|
1584
|
+
12D3KooWSwaCi1Jg...
|
|
1585
|
+
Session: 1h 45m Last seen: now Requests: 523
|
|
1586
|
+
Tokens: in:82.1K out:612.4K
|
|
1587
|
+
· qwen3.5-4b 312req 401.2Ktok
|
|
1588
|
+
· qwen3.5-9b 211req 293.3Ktok
|
|
1589
|
+
12D3KooWKnCgxx7D...
|
|
1590
|
+
Session: 45m Last seen: 2m ago Requests: 324
|
|
1591
|
+
Tokens: in:43.3K out:279.7K
|
|
1592
|
+
· qwen3.5-9b 224req 197.6Ktok
|
|
1593
|
+
```
|
|
1594
|
+
|
|
1595
|
+
Internal capabilities (`system_metrics`, `__list_capabilities`) are hidden from all displays — both the full stats view and the compact status bar one-liner.
|
|
1596
|
+
|
|
1597
|
+
#### `/expose config` — Interactive Configuration
|
|
1598
|
+
|
|
1599
|
+
Arrow-key navigable menu for all expose settings:
|
|
1600
|
+
|
|
1601
|
+
```bash
|
|
1602
|
+
/expose config
|
|
1603
|
+
```
|
|
1604
|
+
|
|
1605
|
+
Shows options to:
|
|
1606
|
+
- View current stats
|
|
1607
|
+
- Stop all gateways
|
|
1608
|
+
- Start Ollama (libp2p or tunnel)
|
|
1609
|
+
- Start passthrough (with or without load balancing)
|
|
1610
|
+
- Start vLLM
|
|
1611
|
+
|
|
1612
|
+
Uses the same arrow-key navigation pattern as `/model` and `/endpoint` selection.
|
|
1613
|
+
|
|
1529
1614
|
### Endpoint Cascade Failover
|
|
1530
1615
|
|
|
1531
1616
|
When you've used multiple endpoints, the agent automatically builds a failover cascade. If the primary endpoint fails with transient errors (502, connection refused, timeout), it transparently switches to the next endpoint that has the same model — then periodically probes the primary to return when it recovers:
|
package/dist/index.js
CHANGED
|
@@ -26371,10 +26371,15 @@ function renderSlashHelp() {
|
|
|
26371
26371
|
["/nexus", "Show nexus P2P network status (or connect/disconnect/rooms)"],
|
|
26372
26372
|
["/nexus connect", "Connect to the agent mesh network"],
|
|
26373
26373
|
["/nexus wallet", "Show wallet address and x402 payment status"],
|
|
26374
|
-
["/expose <backend>", "
|
|
26375
|
-
["/expose <backend> --
|
|
26376
|
-
["/expose
|
|
26377
|
-
["/expose
|
|
26374
|
+
["/expose <backend>", "Expose local inference via libp2p (default)"],
|
|
26375
|
+
["/expose <backend> --tunnel", "Expose via cloudflared tunnel"],
|
|
26376
|
+
["/expose passthrough", "Forward configured /endpoint through libp2p P2P"],
|
|
26377
|
+
["/expose forward --loadbalance", "Passthrough with distributed rate-limit budget"],
|
|
26378
|
+
["/expose config", "Interactive expose configuration menu"],
|
|
26379
|
+
["/expose status", "Show gateway stats (requests, models, budget)"],
|
|
26380
|
+
["/expose stop", "Stop all expose gateways"],
|
|
26381
|
+
["/expose stop --tunnel", "Stop tunnel gateway only"],
|
|
26382
|
+
["/expose stop --libp2p", "Stop libp2p gateway only"],
|
|
26378
26383
|
["/p2p start", "Join the P2P agent mesh network"],
|
|
26379
26384
|
["/p2p status", "Show mesh peers and rooms"],
|
|
26380
26385
|
["/p2p stop", "Leave the mesh network"],
|
package/package.json
CHANGED