Agent Skillpytse-client
SkillToolsPlaygroundUniverseDocsInstallConsoleEvals

Description-triggered routing

Skill evals

The description field is a router, not marketing copy. These cases check that Iranian-market prompts activate pytse-client and that NYSE/crypto prompts do not. 10 must activate · 2 must ignore.

  1. 01 · fa · must activate

    download_history

    قیمت‌های روزانه فولاد را از ابتدای سال ۱۴۰۲ تا امروز به‌صورت تعدیل‌شده دانلود کن و در یک فایل CSV ذخیره کن.

    Routes to download_history with adjust=True and include_jdate=True; the agent maps the Jalali year start (۱۴۰۲) itself, since the call takes no date range.

  2. 02 · en · must activate

    ticker_snapshot

    Pull the current fundamentals for Bank Mellat (وبملت) — EPS, P/E, free float, and the five largest shareholders — and summarize them in one table.

    Routes to ticker_snapshot for the fundamentals, then ticker_shareholders for the holders; a correct answer separates the reported float from the float implied by 100 − Σ(major-holder percentages).

  3. 03 · fa · must activate

    financial_index_snapshot

    شاخص کل بورس تهران الان روی چند است؟ از ابتدای سال تاکنون چند درصد تغییر کرده؟

    An index, not a stock — must route to FinancialIndex, never Ticker. The year-to-date change needs index history, not today's snapshot. The library's index map spells the name with the Arabic kaf (كل), so the agent must resolve the Persian spelling (کل) it was given.

  4. 04 · fa · must activate

    download_client_types

    امروز در خودرو حقیقی‌ها خریدار بودند یا فروشنده؟ حجم خرید و فروش حقیقی‌ها را با هم مقایسه کن.

    Routes to download_client_types; a correct answer compares individual (حقیقی) buy volume against sell volume for the latest session and reads the ownership change, not just the count.

  5. 05 · en · must activate

    get_trade_details

    Aggregate اهرم into 15-minute OHLCV bars covering March 19 to April 22, 2023.

    Routes to get_trade_details with timeframe='15m' and aggregate=True; the dates are Gregorian, not Jalali.

  6. 06 · en · must activate

    get_orderbook

    Fetch the five-level order book for خساپا on every trading day of March 2023; use the diff format to keep the payload small.

    Routes to get_orderbook with diff_orderbook=True over the March 2023 range; the agent should pass ignore_date_validation because the month boundaries are not session boundaries.

  7. 07 · fa · must activate

    get_stats

    می‌خواهم فیلتری بنویسم که نمادهایی را پیدا کند که میانگین حجم خرید حقیقی سه‌ماهه‌شان بالاتر از بقیه بازار است. آمارهای لازم را بگیر.

    The فیلترنویسی phrasing routes to get_stats, the key-stats universe — not a realtime board; a correct agent filters on the average individual-buy column over the last three months.

  8. 08 · en · must activate

    ticker_shareholders

    Estimate the true free float of وبملت from its major-shareholder table, and say how it differs from the reported float.

    Routes to ticker_shareholders; expected reasoning is free float ≈ 100 − Σ(major-shareholder percentages), contrasted with the reported figure and the gap explained.

  9. 09 · en · must ignore

    Fetch AAPL daily candles from Yahoo Finance and compute the 50-day moving average.

    US equity on a non-Iranian venue — must NOT activate this skill.

  10. 10 · en · must ignore

    Track the BTC-USDT funding rate on Binance over the last 24 hours.

    Crypto venue, outside TSETMC — must NOT activate this skill.

  11. 11 · fa · must activate

    resolve_symbol

    نماد مورد نظرم حذف شده و دیگر در جست‌وجو پیدا نمی‌شود. شماره instrument قدیمی‌اش را پیدا کن و آخرین وضعیتش را نشان بده.

    Delisted path: resolve_symbol still returns the old indexes for removed rows; the agent then loads Ticker with index= instead of searching by name.

  12. 12 · en · must activate

    ticker_shareholders_history

    My asyncio.run() call inside a running FastAPI event loop fails while fetching shareholder history for فولاد, and TSETMC just rate-limited me. What is the correct call?

    Routes to shareholders history plus the pitfalls reference; expected answer: await the *_async variant inside the existing loop instead of asyncio.run(), and fetch serially to stay under TSETMC's rate limit.