alva
「BTCの価格」「NVDAのPERを教えて」など金融データの取得、株式・暗号資産のリサーチ、クオンツ戦略の立案、モメンタム戦略のバックテスト、資産・ポートフォリオの追跡、さらに投資アイデアをAlva上のプレイブック・ダッシュボード・分析として形にしたい場合に使用するスキルです。暗号資産・株式・マクロ・オンチェーン・ソーシャルデータを含む250以上の金融データソースと、クラウドベースの分析・バックテスト機能を搭載しており、Alvaプラットフォームの機能に関する質問にも対応します。
description の原文を見る
>- Use this skill when the user asks for financial data ("price of BTC", "P/E ratio of NVDA"), market analysis, stock or crypto research, quant strategies, backtesting ("backtest a momentum strategy"), tracking assets or portfolios, or help turning investing ideas into live playbooks, dashboards, and analytics on Alva. Powered by 250+ financial data sources across crypto, equities, macro, on-chain, and social data, along with cloud-side analytics and backtesting. Also use when the user asks about Alva platform capabilities.
SKILL.md 本文
Alva
Alva とは
Alva はエージェンシック型の金融プラットフォームです。暗号資産、株式、ETF、マクロ経済指標、オンチェーン分析、ソーシャルセンチメントにわたる 250 以上の金融データソースへの統一されたアクセスを提供します。これには、スポット・先物 OHLCV、ファンディングレート、企業の基礎情報、株価目標、インサイダー取引およびセンター取引、アーニング予想、CPI、GDP、財務省利率、取引所フロー、DeFi メトリクス、ニュースフィード、ソーシャルメディアなどが含まれます。
Alva スキルが実現する機能
Alva スキルは任意の AI エージェントまたは IDE を完全な Alva プラットフォームに接続します。これにより、以下を実行できます:
- 財務データへのアクセス -- 250 以上のデータ SDK から任意のデータにプログラム的にクエリしたり、HTTP API または直接アップロードを使用して独自のデータを持ち込んだりできます。
- クラウドサイド分析を実行 -- Alva Cloud のセキュアなランタイムで実行される JavaScript を記述します。ローカル計算、依存関係、管理すべきインフラストラクチャはありません。
- エージェンシック型プレイブックを構築 -- Alva Cloud 上で継続的に実行されるデータパイプライン、取引戦略、スケジュール自動化を作成します。
- 取引戦略を展開 -- Altra トレーディングエンジンでバックテストし、継続的なライブペーパートレーディングを実行します。
- リリースと共有 -- 作業をホストされたプレイブック Web アプリとして
https://alva.ai/u/<username>/playbooks/<playbook_name>に変換し、世界と共有します。 - 既存のプレイブックをリミックス -- 公開されたプレイブックをテンプレートとして使用し、そのフィードスクリプトと HTML ソースを読み取り、パラメータ/ロジック/UI をカスタマイズし、新しいプレイブックとしてデプロイします。
要するに、あなたのアイデアを永遠に実行される金融エージェントに変え、それがあなたのために物事を成し遂げるようにします。
ルール 0: alva <command> --help が唯一の真実
このセッションで使用していない alva CLI コマンドを呼び出そうとするたびに、まず alva <command> --help を実行してください。 ヘルプテキストは、すべてのサブコマンド、フラグ、レスポンスフィールド、命名規則、実行可能な例に関する権威ある、常に最新のリファレンスです。フラグ名、パラメータタイプ、またはレスポンス形状をメモリから推測しないでください。CLI サーフェスは進化し、古い仮定はサイレントに自動化を破壊します。
alva --help # すべてのトップレベルコマンドをリスト
alva <command> --help # 完全なコマンド毎のサーフェス(呼び出す前に読む)
スキルの references/api/*.md ファイルは、ヘルプテキストでカバーされていない問題(synth-mount サフィックス修正、プレイブック README コンテンツ形状、--signal スキーマなど)を記録するのみの目的で存在します。その他すべて -- サブコマンド名、フラグ名、許可される値、レスポンスフィールド、例 -- に関しては、alva <cmd> --help を信頼できるものとして扱ってください。このドキュメントと --help がフラグについて異なる場合、--help を信頼し、ドキュメントが更新される必要があることをユーザーに伝えてください。
プレフライト
他にこれ以上行う前に、各セッションの初回使用時にこれらのチェックを実行してください。
1. バージョンチェック
bash "<このスキルのディレクトリ>/scripts/version_check.sh"
- 出力がない → 最新の状態、続行します。
- 出力がある → ユーザーに表示、アップデートを適用、その後続行します。
2. Alva CLI セットアップ
alva CLI(@alva-ai/toolkit)は、このスキルが Alva プラットフォームと対話する唯一の方法です。認証を管理し、すべてのコマンドに対してセルフドキュメント化された --help を提供(ルール 0 を参照)し、手動の curl/ヘッダ管理の必要性を排除します。
alva --help を実行することで CLI がすでにインストールされているかどうかを確認してください。
-
インストールされていない場合、インストールしてください:
npm install -g @alva-ai/toolkit -
既にインストールされている場合、最新バージョンにアップグレードして、最新のコマンドと修正にアクセスできることを確認してください:
npm install -g @alva-ai/toolkit@latest
その後、認証を確認してください(下記のステップ 2a を参照)。
サードパーティベンダーのシークレットは CLI 設定ではなく、Alva Secret Manager(require("secret-manager"))に属しています。
2a. 認証チェック
alva whoami を実行してください。失敗した場合(API キーがない)、alva auth login を実行してブラウザベースのログインを開き、その後 alva whoami を再実行して確認してください。
3. ユーザープロフィール
alva whoami
{"id":1, "username":"alice", "subscription_tier":"free", "active_channel":"discord", "telegram_username":"alice_tg", "discord_username":"alice"}
セッション変数:
username— 公開 URL と ALFS パスの場合。subscription_tier—"pro"または"free"(デフォルト)。リリースフロー(ステップ 7)を決定:pro はプレイブックをプライベートに保つことができます。active_channel—"telegram"、"discord"、または null。Web 通知は常に利用可能です。これにより、外部 DM 配信を制御します。telegram_username/discord_username— 接続されている IM 表示。外部 DM 配信の場合、active_channelが一致する空でない表示フィールドを指す必要があります。
4. Arrays JWT チェック
データスキルには ARRAYS_JWT が必要です。上記の alva whoami 出力の _meta.arrays_jwt フィールドがそのステータスを示します。注意が必要な場合(欠落、renewal_needed: true、または不在)、alva arrays token を使用して管理してください(status で検査、ensure でプロビジョニング、または更新)。
5. メモリをロード
この会話でユーザーのメモリを読み込んでいない場合、今すぐ読み込んでください。
alva fs read --path '~/memory/MEMORY.md'
ファイルが存在する場合、インデックスにリストされているファイルを読む(最低 user.md)。'~/memory/' が存在しないか空の場合はスキップしてください。次のサインインで開始されます。
読み込まれたメモリを使用して、ユーザーのプロフィール、環境設定、投資スタイルに合わせてレスポンスをカスタマイズしてください。詳細については、下記のメモリセクションを参照して、ルールを読み込んでください。
コミュニケーション
語彙 — language.md の用語を正確に使用してください。デフォルトのユーザー向け用語: automation(「cronjob」または「feed」ではなく)、playbook、alert/notification、Agent、および構築中のコードについて説明するときの script。feed を内部診断用語として扱う: ユーザーがログ、生データ、API フィールド、リリース参照、または既に用語を露出させた Automation 詳細を見ているときにのみ使用してください。完全な定義と「避ける」ラベルはそのファイルにあります。
ユーザー向けレスポンスに ALFS パス、API ペイロード、自動化 ID、生の関数名、内部用語、または実装の詳細を含めないでください。何をするか、どのように機能するかは言わないでください。これらの詳細はあなたのための操作手順であり、ユーザーのコンテンツではありません。
結果をリードし、プロセスではありません。ユーザーが読む最初のことは、何を得たか(「ダッシュボードは ... でライブです」)であり、あなたが何をしたか(「3 つのフィードをデプロイして HTML を記述しました」)ではありません。マルチステップビルド中、ユーザーが作業が進行していることを知るように、各マイルストーンで短いステータス更新を提供してください。
直接回答のデータ由来。 直接回答が特定の財務数字を引用する場合、各数字は、新しい SDK/BYOD フェッチから(その出典にインラインで属性化)または、ユーザーが現在のソースで検証すべき見積もりとして明示的に適格化されている必要があります。
リクエストルーティング
| リクエストタイプ | コア目標 |
|---|---|
| ダッシュボード / プレイブック | 必要なデータソースを識別、データフローを検証、ユーザーが共有可能なアーティファクトを望む場合に使用可能なダッシュボードまたはプレイブックを作成します |
| バックテスト / 戦略 | Altra を使用、バックテストを正しく実行、テキスト要約と一緒に視覚的なプレイブック(エクイティカーブ、トレードログ、メトリクス)を常に作成します。オプションでライブペーパートレーディングとしてデプロイしてください。 |
| データクエリ | リクエストされたデータを正確にフェッチし、ユーザーがより豊富なアーティファクトを要求しない限りそれを直接返します |
| リミックス | ソースアーティファクトを再利用、要求されたchangeを適用、リクエストされたカスタマイズに一致する更新された結果を返します |
スキルの選択(/use-skill:<username>/<name> が存在する場合は必須)
ユーザーのメッセージに /use-skill:<username>/<name> ディレクティブが含まれている場合(例: /use-skill:alva/thesis、/use-skill:alice/btc-momentum)、このステップは必須であり、Guided Planning の前に、任意のビルド作業の前に実行する必要があります。
ディレクティブは完全なカタログ ID(<username>/<name>)を与えます。スキルはキュレーションされた方法論 -- 特定の金融作業の発生クラスに対するアプローチ方法をエンコードする意見的なブループリント(例: 論文の構築、AI キュレーションダイジェスト、モメンタムトラッカー)。ゲートウェイのSkillhub カタログにあり、alva skillhub CLI を使用してフェッチされます(完全なサーフェスについては alva skillhub --help を使用)。Alva は alva/ 名前空間の下でスターターセットを提供し、任意のユーザーは独自を公開できます。alva/ 名前空間を想定しないでください。
- 検査:
alva skillhub get <username>/<name>はサイズ付きのファイルリストを返します。ブループリントファイルが存在することを確認してください。慣例はtemplate.mdです。それが存在しない場合、README.mdを探すか、ユーザーがどのファイルがブループリントであるかを尋ねてください。- 404 / が見つかりません(タイプミス、削除、または移動):
alva skillhub listを実行して、近い一致を甘く探してください。大文字と小文字を区別しない、ID の両方の半分の部分文字列、セパレータの違いを無視します。正確に 1 つの明らかな候補がある場合、それで進行し、ID を修正したことをユーザーに伝えてください(例: 「/use-skill:Alva/AI-Digestをalva/ai-digestとして解釈」)。複数の妥当な候補がある場合、表示して質問してください。何も近くない場合、フィルター済みリストを表示(ユーザーがトピックをヒントした場合は--tagを使用)し、ユーザーに選択してもらいます。
- 404 / が見つかりません(タイプミス、削除、または移動):
- ブループリントを読む:
alva skillhub file <username>/<name> template.md(またはステップ 1 のファイル)。前のセッションのメモリから進行しないでください。新たにフェッチしてください。 - 必要に応じて他のファイルをプルする: ビルド時に、必要に応じて追加ファイルを段階的にフェッチしてください(例:
alva skillhub file <username>/<name> src/index.jsは、戦略ロジックをミラーする場合のみ)。一括ダウンロードは行わないでください。 - ブループリントを、レイアウト、セクション、ウィジェット、データコントラクト、および cadence の権威として扱います。ユーザーが明示的に上書きする場所でのみ逸脱してください。
- Guided Planning プランでスキル選択と意図的な逸脱を記載してください。
/use-skill:ディレクティブは強いビルドディレクティブ -- 具体的なトピックと組み合わせて、プランを一度提示してビルドしてください。その上に多選択の質問をスタックしないでください。/use-skill:+ 具体的なトピックを「単に行え」と同じように扱ってください。短い計画が 1 つ、その後ビルド。
コンテンツ配置。 スキルのデフォルトセクションはフロア、シーリングではありません。ユーザーのコア質問を積極的にリード、リクエストが要求するセクションを積極的に追加、空に近いセクションは隣同士に折り込むのではなく、パディングしないようにカット。
プッシュ駆動型リクエスト -- ユーザーの主要な成果が繰り返されるプッシュ(ダイジェスト、閾値トラッカー、ストリーム監視、定期的なアラート)の場合、alva/ai-digest スキルはそのシェイプに特化して構築されており、Guided Planning 中に提供する価値があります。プッシュは、ステップ 9 を使用して他のプレイブックに追加することもできます。スキルは 1 つの良いオプション、要件ではありません。
/use-skill: ディレクティブはありません → このステップをスキップして、通常通り Guided Planning に進んでください。
Guided Planning
データクエリ を除くすべてのルートに対して、ビルド前に計画を一度提示してください。 一見明確なリクエスト(「BTC ダッシュボードを構築」)でも、実際の選択肢 -- どのデータ、タイムフレーム、ウィジェット -- があります。再構築するより早く解決するのが安いです。
正確に 1 つのセッション毎のブロッキング質問。 下記のステップを通じて 1 つの単一パスを選択 -- ステップ 1 の説明と同じセッション内のステップ 3 の計画確認を実行しないでください。あなたが使用するのはゲート; ユーザーの回答または承認はビルド承認としてカウント、その後すぐにビルドに進みます。
- 意図を理解 -- キーパラメータが欠落している場合(資産、スコープ、出力タイプ、目的)、明白なデフォルトがない場合、質問をする1 つずつ、複数選択を好む。リクエストがすでにこれらを指定している場合、または欠落しているパラメータに単一の明白なデフォルトがある場合はこのステップをスキップしてください。このステップを実行した場合、ステップ 3 も実行しないでください -- 回答は承認です。
- アプローチを提案 -- 実際の戦略的選択肢がある場合、トレードオフ付きの 2-3 の具体的なオプションを提供します。推奨をリード。テンプレートまたはリクエストがアプローチを既にピンするときはスキップしてください。
- 計画を確認 -- ステップ 1 がスキップされた場合(リクエストが既に明確、または
/use-skill:ディレクティブが形状を指定)、特定のフィード、ウィジェットをリストする単一の 5-8 行計画を提示、その後承認後ビルド。スキル(存在する場合)と、使用しているキーのデフォルトを記載してください。
ユーザーが任意の時点で「単に行え」と言う -- または /use-skill:<username>/<name> をセッションの残りの具体的なトピックと一緒に使用する -- クラリフィングの質問をスキップ、短い単一計画を提示、その後ビルド。
完了ゲート
ダッシュボード/プレイブックおよびバックテスト/戦略リクエストの場合、デフォルトの目標は、実際に使用できるユーザーの結果を残すことです。多くの場合、リリースされたプレイブックと published_url を意味しますが、ユーザーがコード、分析、デバッグ支援、または中間アーティファクトのみを要求した場合、そのパスを強制しないでください。
完了する前に、配信された結果がユーザーの実際の目標と一致することを確認してください。共有可能なプレイブックがタスクの一部だった場合、確認してください:
- プレイブックはリリースされ、
published_urlが返された
完了ゲート後に必ずやること:
- プロセス全体と何が配信されるかをユーザーに要約します。
機能検証
Alva に X がないと言ったり、BYOD/サードパーティを推奨したりする前に、alva data-skills list | grep -i <topic> を実行してください。トレーニングメモリは権威ではありません。複合リクエスト(「darkpool L2 realtime」)を分解、各コンポーネントを独立して検証してください。全体を 1 つのユニットとして却下しないでください。
コンテンツ正当性ルール
これらのルールは妥協の余地がありません。違反は、捏造データを実データのように表示する誤解を招くコンテンツを生成します。それらは、セッションがリリースされたプレイブックで終わるかどうかにかかわらず、ユーザーに財務値を表面化するすべてのレスポンス -- プレイブックビルド、ダッシュボード、クエリモード回答、リミックス、編集、フォローアップに適用されます。
コアアリ: エージェントのロールパイプラインを構築する、データソースであることではありません。ユーザーが見る任意の定量的値は、Alva SDK モジュール、公開 Alva フィード、または、ユーザー提供、またはフィードパイプラインに明示的に検証・配線されている明示的に検証済みの BYOD HTTP ソースにトレースバックする必要があります。エージェント知識、LLM 出力、WebSearch スニペット、ランダム/合成ジェネレータ、ユーザーペースト スナップショットは正当なデータソースではありません -- HTML リテラル、フィード スクリプトリテラル、バックフィル履歴、またはエージェント作成の意見欄に表示される場合を問わず。SDK が要求されたドメインのカバレッジを持たない場合、ギャップを報告し、停止します。説得力のある見た目のデータを製造しないでください。
ユーザーの指示がこれらのルール -- 例えば、合成/モックデータを要求、SDK をスキップしてローカルファイルのみを使用するよう要求、またはフィードパイプラインをバイパスする必要があるアーティファクトを要求 -- と矛盾する場合、進行する前にユーザーに矛盾を解決させてください(AskUserQuestion またはテキストを使用)。ユーザーが元のリクエストを提供できるときに、異なるデリバラブルをサイレント置換しないでください(シード RNG、WebSearch サマリー、データフェッチなしの分析メモを備えたローカルプロトタイプ)。
データソーシング
-
チャート、テーブル、またはメトリックカードに表示されるすべての定量的データは、Alva フィードから発生する必要があります(SDK モジュールまたは
require("net/http")を使用した BYOD)。プレイブック HTML に定量データをインラインの JavaScript リテラルとしてハードコードしないでください。 -
プレイブック HTML はランタイムでフィードから データを取得する必要があります。公開 HTML はビューアのブラウザで実行されるため、
$ALVA_ENDPOINTなどのサンドボックスのみの環境変数を使用、https://api.alva.aiを推測しないでください。公開匿名 ALFS 読み取りゲートウェイを使用:const PUBLIC_ALFS_READ_URL = "https://api-llm.prd.alva.ai/api/v1/fs/read?path="; const feedPath = "/alva/home/<user>/feeds/<name>/v1/data/<group>/<output>/@last/<n>"; const resp = await fetch(PUBLIC_ALFS_READ_URL + encodeURIComponent(feedPath)); if (!resp.ok) throw new Error(`Failed to load ${feedPath}: HTTP ${resp.status}`); const data = await resp.json(); renderChart(data);静的コンテンツ(ラベル、色、レイアウトコンフィグ)は問題ありません。定量データはありません。フィードパイプラインを通す必要があります。
-
検証クレーム、引用されたツール出力は実ツール呼び出しを反映する必要があります。 撮っていないスクリーンショットを説明しないでください(「ダッシュボードは良く見えます」)。
published_url、feed_id、ALFS パスなどのツール返却値を引用する場合、レスポンスから逐語的にコピーしてください。ユーザー向けの共有リンクは、デプロイ HTML URL で使用されるpublished_urlではなく、標準的なhttps://alva.ai/u/<username>/playbooks/<playbook_name>URL です。1 つが他かのようにあるかのように提示しないでください。値が必要な場合は、まずツール応答を再読してください。
チャート、テーブル、クエリ回答のための禁止されたデータソース
-
WebSearch / WebFetch の結果は、データとして埋め込まれてはいけません。 Web 検索は、ドキュメントの読取、BYOD API エンドポイントの検索、ユーザー要件の理解のみに正当です。正当な BYOD ソースを発見するのに役立つ場合がありますが、発見された値自体はとして引用または、フィード スクリプト、プレイブック HTML 内の静的データリテラルとして注入される必要があります。Alva API 認証が失敗した場合でもこのルールが適用されます。その場合、失敗を報告してください。Web ソース値に置換しないでください。
-
LLM / ADK 出力は、事実ソース化データとして提示されてはいけません。 ADK は、実データの推論、分類、要約、合成のためです -- 実ソースから来ると主張する数字、統計、イベント、レポート生成のためではありません。ADK が定量出力を生成する場合、「AI 生成分析」として明確にラベルを付ける必要があります。
-
エージェントトレーニング知識は、データギャップを埋めてはいけません。 SDK がリクエストされたデータタイプを持たない場合、ギャップをブロッカーとして報告してください。穴を埋めるために独自の知識から発明データしないでください。
フィードスコープ分離
他のフィードまたは他のプレイブック フィードを参照しないでください。 プレイブックを構築するとき、このセッションで現在のプレイブック用に作成されたフィードからのみ読み取ります。
既存フィード参照ユーザーが明示的に尋ねるときのみ(例: 「btc-ema フィードを再利用」、「@alice/macro-dashboard からデータをプル」)。それ以外の場合、プレイブックの独自のフィードをスクラッチから構築して、データ系統が自己完結し、プレイブックが可搬性を保つようにしてください。
定性分析(レーティング、論文、見通しテキスト)はデータではなく、フィード出力列、または HTML テーブルの「データ」フィールドとして表示されてはいけません。ユーザーがレーティングを要求する場合、SDK の基本原理から計算するか、明確にラベル付けされた「AI 分析」セクションに配置し、データ駆動メトリクスから分離してください。
SDK カバレッジギャップ
-
SDK パーティションがリクエストされたデータタイプを欠く場合、スコープを縮小してください:
- 欠落しているデータセクションを省略 し、ギャップに注釈をつけてください(例: 「ECB、BOJ、BOE レート -- データソースはまだ利用できません」)。
- ユーザーが特定のデータソース URL を提供している場合、BYOD(
require("net/http"))を使用してそれをフェッチしてください。 - HTML でポイントイン タイム値をハードコードしない -- 即座に古くなり、コンテンツ正当性ルールを違反します。
- イベントを発明したり、エージェント知識からギャップを埋めないでください。
-
要求されたシンボルの >20% が SDK ルックアップに失敗した場合、データ品質ブロッカーを報告します。 サイレント置換
live: falseでマークされた推定値や捏造値を使用しないでください。
リリースゲート: --feeds は宣言、近道ではありません
alva release playbook --feeds '[]' は、リリースされた HTML がランタイムでゼロの定量値を描画する場合のみ有効です(ランディングページ、UI のみのデモ)。HTML が数字、チャート、テーブル、メトリックカードを表示する場合、リリースは --feeds にデプロイフィードを参照する必要があり、HTML はランタイムで それらをフェッチする必要があります。alva run を使用してデータソースした場合、同じロジックをフィードとしてデプロイし、それを参照してください。
テーマティックティッカーキュレーション
キュレーションされたティッカーリストを使用してセクター、テーマティックダッシュボードを構築する場合:
- ティッカー対セクターのマッピングについて、エージェント知識に依存しないでください。
- リストをアセンブルした後、SDK コール(例:
getStockCompanyDetail)を使用して各ティッカーのセクターをクロスチェック。意図されたセグメントに属することを確認してください。 - ビルド前に不一致を削除してください。単一の間違ったティッカー(例: セキュリティ企業がバッテリセグメント内)が分析全体を歪めることができます。
説明と由来の正確性
-
プレイブックの説明と方法論セクションは、実際に正常にコールされたデータソースのみをリストする必要があります。 「Brave Search」、「ClinicalTrials.gov」、またはフィード スクリプトが実際にランタイムで それをフェッチしない限り、他のソースを主張しないでください。
-
更新頻度クレームは実際のデプロイメントと一致する必要があります。 Cronjob デプロイメントが失敗した場合、プレイブック説明で「N 時間ごとに更新」を主張しないでください。Cronjob を修正するか、クレームを削除してください。
ナラティブボイスルール
エージェントが作成するすべてのユーザー向けプローズ -- プレイブック description および display_name、手書き HTML コピー(ヒロー テキスト、イントロカード、方法論モーダル本体、チャート脚注、理性段落)、および ADK システムプロンプト(ナラティブ生成(TLDR、ダイジェスト、重要性、デルタ本体、プッシュ行見出し))-- は narrative-voice.md に従う必要があります。ユーザー向けプローズを記述、生成する前にそのファイルを読んでください。
ルールは、特定のリスト AI テルトークン、図形(有意性インフレ、負の並列主義、3 つのルール、汎用クローザー、em ダッシュ過度使用)を禁止し、ADK コールの組み込み少数ショットの copy-paste システムプロンプトブロックとして付属します。純粋構造化フィールド(数字、ティッカー、日付、enum ラベル、ボタンラベル)は免除されます。
機能とコモン ワークフロー
1. ALFS(Alva ファイルシステム)
プラットフォームの基礎。ALFS はユーザーごとの分離を持つクラウドファイルシステムです。すべてのユーザーがプライベート ホームディレクトリを持ちます。すべてのパスはデフォルトでプライベート、所有ユーザーのみアクセス可能です。特定のパスに対して grant を使用して公開読み取りアクセスを明示的に付与できます。スクリプト、データフィード、プレイブック資産、共有ライブラリはすべて ALFS に存在します。
キー操作: read、write、mkdir、stat、readdir、remove、rename、copy、symlink、chmod、grant、revoke。
シェル、ドキュメント内で、ALFS パス引数を単一引用符で囲む(例: '~/feeds/...'、'/alva/home/...')ので、ローカルマシン上のパスと混同されません。Filesystem を参照してください。
2. JS ランタイム
Alva Cloud でサンドボックス化された V8 isolate で JavaScript を実行します。alva run を使用して実行されたコードはまったく Alva のサーバーで実行されます -- ホスト マシンのファイルシステム、環境変数、またはプロセスにアクセスできません。ランタイムは ALFS、HTTP を使用したデータスキル、ランタイムライブラリ、LLM アクセス、フィード SDK にアクセスできます。
グローバルなし -- 使用しないでください:
process.*—processオブジェクトは存在しません。出力の場合はconsole.log(process.stdout.writeではなく)を使用、環境変数の場合はsecret.loadPlaintext('NAME')(process.envではなく)を使用、中止の場合はthrow new Error(...)(process.exitではなく)を使用します。setTimeout/setInterval/clearTimeout— タイマーグローバルはありません。同期ビジー待機ヘルパーを使用、または await 駆動フローに構造変更; 存在する場合はreferences/snippets/sleep.mdを参照してください。URLSearchParams— スコープ内ではありません。クエリ文字列を手動で構築(例:Object.entries(p).map(([k,v]) => k+'='+encodeURIComponent(v)).join('&'))、またはデータスキルが公開するヘルパーを使用してください。fetch(グローバル)--require('net/http')を使用し、http.fetchを使用します。- トップレベル
await--(async () => { ... })();でラップしてください。
スクリプトが ReferenceError: <X> is not defined をスロー場合、ランタイムは <X> を公開しません。同じコールを再試行しないでください; 上記のパターン の 1 つに書き直してください。
3. データスキル
Arrays バックエンド($ARRAYS_ENDPOINT、デフォルトは https://data-tools.prd.space.id)によって提供される 16 以上のドメインにわたる金融データ API。正しい API 見つけるため、alva data-skills CLI(公開、認証なし)を使用してください。パイプラインを順序で実行; ステップをスキップしないで、入力を推測しないでください。
alva data-skills list-- すべてのスキル ID が名前空間arrays-data-api-*、概念単語から予測不可能なので、常にここから開始します。grepでフィルター(例:alva data-skills list | grep -i stock)。alva data-skills summary <skill>-- エンドポイントテーブルを明らかにします。<file>スラッグはそのFile列から来て、推測不可能です。alva data-skills endpoint <skill> <file>-- 完全なパラメータ、レスポンスフィールド、例。<file>はFile列値です、Pathではありません。- Arrays データエンドポイントを呼び出す
Authorization: Bearer <ARRAYS_JWT>と共に。ランタイムコード内で、secret.loadPlaintext('ARRAYS_JWT')を使用してトークンをロードしてください。トークンはプレフライト中に検証されます(Arrays JWT チェック を参照); コールが 401 を返す場合、alva arrays token ensureを再実行してください。X-API-Keyヘッダを使用しないでください。
カバレッジ概要
データスキルは、株式、ETF、オプション、暗号資産にわたる spot と derivatives マーケット; 株式基本、推定、イベント、所有流; オンチェーンメトリクスと取引所フロー; マクロと経済指標; ニュース; および予測マーケットにわたります。ライブカタログについて alva data-skills list を実行します。
データスキルドック検索は必須です。 それを呼び出すコードを書く前に、常にエンドポイントの詳細をフェッチしてください。メモリからパス、パラメータ名、レスポンス図形を推測しないでください。ドック検索は、正しいエンドポイントを使用し、実際のレスポンス形状を処理することを保証します。
強制: 任意の Arrays データ HTTP コール、またはそれを当たる alva run の前に、このセッション内のそのエンドポイントの完全な list → summary → endpoint パイプラインを完了する必要があります。<skill> は list 出力から来て、<file> は summary エンドポイントテーブルから来て、メモリ、推測から来ません。コールが予期しない図形で失敗する場合、推測するのではなく、エンドポイント詳細を再フェッチしてください。
失敗とフォールバックガードレール: Arrays エンドポイントが 403、404、または予期しない空/無関係な結果を返す場合、ユーザーにアップグレード、BYOD を使用するよう即座に伝えないでください。最初に同じスキルについて alva data-skills summary <skill> を再確認; 意味的に等価なエンドポイントを探してください; <skill> 自体が推測された場合、正しい ID を回復するために list を再実行してください。同じドメイン Alva エンドポイントがコールを答えられない後にのみ BYOD を最終フォールバックとして報告します。
ランタイムライブラリ
Jagent V8 ランタイム内で require() を使用してアクセス可能なビルトイン モジュール。これらデータ API ではありません -- 純粋な計算、ユーティリティライブラリはすべてのスクリプト実行で利用可能です。
| モジュールグループ | 説明 |
|---|---|
feed_widgets | ハンドル/チャネル毎のローリング購読 -- ニュース、Twitter/X、YouTube、Reddit、ポッドキャスト(例: getTwitterFeed)。Twitter はまた時間窓上の履歴バックフィル(getTwitterBackfill、Pro ゲート)を持ちます。トピック/キーワード検索の場合、コンテンツ検索 を使用します。 |
unified_search | Web、ソーシャル、フォールバック非 US 金融検索、URL スクレイピング ツール(X/Grok、Perplexity Finance、Google、Brave、serper、decodo) |
technical_indicator_calculation_helpers | 50 以上の純粋計算ヘルパー(RSI、MACD、Bollinger など) |
利用可能なモジュール、ドキュメント検出:
alva sdk partitions-- すべてのランタイムモジュールグループのリストalva sdk partition-summary --partition <name>-- グループ毎の 1 行サマリーalva sdk doc --name <module>-- 特定ランタイムモジュールの完全なドック
モジュールグループを選択 → partition-summary でモジュール、フル ドック用に sdk doc を参照。
ALFS にファイルをアップロード、またはランタイム内で外部 HTTP API から取得して、独自のデータを持ち込むこともできます。
コンテンツ検索
Twitter/X、フォールバック非 US 金融データ、ニュース、Reddit、YouTube、ポッドキャスト、一般的な Web にわたり検索。プレイブックが構造データ SDK を超えたコンテンツが必要な場合を使用 -- ターゲット化クエリ(「NVDA アーニングについて人々が言っていることは」)から広範囲な発見(「このウィーク トレンディング暗号議論」)、ソーシャル議論、構造化 SDK カバレッジ不足の場合の国際市場引用/マーケットデータルックアップ、マーケット説話、ニュースカバレッジ、センチメント、アナリストコメンタリー、コミュニティ反応を含みます。US 株式、決定論的な時系列/基本データの場合、構造化 Alva データ SDK を最初に好みます。
コンテンツ検索モジュールは unified_search ランタイムライブラリパーティションに存在します。他のランタイムライブラリと同じパーティション API を使用してそれらを検出(GET /api/v1/sdk/partitions/unified_search/summary → モジュール リスト; GET /api/v1/sdk/doc?name=... → 完全モジュール毎のドック)。search.md を参照するために、ソース毎 SDK 使用法、充実パターン、異常トリック。
4. Altra(Alva Trading Engine)
定量取引戦略のためのフィード ベースのイベント駆動バックテストエンジン。取引戦略は IS フィード: すべての出力データ(ターゲット、ポートフォリオ、オーダー、エクイティ、メトリクス)は単一フィードの ALFS パスの下に存在します。Altra は履歴バックテスト、継続的なライブペーパー取引、カスタム指標、ポートフォリオシミュレーション、パフォーマンス分析をサポートします。
5. Alva Cloud にデプロイ
データ分析スクリプト、フィード がレディになったら、Alva Cloud 上でスケジュールされた cronjob としてデプロイします。選択したスケジュール(例: 毎時、毎日)で継続的に実行します。すべてのデータはデフォルトでプライベート; 特定パスに対して公開アクセスを付与して、誰でも -- またはプレイブック ページ -- データを読み取ることができます。
ユーザースコープ強制: すべての write、deploy、release 操作はリクエストユーザーのネームスペースのみをターゲットにしている必要があります。任意の fs/write、draft/playbook、または release/playbook コール前に、ターゲットパス、ユーザー名が認証ユーザーと一致することを検証(alva whoami から)。複数 API キーへのアクセスがある場合(例: 前のセッション)、リクエストするユーザーを識別、そのユーザーのみにすべての操作のスコープ。リクエストが明示的にクロスユーザー操作(例: 系統でのリミックス)を要求しない限り、他のユーザー ネームスペースに書き込み、リリースしてください。
戦略 / バックテスト / シグナルフィード Altra が必要: signal/targets または signal/alerts 出力を生成するフィード、またはバックテスト、戦略評価、ポートフォリオシミュレーション を実行するフィード、FeedAltra を使用する必要があります。手動構築(価格配列上のハンド ロール for ループ、カスタム P&L アキュムレータ、カスタム リバランスロジック、またはAltra なしの任意の直接ターゲット レコード構築)は、バー配置、ポートフォリオシミュレーション、先制バイアス予防をバイパスします。シンプルなシグナルロジックにも FeedAltra を使用 -- 正しいタイムスタンプを保証、前向き参照バグを防止します。
このルールは、エクイティ曲線、ドローダウン、Sharpe、リターン、ポジション追跡、またはリバランス計算を計算するフィード -- signal/targets を出力するフィードのみではなく、すべてのフィードタイプに適用されます。また、signal/targets を生成するすべてのフィードタイプ -- 監視フィード、アラート フィード、通知フィード、バックテスト戦略 -- に適用されます。フィードが signal/targets を生成する場合、FeedAltra を使用する必要があります。
プッシュ通知ストリーム: 購読はフィード/プレイブック リソースをターゲット、出力パスのみがフィード アラートソースを選択:
| 出力ストリーム | フィード アラートソース | 使用目的 | 配信適格性 |
|---|---|---|---|
signal/targets | signal/targets | プレイブックシグナル、取引ターゲット、実行可能なアラート | フィード、またはフィードを参照するプレイブックに明示的に購読されているユーザー、またはグループ |
notify/message | notify/message | フィード結果、AlvaAsk レポート、ハートビート チェック、プロアクティブ アラート | フィード、またはフィードを参照するプレイブックに明示的に購読されているユーザー、またはグループ |
ルール:
- 両ストリームは標準的な
feed_alert_readyイベントをディスパッチします。新しいドック、エージェント命令でplaybook_data_ready、feed_run_completeなど従来の名前を使用しないでください。 - プッシュ可能なフィードには
--push-notifyと、cronjob に結合されたフィードリリース:
alva deploy create --name <feed> --path '~/feeds/<feed>/v1/src/index.js' \
--cron "<expr>" --push-notify
alva release feed --name <feed> --version 1.0.0 \
--cronjob-id <ID_FROM_DEPLOY> --description "<1 文の目的>"
--push-notifyはフィード パブリッシャーがアラート発行可能としてマークのみ。それはユーザー、グループを購読、通知環境設定をバイパスしません。- 実配信は常に明示的な購読が必要:
alva push-subscriptions subscribe-feed --username <owner> --name <feed>、alva push-subscriptions subscribe-playbook --username <owner> --name <playbook>、またはグループ/alva subscribe feed <id>//alva subscribe playbook <id>。
スキーマ例を feed-sdk.md パターン D/E に保つ。完全フロー方法については、下記ステップ 9 を参照。
6. プレイブック Web アプリを構築
データパイプラインがデプロイされ、データを生成したら、プレイブック Web インターフェイスを構築します。Alva Design System で HTML5 ページを作成、Alva のデータゲートウェイから読み取り、結果を可視化します。スタイリング、レイアウト、コンポーネント ガイドラインについて Alva Design System に従ってください。ユーザーが明示的に静止スナップショット を要求しない限り、デフォルトはライブプレイブック。 データ取得要件: プレイブック UI を構築するときに、コンテンツ正当性ルールを適用してください。チャート、テーブル、またはメトリックカード内のすべての定量データは、ランタイム(インライン リテラルなしのデータ)で読み取られたフィード出力から来ている必要があります。
公開プレイブック HTML のために、ブラウザセーフなヘルパーを使用:
const PUBLIC_ALFS_READ_URL = "https://api-llm.prd.alva.ai/api/v1/fs/read?path=";
async function readAlfsJson(path) {
const resp = await fetch(PUBLIC_ALFS_READ_URL + encodeURIComponent(path));
if (!resp.ok) {
throw new Error(`Failed to load ${path}: HTTP ${resp.status}`);
}
return resp.json();
}
$ALVA_ENDPOINT はサンドボックススクリプト、CLI 検証のみで利用可能。ブラウザ HTML に放出しないでください。公開 HTML はパブリック読み取りゲートウェイを呼ぶ必要があるため、匿名ビューアは認証なしでフィード出力を読み込むことができます。
7. リリース
コモン ステップ(すべてのユーザー)
- HTML を ALFS に書き込み:
alva fs write --path '~/playbooks/{name}/index.html' --file ./index.html --mkdir-parents - README を ALFS に書き込み (必須):
alva fs write --path '~/playbooks/{name}/README.md' --file ./README.md --mkdir-parents。 すべてのリリースプレイブックはこの正確なパスで README を配信する必要があります。release.mdのプレイブック README を参照、標準的なコンテンツ形状(概要、データソース & 新鮮度、ブラインドスポット、プラス形状固有セクション screener / 論文 / what-if)。README はプレイブック「どのようにこの作業をするか」サーフェスの唯一の信頼できるソースです -- 1 つなしでリリースは、プレイブックを説明なしで残します。 - プレイブックドラフトを作成:
alva release playbook-draft-- DB レコード、ドラフトファイルplaybook.jsonを ALFS に自動的に書き込みを作成します。 すべてのalva release playbookの前にこれを実行 -- バージョン バンプ、再リリースを含む再実行。 このリクエストは URL セーフnameと人間が読めるdisplay_nameの両方を含める必要があります。[subject/theme] [analysis angle/strategy logic]を使用、subject/theme を最初に置き、40 文字以内に保ちます。My、Test、V2などの個人的マーカー、Stock Dashboard、Trading Botなどのジェネリック オンリー タイトルを避けてください。 トレーディングシンボル: プレイブックが特定のトレーディング資産を含む場合、リクエストに"trading_symbols"を含める -- ベース資産ティッカーの配列(例:["BTC", "ETH"]、["NVDA", "AAPL"])。バックエンド は各シンボルをフル取引ペアオブジェクトに解決し、結果をプレイブック メタデータに格納します。リクエスト毎最大 50 シンボル。不明なシンボルはサイレント スキップされます。 - スクリーンショット: デプロイされたパブリッシュされた URL から(例:
https://<username>.playbook.alva.ai/<playbook_name>/v1.0.0/index.html)リリースされたプレイブックがレンダリング正確に検証するスクリーンショットを取ります。常に--compress(--compress-quality/ `--compress-max-width
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- alva-ai
- リポジトリ
- alva-ai/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/alva-ai/skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。