mcpField
W
wind-alice

wind-alice

github.com/wind-aliceその他1433.8k 回インストール2 週間前に更新
リポジトリ

wind-alice について

wind-aliceは、プロンプトと指定したAlice SkillをWind Alice Agent APIへ送り、結果をストリーミング表示するCLIです。中国語・英語のスキル名や一般的な別名を受け付け、応答に含まれる添付ファイルもダウンロードできます。

主な機能

  1. 01Alice Skillを指定したプロンプト送信
  2. 02中国語・英語名と別名に対応
  3. 03SSEによる結果のストリーミング
  4. 04利用可能な添付ファイルのダウンロード
  5. 05CLIからスキル一覧を表示

活用シーン

  1. 01指定したAlice専門スキルで依頼を実行
  2. 02利用可能なスキルを確認して選択
  3. 03分析結果とダウンロード可能な添付ファイルを取得

MCP 対応

MCPとの関係について記載はありません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wind-alice/alicemarket --skill wind-alice

インストール後、Claude Code で/wind-aliceを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

package.json
scripts/
agentResultSanitize.js
request.js
update-check.mjs
uuidv7.js
wind-alice.mjs

詳細

wind-alice

一个 CLI:把用户问题 + 指定的 Alice Skill(中文或英文名均可) 送到万得 Alice Agent 接口,按 SSE 流式拉取并打印 agentResult.value。


关键机制(必读)

实测:Alice 服务端不是通过 selectedSkillIds / activatedSkills 来选择 Skill 的,而是通过 prompt 文本前缀(按问句语言二选一):

问句含中文:使用「<中文 Skill 名>」技能:<原 prompt>
问句全英文:Using "<英文 Skill 名>" skill:<原 prompt>

同时把 chatMode 切到 "12"、originalChatMode 设为 "4",且不携带 metadata.agentCard。本 CLI 已在 buildBody 里封装这套行为;外部只需要传 --skill "<Skill 名>"。

因此:

  • --skill 同时支持中文名和英文名,不是 id。例如下列写法等价:
    • --skill "上市公司调研问题清单" (中文 nameZh)
    • --skill "Stock DD List" (英文 nameEn)
    • --skill "stock-dd-list" (英文模糊:忽略大小写/空格/-_)
    • --skill "信用报告" (口语别名,自动映射为「信用分析」)
  • 命中后 CLI 会按问句语言拼前缀:问句含中文 -> 使用「nameZh」技能:;问句全英文 -> Using "nameEn" skill:。
  • 不要把产出物名称当成 Skill 名:用户常说「信用报告」「一页纸」「财报点评」,但 portal 上的正式 Skill 名分别是「信用分析」「公司一页纸」「全球上市公司季报点评」。CLI 已内置常见口语别名映射;若仍出现 [warn],请用 list-skills 核对正式名称。
  • 未在 KNOWN_SKILLS 及别名表中的名称会以 [warn] 提示,但仍按字面值拼接前缀提交(portal 上新建/改名的 Skill 也能立刻使用)。

何时使用本技能

满足任一条件就用:

  • 用户明确说:"用 Alice 跑 / 调 / 执行 …"、"用 Wind 的 XX 技能跑 …"。
  • 用户点名 Alice 的某个专业子 Skill(如「上市公司调研问题清单」「公司一页纸」「深度研究」「期权交易策略」「有色板块深度透视」等 36 项专业技能)。
  • 用户的问题与某个 Skill 的能力高度匹配,且希望走专业链路而不是 auto 路由。

不要用本技能的场景:用户只是普通金融问答、不在意走哪个子 Skill - 让 Alice 自己 auto 路由即可(不传 --skill)。


既知の対応スキル一覧(全 36 項目)

番号中国語スキル名(nameZh)英語スキル名(nameEn)よく使われる別名(aliases)機能の概要
1インフレシナリオに基づく債券ローテーション戦略Inflation Bond Strategyインフレ対応の債券配分, 債券ローテーションCPI/PPIのインフレ転換点を追跡し、ポジションを持たない選択肢やデュレーションのローテーションに関する提案、戦略のバックテストを提供します
2マクロデータの解釈Macro Data Interpretationマクロ分析, 経済データ分析CPI/PPI/PMI/GDP/社会融資総量/金利などのマクロデータを、週報形式で分析します
3テーマ別銘柄選定Thematic Stock Screeningテーマ株選定, コンセプト株選定, 成長分野株選定市場の取引の主軸とロジックの実現度を分析し、実際に恩恵を受ける銘柄とバリュエーションに関する提案を提示します
4債券金利の見通し分析Bond Rate Outlook金利見通し, 金利分析, 債券見通し取引・戦略・資産配分の複数の視点から見通しを分析し、定量スコアリングとストレステストを組み合わせて配分案を提示します
5信用分析Credit Analysis信用レポート, 信用分析レポート, credit report発行体の信用、業界リスク、財務健全性、Windのリスクスコアと格付けの比較を網羅します
6ファンド比較分析Fund Compareファンド比較, ファンド比較分析レポート複数のファンドについて、パフォーマンス、リスク、保有銘柄構成、運用状況をあらゆる側面から比較します
7ファンド選定と投資提案Fund Screening & Investment Advisoryファンド選定, ファンド提案, ファンド選び多角的な条件でファンドを選定して指標を比較し、個別の資産配分提案レポートを作成します
8投資対象のアイデア創出と選定Investment Idea Generation投資対象のアイデア, 銘柄選定のアイデア, 投資対象の選定市場全体を対象に定量ファクターとテーマをスキャンし、ロジック・カタリスト・リスクが明確な投資対象を発掘します
9企業の投資メモ(1ページ)Company One-Page Investment Memo1ページメモ, 投資メモ, one pager, one-pager上場企業の1ページ投資レポート(企業概要/投資ロジック/カタリスト/バリュエーション/売買提案)を作成します
10上場企業の調査質問リストStock DD List調査質問リスト, 調査リスト, dd listバイサイドの視点から調査質問リストを作成します(強気・弱気の要約+重要テーマ3~5件に関する個別質問)
11世界の上場企業の四半期決算レビューGlobal Share Quarterly Earnings Review四半期決算レビュー, 決算レビュー, earnings reviewA株・香港・米国・欧州の上場企業および業績速報を対象に、セルサイド形式の決算レビューを作成します
12市場規模の推計と戦略モデリングMarket Sizing & Strategic Modeling市場規模, 市場規模の推計, tam推計Top-down/Bottom-upのクロスチェックを行い、検証可能な市場規模のExcelモデルと調査レポートを作成します
13類似企業分析Comps Analysis類似企業分析, comps, peer analysis機関投資家水準の類似企業分析を行い、Excel表とバリュエーション倍率の比較分析レポートを作成します
14ファクトチェックFact Check事実確認, 偽情報の検証, fact check外部情報源の金融データや企業声明について、項目ごとに事実関係を確認します
15A株短期戦略レポートA-Share Short-Term Strategy ReportA株短期, 短期戦略, 短期戦略レポート毎日の取引終了後に値幅制限到達銘柄と資金ローテーションを振り返り、AIによる市場の主軸分析を構造化レポートとして出力します
16AIコモディティストラテジストAI Commodity Strategistコモディティストラテジスト, 先物ストラテジスト, 先物寄り付き前戦略エネルギー・化学、鉄鋼・石炭、非鉄金属、農産物、貴金属などを対象に、取引開始前・取引中・取引終了後の戦略を出力します
17資産配分-セクターローテーション戦略Asset Allocation - Sector Rotation Strategyセクターローテーション, セクターローテーション戦略, sector rotation今後1~6か月のセクター間の強弱を分析し、モメンタムとバリュエーションに基づいてオーバーウェイト/アンダーウェイトの目標比率を提示します
18資産配分-戦略ベンチマークポートフォリオAsset Allocation - Strategic Baseline Portfolio戦略ベンチマークポートフォリオ, 戦略的資産配分, saa3~5年の戦略的資産配分ベンチマークを策定し、主要資産のウェイトと指数の対応関係を出力します
19証券会社のトップピック追跡Broker Top Picks Tracker証券会社のトップピック, トップピック追跡, トップピック, top picks証券会社が月次で推奨するトップピックを集計し、注目度ランキング、業界分布、コンセンサスの主軸を分析します
20コモディティ調査アシスタントCommodity Research Assistantコモディティ調査, コモディティレポート, commodity research銘柄名またはコードを入力すると、ファンダメンタルズの需給、フォワードカーブ、資金動向、価格変動要因に関するレポートを作成します
21ディープリサーチDeep Research詳細調査, deep research複雑な金融テーマについて、多段階の詳細調査を実施します(明確化→範囲の設定→並行調査→クロスチェック)
22ファンドの騰落要因分析Fund Performance Attribution Assistantファンドの騰落, ファンドのパフォーマンス要因分析, ファンド要因分析, パフォーマンス要因分析ファンド/ETFの騰落について、保有銘柄の寄与、業界、イベント要因、マクロ要因を分析します
23先物資金フローのモニタリングFutures Fund Flow Monitor先物資金フロー, 先物資金流入・流出, 資金フローのモニタリング建玉金額の変動に基づき、市場全体の資金フローを監視し、T+1/T+5の価格動向を評価します
24先物の主要プレーヤー動向分析Futures Leading Institution Analysis先物の主要プレーヤー, 主要プレーヤーの動向分析, 主要プレーヤーの建玉主要プレーヤーの建玉の買い・売りの増減、ネットポジション、出来高ランキング、建玉の集中度を分析します
25先物調査レポートの見解Futures Research Opinion先物調査レポート, 先物見解, 調査レポートの見解国内の主要機関による調査レポートの見解を集約し、強気・弱気の見解分布とWindのセンチメントスコアを出力します
26機関投資家の保有状況分析Institutional Holdings Insight機関投資家の保有状況, 機関投資家の売買, 主要プレーヤーの保有状況, 13fトップ機関の最新保有銘柄を追跡し、新規取得・全売却・保有増減のランキングとポートフォリオ変更の概要を出力します
27先物の日中変動要因分析Intraday Futures Move Attribution先物の日中急変, 日中急変, 先物変動要因分析日中の出来高・建玉、セクター間の連動、突発ニュースをリアルタイムで検証し、銘柄が急騰・急落した理由を解説します
28金融規制局の行政処分月次レポートNFRA Monthly Enforcement Report金融規制の処分, 行政処分月次レポート, 金融規制局の処分金融規制局による銀行・保険・信託などの機関への行政処分と、その処分理由の傾向を月次で集計します
29非鉄金属セクターの詳細分析Nonferrous Metals Sector Deep Analysis非鉄金属分析, 非鉄金属, 非鉄金属業界の詳細分析銅・アルミニウム・亜鉛・ニッケル・スズ・鉛の6品目について、需給バランス、サプライチェーンの利益、在庫、マクロ要因による価格形成を分析します
30オプション価格計算ツールOption Pricing Calculatorオプション価格, オプション計算ツール, 雪玉型商品の価格算定バニラ、バリア、アジアン、スノーボール/Autocallなどのオプションの理論価格とグリークスを計算します
31オプションボラティリティ分析Option Volatility Insightsオプションボラティリティ, ボラティリティ分析, ボラティリティの詳細分析オプションのIV評価、期間構造、スキュー(Skew)、PCR、ボラティリティサーフェスの異常を診断します
32オプション取引戦略Options Trading Strategiesオプション取引戦略, オプション戦略, オプション組み合わせボラティリティと方向性の分析を組み合わせ、スプレッド、ストラドル、カバードコールなどの組み合わせ案と損益図を提示します
33スライドPPT Generatorppt生成, ppt作成, pptジェネレーター, slides金融調査のテーマや概要に基づき、プロフェッショナルなレイアウトのPPTレポートを自動生成します
34貴金属セクターの詳細分析Precious Metals Sector Deep Dive貴金属分析, 貴金属, 金・銀, 貴金属業界の詳細分析金・銀・プラチナ・パラジウムの4品目について、市況の振り返り、金銀比、資金動向、リース金利を分析します
35証券業界の規制政策ブリーフィングSecurities Regulatory Policy Briefing証券規制ブリーフィング, 規制政策ブリーフィング, 証券業界の規制政策証券監督管理委員会および取引所の最新の規制政策・法令を取得し、要点の要約と一覧を出力します
36株式取引戦略Stock Trading Strategy株式取引戦略分析, 株式戦略, 個別株取引戦略, 保有銘柄戦略保有ポジションの損益、ファンダメンタルズとバリュエーション、テクニカル・定量分析、業界構造、執行とリスク管理を網羅した個別株戦略を提供します

调用方式(Agent 工作流)

  1. 拿到用户问题 -> 决定 Skill:
    • 用户点名 Skill -> 直接传该 Skill 的中文名或英文名到 --skill(脚本会自动归一化并回填英文名);用户说「信用报告」等口语时传 --skill "信用报告" 亦可,CLI 会映射为「信用分析」;
    • 用户没点名但问题明显属于某 Skill(如「核查事实」「公司调研问题清单」「财报点评」)-> 可建议并征询后再指定;
    • 否则不传 --skill,走 auto。
    • 禁止改写用户问句:把用户的原话作为 --prompt 传入即可(如 Can I get a one-pager for [300498]? 原样传入),不要"帮用户组织语言"、不要只提取股票代码、不要翻译或重写。CLI 会在前缀里自动拼接 Skill 标识(如 Using "Company One-Page Investment Memo" skill:),用户问句本身必须保持原样。
  2. 发起调用前用一句话告知用户:Alice 专业 Skill 耗时常为 数分钟到十几分钟(复杂研报、一页纸、可比分析等更久),且可能消耗较多积分;属正常现象,请耐心等待,不要中途取消命令或重复发起相同请求。
  3. 先定位本 skill 目录:下面命令里的 scripts/wind-alice.mjs 是相对当前 SKILL.md 所在的 wind-alice 目录。若当前工作目录不是该目录,先 cd 到该目录再执行。
  4. 执行(任一种写法都可以):
node scripts/wind-alice.mjs --prompt "<USER_QUESTION>" --skill "<中文 Skill 名>"
node scripts/wind-alice.mjs --prompt "<USER_QUESTION>" --skill "<英文 Skill 名>"
  1. 等流式输出结束后,按下方 交付给用户 规则输出;等待期间若终端长时间无新输出,仍应继续等至进程退出,勿误判为卡死。

也可以先列已知 Skill 给用户挑:

node scripts/wind-alice.mjs list-skills

一次性配置

  1. Node.js 18+(自带 fetch)。
  2. 配置 WIND_API_KEY:
  3. 可选:WIND_ALICE_API_URL 覆盖默认接口地址。

安全要求

  • 绝不要输出真实 WIND_API_KEY、Bearer token、config.json 内容或 %USERPROFILE%\.wind-aifinmarket\config.env(或 config)内容。
  • 若需要说明下载方式,只展示 Authorization: Bearer <WIND_API_KEY> 这种占位格式;不要拼出含真实 Key 的 curl、PowerShell 或 HTTP 示例。
  • Alice 返回的报告 URL 可以在当前用户会话中用于交付和下载;写入 README、示例、工单、提交信息等长期材料时使用占位 URL。

文件下载处理

许多 Skill(公司一页纸 / 调研问题清单 / 季报点评 / 市场规模测算 / 可比公司分析 等)会产出可下载的报告 / 数据附件。

CLI 在每次调用结束时直接用 WIND_API_KEY 作 Bearer Token 把附件下载到 .agents/download/ 目录,并把下载结果(已保存路径或失败原因)打到 stderr。

附件清单有两个来源,优先级如下:

  1. 服务端 A2A.PresentFiles 声明(权威):SSE 的 artifact 里带 componentName: "A2A.PresentFiles" 组件时, 以它列出的文件为准——服务端明确说了本次要呈现哪些文件,不多不少。
  2. agentResult.value 正文链接扫描(兜底):仅当整轮 SSE 一个 PresentFiles 组件都没有时才启用, 靠正则从正文里抓 markdown 链接 / 裸 URL / /project/xxx.ext 路径。

CLI 会在下载前把判定过程打到 stderr,附件没下来时看这几行即可定位:

[下载] A2A.PresentFiles 诊断:命中 1 个组件,列出 2 个文件:报告.md, 财务模型.xlsx
[下载] 清单来源:服务端 A2A.PresentFiles 声明(2 个文件)
=== 检测到 2 个可下载文件,正在下载到:<目标目录> ===
- <文件名>
  已保存:<目标目录>\<文件名>

若诊断行显示「命中 N 个组件,但未解析出文件叶子」,stderr 会 dump 组件原始结构(每条最多 4000 字符)供排查。

下载目录解析规则(按优先级):

  1. 用户级:若本 skill 安装在 %USERPROFILE%\.agents(POSIX 下为 ~/.agents)之下(典型如 ~/.agents/skills/wind-alice),下载到 %USERPROFILE%\.agents\download\。
  2. 项目级:否则从 skill 所在目录沿目录向上查找最近的、含有 .agents/ 子目录的祖先目录 P,下载到 P\.agents\download\(典型如 <项目根>\.agents\download\)。
  3. 兜底(用户级):上述都未命中(例如 skill 处于 SVN/Git 源码开发目录、且没人建过项目级 .agents),统一兜底到用户级 %USERPROFILE%\.agents\download\--即与规则 1 同一物理目录。CLI 不会再把文件散落到 process.cwd()。

无论命中哪一条,目录不存在时 CLI 都会按 recursive 方式自动创建,无需用户手工 mkdir;只有当 mkdir 因权限/磁盘等原因失败时,才会作为最终兜底退回 process.cwd(),并在 stderr 打 [warn] 提示。

记忆点:所有 Alice 下载的文件,要么在某个 <...>/.agents/download/ 下,要么在 ~/.agents/download/ 下,可以稳定地"按目录找文件"。

重要事实:

  1. 文件接口与 Agent 接口 共用同一份 WIND_API_KEY(即万得 AIFin Market 提供的 apiKey),CLI 内部自带 Authorization: Bearer <WIND_API_KEY> 走 HTTP GET 下载。
  2. 同名文件冲突会自动追加 (1)、 (2) 等后缀,不会覆盖已有文件。
  3. CLI 不会把 Key 打印到日志;下载结果只出现在 stderr,不会污染 stdout 的 agentResult.value 主体。
  4. 下载失败(401 / 403 / 网络异常等)只会打印失败原因 + 原始 URL,不影响主流程退出码。

调用结束后无需再向用户解释"如何下载";本地下载路径已由 CLI 内联到 stdout 正文中(原文里文件出现在哪,路径就填在哪),不需要在回复末尾再追加提示;只有当 CLI stderr 报"下载失败"时才需要把 URL 与失败原因转告用户排查。


交付给用户

交付契约:正文用 agentResult.value,附件路径已内联在正文中,禁止读附件展示。

正确流程
  1. 从 CLI stdout 提取 agentResult.value: 后的正文(去掉行首前缀),原样呈现给用户;
  2. CLI 已自动把正文中不可点击的 /project/... 附件引用就地替换为本地下载路径(如 D:\...\.agents\download\xxx.md),并过滤 ### …完整报告 标题--不要再向用户复述服务端工作区路径;
  3. 禁止自行添加开场白(如「以下为 XX 的一页纸投资报告」「由 Wind Alice 技能生成」等)——会与正文标题重复;
  4. 禁止标注「agentResult.value(原文)」等内部字段名;
  5. 禁止概括、摘要、改写 agentResult.value 正文(不要把报告浓缩成表格或自行重述要点);
  6. 不要在回复末尾再追加「已保存到:…」之类的附件路径提示--本地路径已在正文中内联展示;
  7. 禁止用 Read / view_files 加载 .agents/download/ 下附件正文展示给用户——agentResult.value 已是面向用户的核心分析摘要,完整 Markdown 附件供用户本地打开查阅。
禁止写法
❌ 错误✅ 正确
开头写「完整 Markdown 已保存至:…」正文先交付 agentResult.value,路径已内联在正文中
再复述「文件保存在:/project/...」CLI 已替换为本地路径;不要再向用户复述服务端路径
在末尾追加「已保存到:D:...」路径已在正文中内联展示,无需末尾再追加
写「agentResult.value(原文):」直接输出正文,不加内部标签
写「以下为 … 一页纸投资报告(由 XX 技能生成)」直接输出正文(正文里通常已有标题)
Read 下载的 .md 全文贴给用户只交付 stdout 摘要(含已内联的附件路径)
stdout 被截断时

若宿主终端截断 stdout,仍只读 agentResult.value 落盘副本(若 CLI 提供);不要改读 .agents/download/ 附件替代交付正文。附件路径已内联在正文中,无需额外处理。


硬性要求

  1. PowerShell 下读取本文档必须显式使用 UTF-8:例如 Get-Content -Encoding UTF8 skills\wind-alice\SKILL.md;若看到中文乱码,先按 UTF-8 重新读取,不能基于乱码内容执行。
  2. --skill 接受中文或英文 Skill 名,及常见口语别名(与 KNOWN_SKILLS / portal 一致)。脚本会按 nameEn -> nameZh -> normalize(nameEn) -> normalize(nameZh) -> 别名表 顺序匹配;命中后按问句语言拼前缀(中文问句用 nameZh,全英文问句用 nameEn)。--prompt 里可以说「信用报告」,但 --skill 应传「信用分析」或别名「信用报告」;不确定时先 list-skills。
  3. Prompt 必须非空:空白或缺失时直接退出码 2,不发请求。
  4. 不得把 Key 打印到日志:脚本仅在 Authorization 头里使用,不会输出到 stdout/stderr。
  5. 流式必须等到结束:CLI 已在父子进程间 await 子进程退出;切勿改成"发完即返"。
  6. 耗时预期与耐心提示:调用前须提醒用户 Alice Skill 可能较慢;执行中不得因等待过久而中断 CLI、改走其它工具或并行重复调用同一任务。
  7. 不要凭空构造 selectedSkillIds / agentCard 之类的旧字段去指定 Skill - 已实测不生效,必须走文本前缀。
  8. 禁止改写用户问句:--prompt 必须是用户的原话,不得"帮用户组织语言"、只提取关键词、翻译或重写。例如用户问 Can I get a one-pager for [300498]?,就必须传 --prompt "Can I get a one-pager for [300498]?",不得改写为 --prompt "300498"。CLI 会自动在前面拼接 Skill 标识前缀(如 Using "Company One-Page Investment Memo" skill:),用户问句本身必须原样透传,服务端才能收到完整的原始问题。
  9. 服务端拒绝受理时按退出码 75 处理,禁止自行重试:服务端会以 HTTP 200 + result.isError 返回拒绝原因(不是 JSON-RPC 的 error 字段)。CLI 命中后会把 服务端原文打到 stderr,并输出 ALICE_BLOCKED_REASON=<points|quota|concurrency|busy> 和 [严重] 指引,退出码 75(临时性失败,非 CLI 故障)。
    • points(积分不足):充值前重试一律无效。禁止立即重试、禁止换 prompt、禁止换 --skill;必须引导用户前往 https://market.windalice.com/#/user/credits 充值, 充值后由用户重新发问。禁止说"稍后重试"或"等任务跑完"——那是 busy / concurrency 的话术。
    • quota:稍后或次日再试,或更换 API Key。
    • concurrency:等该账号下已在执行的任务跑完,再用相同 prompt 重试。
    • busy:等几分钟后用相同 prompt 再试,不要连续重试。
    • 认不出的拒绝文案退出码为 1,CLI 仍会原样打出服务端原文,转告用户即可。
    • 禁止把退出码 75 当成 CLI 故障去排查 Key、网络或改参数重跑。
  10. 交付 gentResult.value 正文(附件路径已内联):正文必须来自 stdout 的 gentResult.value(CLI 已把 /project/ 附件引用就地替换为本地下载路径),禁止概括、摘要、改写;不要在回复末尾再追加附件路径提示(路径已内联在正文中);禁止读取 .agents/download/ 附件内容展示给用户。

更新检查处理

每次有效调用 wind-alice.mjs 结束后,脚本会静默触发后台更新检查:

  • 只记录当前 skill 刚被使用,并后台启动 scripts/update-check.mjs,不阻塞 Alice 主请求收尾。
  • 后台检查会等待短暂 quiet window,避免 skill 正在使用时被更新覆盖。
  • 按安装范围读取 lock,检查远端 HEAD,每日成功态去重;Gitee 源或 skills update 未落盘时改用 npx skills add ... --skill wind-alice 重装。
  • 更新失败、网络不通或无更新时均不输出内容,也不影响本次 Alice 调用。

コメント