Crawler Summary

Portfolio_Rebalancing_Agent answer-first brief

Agentic portfolio rebalancing: CVXPY convex optimization, CrewAI multi-agent orchestration, XGBoost/SHAP/LIME explainability, and a three-regime backtest against calendar rebalancing. Autonomous Portfolio Rebalancing Agent A multi-agent portfolio rebalancing system combining CVXPY convex optimization with CrewAI LLM orchestration and XGBoost/SHAP/LIME explainability reporting. The optimizer solves a quadratic program minimizing tracking error (w − w\_target)ᵀ Σ (w − w\_target) subject to simplex, long-only, and L1 turnover constraints, using OSQP with ECOS fallback. Three sequential CrewAI agents Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.

Freshness

Last checked 10/9/2026

Best For

Portfolio_Rebalancing_Agent is best for crewai, multi-agent workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB REPOS, runtime-metrics, public facts pack

Claim this agent
Agent DossierGITHUB REPOSSafety: 66/100

Portfolio_Rebalancing_Agent

Agentic portfolio rebalancing: CVXPY convex optimization, CrewAI multi-agent orchestration, XGBoost/SHAP/LIME explainability, and a three-regime backtest against calendar rebalancing. Autonomous Portfolio Rebalancing Agent A multi-agent portfolio rebalancing system combining CVXPY convex optimization with CrewAI LLM orchestration and XGBoost/SHAP/LIME explainability reporting. The optimizer solves a quadratic program minimizing tracking error (w − w\_target)ᵀ Σ (w − w\_target) subject to simplex, long-only, and L1 turnover constraints, using OSQP with ECOS fallback. Three sequential CrewAI agents

OpenClawself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Oct 9, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.

Trust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Oct 9, 2026

Vendor

Satvikj01

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.

Setup snapshot

  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Satvikj01

profilemedium
Observed Oct 9, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Oct 9, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB REPOS

Extracted files

0

Examples

6

Snippets

0

Languages

python

Executable Examples

mermaid

graph TD
    MD[Market Data] --> DC[Drift Calculator<br/>vectorised pandas]
    CP[Client Portfolios<br/>50k × 5 risk categories] --> DC
    DC --> TE[Trigger Evaluator<br/>threshold / calendar / event]
    TE --> KS{Kill-Switch<br/>VIX > 40}
    KS -->|Halt| HE[Human Advisor<br/>Escalation]
    KS -->|Safe| CREW

    subgraph CREW [CrewAI Sequential Pipeline]
        A1[Portfolio Analyst] --> A2[Quant Optimizer]
        A2 --> A3[Compliance Officer]
    end

    OPT[CVXPY Engine<br/>QP: min tracking error<br/>s.t. turnover · long-only] <--> A2
    TAX[HIFO Tax-Lot Manager<br/>wash-sale blocking] <--> A2
    XAI[XGBoost Surrogate<br/>SHAP + LIME] <--> A3

    A3 --> OUT[Trade List +<br/>Audit Report]

text

Portfolio_Rebalancing_Agent/
├── src/
│   ├── engine/                        # Drift calculation and trigger evaluation
│   │   ├── drift_calculator.py        # Vectorised pandas RMSD/SAD drift scoring
│   │   ├── triggers.py                # Threshold, calendar, and event triggers
│   │   ├── threshold_manager.py       # Risk-category drift bands from config
│   │   └── drift_monitor.py           # Batch drift monitoring service
│   ├── optimiser/                     # Constrained trade generation
│   │   ├── portfolio_optimiser.py     # CVXPY QP solver (OSQP / ECOS fallback)
│   │   ├── constraint_manager.py      # Turnover and liquidity limits from thresholds.yaml
│   │   ├── tax_lot_manager.py         # HIFO tax-lot accounting
│   │   ├── tax_optimiser.py           # Wash-sale blocking and tax impact calculation
│   │   ├── tax_harvesting_scanner.py  # Proactive tax-loss harvesting identification
│   │   ├── cost_estimator.py          # Brokerage + STT cost model
│   │   ├── liquidity_scorer.py        # ADV-based liquidity constraints
│   │   └── trade_list_generator.py    # Weight-to-share conversion
│   ├── orchestration/                 # CrewAI multi-agent pipeline
│   │   ├── crew_definition.py         # 3 sequential agents: Analyst, Optimizer, Compliance
│   │   ├── agent_tools.py             # @tool wrappers exposing engines to LLM agents
│   │   ├── orchestrator.py            # Top-level orchestration logic
│   │   ├── pipeline_runner.py         # End-to-end pipeline execution
│   │   └── workflow_state.py          # Pipeline state management
│   ├── explainability/                # Audit and compliance reporting
│   │   ├── surrogate_model.py         # XGBoost classifier (rebalance / no-rebalance)
│   │   ├── shap_lime_explainer.py     # SHAP attributions + LIME counterfactuals
│   │   ├── generators.py              # Markdown report generation via LLM
│   │   ├── templates.py               # Report templates by audience level
│   │   └── qa_checker.py 

bash

git clone https://github.com/SatvikJ01/Portfolio_Rebalancing_Agent.git
cd Portfolio_Rebalancing_Agent
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Add your OPENAI_API_KEY to .env (required for CrewAI agent execution)

bash

python benchmark_drift.py

bash

python run_real_backtest.py

bash

pytest tests/ -v

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB REPOS

Docs source

GITHUB REPOS

Editorial quality

ready

Agentic portfolio rebalancing: CVXPY convex optimization, CrewAI multi-agent orchestration, XGBoost/SHAP/LIME explainability, and a three-regime backtest against calendar rebalancing. Autonomous Portfolio Rebalancing Agent A multi-agent portfolio rebalancing system combining CVXPY convex optimization with CrewAI LLM orchestration and XGBoost/SHAP/LIME explainability reporting. The optimizer solves a quadratic program minimizing tracking error (w − w\_target)ᵀ Σ (w − w\_target) subject to simplex, long-only, and L1 turnover constraints, using OSQP with ECOS fallback. Three sequential CrewAI agents

Full README

Autonomous Portfolio Rebalancing Agent

A multi-agent portfolio rebalancing system combining CVXPY convex optimization with CrewAI LLM orchestration and XGBoost/SHAP/LIME explainability reporting.

The optimizer solves a quadratic program minimizing tracking error (w − w_target)ᵀ Σ (w − w_target) subject to simplex, long-only, and L1 turnover constraints, using OSQP with ECOS fallback. Three sequential CrewAI agents handle drift analysis, constrained trade generation, and compliance reporting. A 5-tier intervention ladder with a VIX > 40 kill-switch escalates high-risk conditions to human advisors. An XGBoost surrogate model generates SHAP feature attributions and LIME counterfactuals for audit reports. HIFO tax-lot accounting and wash-sale blocking provide tax-aware trade execution.

Python 3.12 CVXPY CrewAI XGBoost SHAP/LIME


Results

All numbers below are reproducible by running the scripts in this repository.

Drift scoring throughput — benchmark_drift.py, seeded (rng(42)) and deterministic:

| Portfolios | Time (median of 3 runs) | Throughput | |---|---|---| | 50,000 | ~38–41 ms across multiple runs | ~1.2–1.3M portfolios/sec |

Exact timing is hardware-dependent. Run benchmark_drift.py to measure on a given machine.

Real-data backtest — run_real_backtest.py, SPY/AGG/GLD/BIL via yfinance, 15 bps transaction costs, Balanced-profile targets (50/30/12/8):

| Window | Events (Calendar → Optimizer) | Event Reduction | Turnover Reduction | Sharpe (Cal / Opt) | |---|---|---|---|---| | 2015–2019 | 19 → 5 | 73.7% | 39.0% | 1.14 / 1.13 | | 2018–2022 | 19 → 9 | 52.6% | 38.5% | 0.52 / 0.50 | | 2021–2024 | 15 → 6 | 60.0% | 13.0% | 0.79 / 0.81 |

Rebalancing events reduced 53–74% across all three windows at comparable risk-adjusted returns. Turnover reduction of up to 39% (39.0% and 38.5% in two of three windows; 13.0% in the third). The 2021–2024 window shows weaker turnover improvement because the 2022 drawdown followed by a narrow equity rally produced fewer opportunities for the drift-triggered optimizer to improve on calendar rebalancing.


Pipeline

graph TD
    MD[Market Data] --> DC[Drift Calculator<br/>vectorised pandas]
    CP[Client Portfolios<br/>50k × 5 risk categories] --> DC
    DC --> TE[Trigger Evaluator<br/>threshold / calendar / event]
    TE --> KS{Kill-Switch<br/>VIX > 40}
    KS -->|Halt| HE[Human Advisor<br/>Escalation]
    KS -->|Safe| CREW

    subgraph CREW [CrewAI Sequential Pipeline]
        A1[Portfolio Analyst] --> A2[Quant Optimizer]
        A2 --> A3[Compliance Officer]
    end

    OPT[CVXPY Engine<br/>QP: min tracking error<br/>s.t. turnover · long-only] <--> A2
    TAX[HIFO Tax-Lot Manager<br/>wash-sale blocking] <--> A2
    XAI[XGBoost Surrogate<br/>SHAP + LIME] <--> A3

    A3 --> OUT[Trade List +<br/>Audit Report]

Repository Structure

Portfolio_Rebalancing_Agent/
├── src/
│   ├── engine/                        # Drift calculation and trigger evaluation
│   │   ├── drift_calculator.py        # Vectorised pandas RMSD/SAD drift scoring
│   │   ├── triggers.py                # Threshold, calendar, and event triggers
│   │   ├── threshold_manager.py       # Risk-category drift bands from config
│   │   └── drift_monitor.py           # Batch drift monitoring service
│   ├── optimiser/                     # Constrained trade generation
│   │   ├── portfolio_optimiser.py     # CVXPY QP solver (OSQP / ECOS fallback)
│   │   ├── constraint_manager.py      # Turnover and liquidity limits from thresholds.yaml
│   │   ├── tax_lot_manager.py         # HIFO tax-lot accounting
│   │   ├── tax_optimiser.py           # Wash-sale blocking and tax impact calculation
│   │   ├── tax_harvesting_scanner.py  # Proactive tax-loss harvesting identification
│   │   ├── cost_estimator.py          # Brokerage + STT cost model
│   │   ├── liquidity_scorer.py        # ADV-based liquidity constraints
│   │   └── trade_list_generator.py    # Weight-to-share conversion
│   ├── orchestration/                 # CrewAI multi-agent pipeline
│   │   ├── crew_definition.py         # 3 sequential agents: Analyst, Optimizer, Compliance
│   │   ├── agent_tools.py             # @tool wrappers exposing engines to LLM agents
│   │   ├── orchestrator.py            # Top-level orchestration logic
│   │   ├── pipeline_runner.py         # End-to-end pipeline execution
│   │   └── workflow_state.py          # Pipeline state management
│   ├── explainability/                # Audit and compliance reporting
│   │   ├── surrogate_model.py         # XGBoost classifier (rebalance / no-rebalance)
│   │   ├── shap_lime_explainer.py     # SHAP attributions + LIME counterfactuals
│   │   ├── generators.py              # Markdown report generation via LLM
│   │   ├── templates.py               # Report templates by audience level
│   │   └── qa_checker.py              # Numerical consistency validation
│   ├── human_in_loop/                 # Intervention and kill-switch logic
│   │   ├── intervention_classifier.py # 5-tier ladder + VIX kill-switch
│   │   └── override_capture.py        # Advisor override logging with audit trail
│   ├── compliance/                    # Regulatory audit modules
│   │   ├── compliance_auditor.py      # Automated quarterly audit sampling
│   │   └── regulatory_reporter.py     # SEBI-compliant report generation
│   ├── dashboard/                     # Streamlit UI (5 views)
│   │   ├── app.py                     # Portfolio Overview, Activity, Analytics, Explainability, Health
│   │   └── mock_data_generator.py     # Demonstration data for the dashboard
│   ├── backtesting/                   # Strategy comparison framework
│   │   ├── backtest_engine.py         # Historical replay engine
│   │   ├── strategy_comparator.py     # Multi-strategy comparison runner
│   │   └── performance_analyser.py    # Sharpe, drawdown, turnover metrics
│   ├── simulation/                    # Market scenario simulation
│   │   └── scenario_runner.py         # Extreme-scenario stress tests
│   └── data/                          # Data models and generators
│       ├── models.py                  # Pydantic: Portfolio, TaxLot, ClientProfile, etc.
│       └── portfolio_generator.py     # Synthetic portfolio generation (50k portfolios)
├── config/
│   ├── thresholds.yaml                # Turnover, cost, tax, and liquidity parameters
│   ├── risk_categories.yaml           # 5 risk profiles with target allocations and drift bands
│   └── default.yaml                   # Logging and simulation settings
├── tests/                             # Pytest suite covering all modules
├── reports/
│   └── backtests/                     # Backtest output reports
├── benchmark_drift.py                 # Reproducible drift throughput benchmark
├── run_real_backtest.py               # Three-window real-data backtest (yfinance)
├── generate_report.py                 # Report generation entry point
├── requirements.txt
├── .env.example                       # Placeholder keys only
└── .github/workflows/ci.yml           # CI workflow (pytest + scenario runner)

Quickstart

git clone https://github.com/SatvikJ01/Portfolio_Rebalancing_Agent.git
cd Portfolio_Rebalancing_Agent
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Add your OPENAI_API_KEY to .env (required for CrewAI agent execution)

Reproduce the drift benchmark

python benchmark_drift.py

Scores 50,000 portfolios across 5 risk categories. Output reports median time and throughput. The RNG seed is fixed at 42 for deterministic portfolio generation.

Reproduce the real-data backtest

python run_real_backtest.py

Downloads SPY/AGG/GLD/BIL daily close prices from yfinance and runs buy-and-hold, calendar (quarterly), and CVXPY-optimizer strategies across three windows: 2015–2019, 2018–2022, and 2021–2024. Requires an internet connection for the initial data download.

Run the test suite

pytest tests/ -v

Launch the Streamlit dashboard

streamlit run src/dashboard/app.py

The dashboard displays 5 views: Portfolio Overview (drift heatmap), Rebalancing Activity, Performance Analytics, Explainability Centre, and System Health. It uses mock data generators for demonstration.


Technical Detail

<details> <summary>Optimization Formulation (CVXPY)</summary>

The optimizer (src/optimiser/portfolio_optimiser.py) solves a quadratic program using CVXPY:

Objective — minimize tracking error:

min  (w - w_target)ᵀ Σ (w - w_target)

where w is the decision variable (new portfolio weights), w_target is the strategic target allocation, and Σ is the asset return covariance matrix.

Constraints:

| Constraint | Formulation | Source | |---|---|---| | Fully invested (simplex) | sum(w) = 1.0 | Hard constraint | | Long-only | w >= 0 | Hard constraint | | Turnover limit | 0.5 * \|\|w - w_current\|\|₁ <= 0.20 | config/thresholds.yaml → constraints.max_turnover | | Liquidity (optional) | \|w_i - w_current_i\| <= max_weight_change_i | ADV-based bounds from ConstraintManager |

The 20% turnover constraint caps one-way portfolio turnover: at most 20% of portfolio value can change sides in a single rebalancing event.

Solver strategy: OSQP (first-order QP solver, fast for moderate-size problems) with automatic fallback to ECOS if OSQP fails to converge. Post-solve, weights are clipped to non-negative and renormalized.

Design rationale (ADR 2): CVXPY provides mathematically guaranteed optimal solutions for convex problems. Heuristic or gradient-descent approaches cannot guarantee constraint satisfaction, which is critical for a system that must enforce regulatory turnover limits.

</details> <details> <summary>Agent Pipeline (CrewAI)</summary>

The system uses three sequential CrewAI agents (src/orchestration/crew_definition.py), each with a narrow scope and dedicated tools:

| Agent | Role | Tool | Scope | |---|---|---|---| | Portfolio Analyst | Evaluate drift and determine if rebalancing is needed | calculate_drift_tool | Read-only: outputs "Proceed" or "Stop" | | Quantitative Optimizer | Generate constraint-satisfying trade list | generate_optimized_trades_tool | Calls CVXPY engine; cannot execute trades | | Compliance Officer | Produce audit-ready explanation report | generate_explanations_tool | Calls XGBoost/SHAP/LIME engine |

Why three agents instead of one: Each agent receives a strict prompt scoped to a single task. If the Optimizer agent produces an infeasible trade suggestion, the CVXPY tool returns an error rather than executing a bad trade — the agent must retry with corrected inputs. This architecture converts LLM hallucination from a silent failure mode into an explicit, recoverable error.

Sequential processing (Process.sequential): The output of each agent becomes input to the next. There is no parallel execution or dynamic delegation — the pipeline is deterministic in structure, even though individual agent responses are non-deterministic.

Design rationale (ADR 1): CrewAI was chosen over raw LangChain prompt chaining because it natively supports role-based agent definitions and sequential task handoff with less boilerplate. The LLM model is configurable via the llm_model parameter in RebalancingCrew (default: gpt-4o-mini).

</details> <details> <summary>Explainability Layer (XGBoost + SHAP/LIME)</summary>

The explainability pipeline (src/explainability/) provides regulator-grade decision audit reports:

XGBoost surrogate model (surrogate_model.py): A gradient-boosted classifier that predicts rebalance/no-rebalance decisions from five features:

  • drift_magnitude_pct — current portfolio drift
  • vix_level — market volatility index
  • days_since_last_rebalance — time since last rebalancing event
  • client_risk_score — client risk category (1–5)
  • sector_concentration_pct — maximum sector weight

The surrogate is currently trained on synthetic data generated via a logistic function that approximates the agent's triggering logic. This enables SHAP/LIME analysis without requiring a large corpus of actual agent decisions.

SHAP (shap_lime_explainer.py): Tree SHAP values computed via shap.TreeExplainer provide global feature importance — the exact additive contribution of each feature to a given decision. Waterfall plots are saved to reports/plots/.

LIME (shap_lime_explainer.py): Local Interpretable Model-agnostic Explanations generate counterfactual statements for individual decisions (e.g., "If drift magnitude had been below 3.2% instead of 4.7%, the agent would not have triggered a rebalance").

Design rationale (ADR 3): The SHAP/LIME hybrid provides both structural global importance (required for aggregate audit) and local counterfactuals (required for individual decision justification). This combination addresses both SEC/SEBI regulatory audit requirements: "why does this system behave this way in general" and "why did it make this specific trade."

</details> <details> <summary>Backtest Methodology</summary>

The real-data backtest (run_real_backtest.py) compares three strategies on historical ETF prices:

Strategies:

| Strategy | Rebalance trigger | Trade target | |---|---|---| | Buy-and-hold | Never | — | | Calendar | Every 63 trading days (~quarterly) | Reset to target weights | | CVXPY optimizer | When max single-asset drift exceeds 3% band | CVXPY-optimized weights using 60-day trailing covariance |

Parameters:

| Parameter | Value | Source | |---|---|---| | Tickers | SPY, AGG, GLD, BIL | Mapped to Equity, Fixed Income, Alternatives, Cash | | Target allocation | 50/30/12/8 | Balanced profile from config/risk_categories.yaml | | Drift band | 3% | Balanced profile drift band | | Transaction cost | 15 bps flat | config/thresholds.yaml: brokerage (5 bps) + STT (10 bps) | | Covariance lookback | 60 trading days | Annualized (×252) sample covariance | | Calendar interval | 63 trading days | ~1 calendar quarter |

Three-window design: The backtest runs across three overlapping windows — 2015–2019 (steady bull market), 2018–2022 (includes COVID crash and recovery), and 2021–2024 (rate-hiking cycle and 2022 drawdown). The multi-window design tests whether findings hold across different market regimes rather than reflecting a single favorable period.

Cost model limitation: The 15 bps flat cost does not include market impact. The config/thresholds.yaml file defines a market_impact_coefficient used by src/optimiser/cost_estimator.py, but the backtest script uses the flat cost for simplicity and reproducibility.

</details> <details> <summary>Tax-Lot Accounting</summary>

The tax module (src/optimiser/tax_lot_manager.py, src/optimiser/tax_optimiser.py) provides HIFO lot selection and wash-sale blocking:

HIFO (Highest In, First Out): When selling shares, lots are sorted by cost basis in descending order. Selling the highest-cost lots first minimizes realized capital gains (or maximizes realized losses for tax-loss harvesting).

Wash-sale blocking: The TaxOptimiser tracks realized losses per (portfolio, ticker, date). If a loss was realized within the past 30 days (configurable via config/thresholds.yaml → tax_and_liquidity.wash_sale_window_days), a repurchase of the same security is blocked to avoid IRS wash-sale disallowance.

Tax impact calculation: Distinguishes short-term gains (held < 365 days, taxed at 30%) from long-term gains (held >= 365 days, taxed at 15%). These rates and thresholds are configurable in config/thresholds.yaml.

Integration: The TaxLotManager is available as a tool to the Quant Optimizer agent and can be invoked during trade generation to select tax-optimal lots for each sell order.

</details> <details> <summary>Intervention and Kill-Switch Logic</summary>

The human-in-the-loop module (src/human_in_loop/intervention_classifier.py) implements a 5-tier intervention ladder:

| Level | Meaning | |---|---| | INFORMATIONAL | No action required; logged for audit | | ADVISORY | Advisor is notified but trade proceeds | | APPROVAL_REQUIRED | Trade is held pending advisor approval | | ESCALATION | Briefing document generated for human review | | HALT | All autonomous trading suspended |

Kill-switch: If VIX exceeds 40.0 (configurable via max_vix parameter, also set in .env.example as VIX_KILL_SWITCH_THRESHOLD), the check_kill_switch method returns True, halting all autonomous rebalancing. A secondary trigger halts on system error rate exceeding 1%.

Trade-level classification: The classify_decision method assigns an intervention tier based on proposed turnover as a fraction of portfolio value. Turnover above max_turnover_pct (default 10%) requires approval; turnover above half that threshold triggers an advisory.

</details>

Limitations

  • Paper backtest only. This system has not been live-traded. The backtest uses historical close prices without slippage, partial fills, or intraday price variation.
  • Flat cost model in backtest. Transaction costs are modeled as 15 bps per trade (brokerage + STT). No market impact model (square-root or otherwise) is applied in the backtest, though a market_impact_coefficient is defined in config/thresholds.yaml and used by src/optimiser/cost_estimator.py.
  • Surrogate model trained on synthetic data. The XGBoost surrogate generates its own training data via a logistic function that approximates the agent's triggering logic. The architecture supports training on actual agent decisions, but this has not been implemented with a production-scale decision corpus.
  • Mock data in agent tools. The CrewAI agent tools (src/orchestration/agent_tools.py) use a hardcoded PORTFOLIO_DB dictionary for demonstration. Connecting to a live portfolio database requires replacing this data source.
  • Dashboard uses mock data. The Streamlit dashboard displays generated demonstration data, not live output from the optimization pipeline.
  • yfinance data variability. Adjusted close prices from yfinance may differ slightly between downloads due to corporate action adjustments and data revisions. Minor numerical differences in backtest results are expected across runs on different dates.
  • Single-broker cost model. The cost estimator assumes Indian market fee structures (brokerage + STT). Other jurisdictions would require different cost parameters.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB REPOS

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_REPOS",
      "generatedAt": "2026-10-09T16:15:08.244Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "crewai",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "multi-agent",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Satvikj01",
    "href": "https://github.com/SatvikJ01/Portfolio_Rebalancing_Agent",
    "sourceUrl": "https://github.com/SatvikJ01/Portfolio_Rebalancing_Agent",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-10-09T12:48:05.455Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-10-09T12:48:05.455Z",
    "isPublic": true
  },
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-satvikj01-portfolio-rebalancing-agent/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to Portfolio_Rebalancing_Agent and adjacent AI workflows.