Community研究與資料分析github.com

個人投資助手

本地優先、來源可追溯的個人投資研究助手,使用 Agent Plan、DataPro 與豆包搜尋。

個人投資助手 是什麼?

此技能是一個本地優先的個人投資研究助手,專為支援終端操作與網路連線的 AI 代理(如 Codex 或 Claude Code)設計。它能根據用戶的個人投資偏好,自動初始化一個完整的投資研究網站,其中包括 React 前端、Express 後端、SQLite 資料庫、定時排程器,以及真實的資料提供者(Provider)整合。技能的核心工作流程分為七個階段:檢查當前狀態、收集投資配置、用戶確認、安裝與安全設定、真實服務探測、導入客製化配置、生成首批報告(個股簡評與盤後風險摘要),最後是桌面端瀏覽器驗收。它強調「打開即用」,會為每支關注的股票真實生成兩類報告,並確保所有資料來源(DataPro、豆包搜尋)與 AI 模型(Agent Plan)都經過實際驗證,不使用模擬資料或口頭判斷。此技能支援 GitHub 上的公開 Skill URL 直接觸發,安裝後亦可透過快捷指令(如 `$investment-assistant`)啟動。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add 3494036618-eng/personal-investment-assistant

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

個人投資助手初始化

本 Skill 不是網站設計顧問,也不從零討論頁面方案。倉庫已經提供可運行的 React、Express、SQLite、定時排程器和真實 Provider 接入。本 Skill 的任務是把這套應用按用戶的真實投資偏好配置好,並交付一個打開後已有個性化內容的網站。

遠端 Skill 入口

用戶可能直接透過下面的公開 Skill URL 觸發本流程,而不是預先克隆倉庫或安裝 Skill:

https://github.com/3494036618-eng/personal-investment-assistant/blob/v0.3.0/skills/investment-assistant/SKILL.md

如果目前環境中不存在 {baseDir}/scripts/status.mjs,表示本 Skill 是從遠端 URL 打開的。此時 Codex 或 Claude Code 必須:

  1. 取得完整倉庫 https://github.com/3494036618-eng/personal-investment-assistant,不能只下載 SKILL.md。
  2. 將 {baseDir} 設為倉庫中的 skills/investment-assistant 目錄。
  3. 確認 {baseDir}/scripts/、{baseDir}/references/ 和倉庫根目錄 app/ 均存在後,再進入階段 0。
  4. 已有同名目錄時先核對 Git remote 和工作區狀態,不覆蓋用戶改動,不建立第二套應用。
  5. 目前用戶端是 Codex 時,在倉庫根目錄執行 npm run skill:install:codex;目前用戶端是 Claude Code 時執行 npm run skill:install:claude。安裝只寫入對應用戶端的個人 Skill 目錄。
  6. 安裝完成後直接使用目前倉庫中的 Skill 繼續初始化,不把「Skill 已複製」說成「網站已經可用」。

用戶可直接把這句話交給支援連網和終端操作的 Codex 或 Claude Code:

幫我初始化個人投資助手:https://github.com/3494036618-eng/personal-investment-assistant/blob/v0.3.0/skills/investment-assistant/SKILL.md

已經安裝後,Codex 可透過 $investment-assistant 觸發,Claude Code 可透過 /investment-assistant 觸發;兩種入口執行同一套初始化和驗收規則。

完成標準

只有以下事項全部完成,才可以說「已經可以使用」:

  1. 已確認至少一隻真實證券的名稱、程式碼和市場。
  2. 已逐隻確認用戶關注方向,保留用戶原詞。
  3. 已確認盤後自動監控是否啟用;啟用時已確認時間、日期和時區。
  4. Agent Plan Key 已透過本機私密配置寫入,未出現在聊天、原始碼或日誌。
  5. DataPro、豆包搜尋和 Agent Plan 模型的真實探測全部成功。
  6. 完整前後端已安裝並啟動。
  7. 用戶配置已匯入,首頁不是空白關注列表。
  8. 用戶同意消耗真實額度後,每支股票至少產生一份個股簡評和一份盤後風險摘要。
  9. 兩類報告均有實質正文、對應來源和獨立歷史記錄。
  10. 桌面端核心路徑透過瀏覽器檢查。

任一項未完成,都要準確說明停在哪一步、已經完成什麼以及下一步是什麼,不得用舊結果、Mock 資料或口頭判斷代替。

工作原則

  • 不討論網站方案:現成網站、頁面結構和功能邊界已經確定,只收集使用它所需的投資配置。
  • 先確認配置再呼叫:先給用戶展示結構化配置摘要,用戶確認後才安裝、匯入和消耗真實服務額度。
  • 真實證券不猜測:名稱、程式碼或市場不確定時先核驗。無法核驗就請用戶補充,不能映射到相似公司。
  • 偏好逐隻綁定:不同股票可以有完全不同的關注方向;所有偏好原詞進入 Profile,不能只使用預設關鍵詞。
  • 打開即有內容:預設初始化會為每支股票產生兩類首批報告。只有用戶明確要求暫不產生時,才使用空報告模式。
  • 三個能力使用同一 Agent Plan Key:按 Agent Plan Harness 目前配置,同一個 Key 預設用於模型、DataPro 和豆包搜尋。不得要求用戶再提供一枚獨立搜尋 Key。
  • 來源與正文綁定:DataPro 負責結構化專業資料;豆包搜尋負責最新公開資訊;Agent Plan 模型只基於本次證據產生並審校。
  • 兩類報告職責不同:個股簡評回答「公司目前怎麼樣」;盤後風險摘要回答「本次檢查視窗內出現了什麼新增變化和風險訊號」。
  • 敏感資訊不回顯:Key 只能透過隱藏終端輸入、環境變數或許可權為 0600 的本機憑證檔案配置。
  • 每一步都解釋:說明剛完成什麼、目前處於哪一步、下一步會做什麼、是否會下載依賴或消耗額度。

流程總覽

階段動作完成標誌
0檢查目前狀態確認首次初始化、恢復運行或故障排查
1收集投資配置股票、程式碼、市場、偏好和監控安排完整
2用戶確認配置用戶明確同意結構化摘要
3安裝與私密配置正式應用安裝完成,Key 安全寫入
4真實服務探測三個 Provider 目前均可用
5匯入個人化配置首頁可見用戶股票和關注方向
6產生首批報告每支股票有兩類真實報告和歷史
7瀏覽器驗收與交付用戶可直接打開網站使用

階段 0:檢查目前狀態

先檢查 Node.js、Skill 檔案、運行時和網站狀態:

node {baseDir}/scripts/status.mjs
  • 應用未安裝:進入階段 1。
  • 已安裝但未運行:仍先確認用戶配置,再決定啟動或更新。
  • 已運行:讀取現有關注列表和配置;用戶只是新增標的時,不清空原資料。
  • ready=false:後續必須重新執行真實 doctor,不能僅憑程序存活判斷後端可用。

不要詢問用戶網站原始碼目錄,也不要建立另一份專案。

階段 1:收集投資配置

採用一到兩問一輪的方式,避免把長表單一次拋給用戶。至少收集:

  1. 證券名稱。
  2. 證券程式碼。
  3. 市場:CN、HK 或 US。
  4. 這隻證券的關注方向,建議 2 至 6 項,但以用戶真實需求為準。
  5. 是否啟用盤後自動檢查。
  6. 啟用時的執行時間、執行日和時區。

可以先問:

你希望關注哪些股票?請告訴我證券名稱、程式碼和市場。隨後我會逐隻確認你真正關心的方向,並把這些偏好直接寫進網站。

關注方向不能被固定詞表限制。以下只是幫助用戶表達,不是允許列表:

  • 市場與技術:價格趨勢、成交量、波動、關鍵價位、資金變化。
  • 經營與財務:收入、利潤、現金流、毛利率、研發、分紅、負債。
  • 公司事件:公告、訂單、產品、產能、管理層、訴訟、監管。
  • 行業與外部環境:競爭、政策、原材料、匯率、利率、海外風險。
  • 用戶自己的自然語言,例如「高端酒批價與渠道庫存」或「海外大客戶認證進度」。

複合偏好可以原樣保留。應用會在檢索時進行語義拆解和覆蓋判斷,不要為了適配預設關鍵詞擅自改寫。

證券核驗

優先使用 DataPro 查詢名稱、程式碼和市場對應關係。直接工具不可用時,不要猜測;在真實服務就緒後,以首份報告中的證券歸屬校驗作為阻斷門檻。中港股程式碼保留交易所常用格式,美股程式碼使用公開 Ticker。

階段 2:確認結構化配置

把討論結果整理成簡短摘要,讓用戶明確確認。範例:

初始化配置

1. 貴州茅台|600519|CN
   關注:盈利能力、品牌優勢、渠道庫存、行業動態
   盤後監控:工作日 18:00,Asia/Shanghai

2. Apple|AAPL|US
   關注:iPhone 銷量、服務業務、AI 產品進展
   盤後監控:關閉

確認後我會安裝並啟動現成網站,匯入這些配置,並為每支股票真實產生一份個股簡評和一份盤後風險摘要。該步驟會呼叫 DataPro、豆包搜尋和 Agent Plan 模型並消耗套餐額度。

只有用戶明確確認後才繼續。用戶修改某一項時,只更新對應項並再次給出完整摘要。

將確認結果寫入許可權為 0600 的臨時 Profile。格式:

{
  "stocks": [
    {
      "name": "貴州茅台",
      "code": "600519",
      "exchange": "CN",
      "focus": ["盈利能力", "品牌優勢", "渠道庫存", "行業動態"],
      "monitor": {
        "enabled": true,
        "schedule_time": "18:00",
        "schedule_days": ["Mon", "Tue", "Wed", "Thu", "Fri"],
        "timezone": "Asia/Shanghai"
      }
    }
  ]
}

Profile 不得包含 API Key。臨時檔案用完後使用 --consume-profile 刪除。

階段 3:安裝應用並配置 Agent Plan

說明該步驟會複製正式應用、安裝 npm 依賴、運行檢查和生產構建,然後執行:

node {baseDir}/scripts/install.mjs

缺少憑證時,在互動式終端執行:

node {baseDir}/scripts/configure.mjs

configure.mjs 只詢問一枚 Agent Plan API Key,並安全寫入:

~/.config/investment-assistant/credentials.env

檔案許可權必須為 0600。不要要求用戶把 Key 發到聊天裡,不要把 Key 寫入 Profile、.env.example、README 或原始碼。

階段 4:真實探測三個 Provider

執行:

node {baseDir}/scripts/doctor.mjs --live

必須看到:

  • agent_plan_model: ok
  • datapro: ok
  • web_search: ok

這一步會產生少量真實呼叫。任一失敗時按 references/troubleshooting.md 處理並停在此處;不要繼續產生報告,也不要把「已配置 Key」說成「後端可用」。

階段 5:匯入用戶配置

啟動網站並匯入已確認的 Profile:

node {baseDir}/scripts/start.mjs
node {baseDir}/scripts/profile.mjs --input /私密Profile絕對路徑.json --consume-profile

匯入是按市場與證券程式碼冪等更新。已有股票保留歷史,重複執行不會建立重複標的。

檢查首頁至少滿足:

  • 每支用戶證券均存在。
  • 名稱、程式碼和市場正確。
  • 卡片顯示用戶填寫的關注方向。
  • 盤後設置與用戶確認一致。

階段 6:產生首批個人化報告

用戶已經在階段 2 同意消耗額度時,執行全量首批產生:

node {baseDir}/scripts/acceptance.mjs --all --seed

--seed 對每支股票產生:

  1. 一份個股簡評。
  2. 一份盤後風險摘要。

並自動檢查:

  • 兩類報告擁有不同 ID 和獨立證據快照。
  • 兩類報告不重複使用同一連網 URL。
  • 個股簡評含可核驗的核心財務 DataPro 證據。
  • 正文引用的 evidence ID 都存在。
  • 連網來源有真實標題、發布方、URL 和摘要。
  • 用戶偏好逐項存在覆蓋狀態。
  • 兩類報告分別進入對應歷史記錄。

如果用戶明確要求暫不產生首批報告,可以只做基礎驗收:

node {baseDir}/scripts/acceptance.mjs --all

此時必須說明「網站已配置,但報告區仍可能為空」,不能宣稱已經達到打開即有內容。

最短的一鍵初始化命令是:

node {baseDir}/scripts/onboard.mjs \
  --profile /私密Profile絕對路徑.json \
  --consume-profile

該命令會安裝、配置、真實探測、啟動、匯入並預設產生首批報告。只有用戶明確要求不產生時才添加 --skip-initial-reports。

階段 7:桌面端瀏覽器驗收

打開腳本輸出的本地地址,預設:

http://127.0.0.1:8788

按真實用戶路徑檢查:

  1. 首頁不是空白,所有證券和關注方向可見。
  2. 打開「個股簡評」先顯示已儲存首份報告。
  3. 正文是「市場表現、經營與財務、關注方向、後續觀察」,不是欄位拼接。
  4. 引用區與正文編號對應,連網來源可打開,DataPro 來源不顯示 trace。
  5. 打開「盤後風險摘要」顯示獨立報告,不複用簡評正文或來源。
  6. 盤後設定可儲存,「立即執行一次」能產生新記錄。
  7. 自動監控啟用時,下一次執行時間正確;排程服務狀態正常。
  8. 歷史記錄包含所有已產生報告。
  9. 頁面無溢出、遮擋、明顯換行異常或主控台錯誤。

瀏覽器頁面可見不等於真實後端可用;只有真實 doctor、報告產生和瀏覽器路徑三者都通過,才能交付。

個股簡評與盤後風險摘要的固定邊界

個股簡評

回答「這家公司目前怎麼樣」,使用目前行情、最新已揭露財務和與用戶關注方向相關的公開材料。固定結構:

  • 摘要:精簡結論,不拼接所有正文。
  • 市場表現。
  • 經營與財務。
  • 關注方向。
  • 後續觀察。

盤後風險摘要

回答「這次檢查視窗內發生了什麼」,使用當日市場異動、上次檢查後的新增公司事件以及近期外部風險背景。固定結構:

  • 摘要:風險變化與最重要事實,不複述所有欄目。
  • 市場異動。
  • 公司事件。
  • 外部風險。
  • 後續觀察。

沒有某類合格證據時可以省略對應欄目,但不能填充「沒有查到」「繼續觀察」等空泛句。沒有新增風險事件不等於公司沒有風險;仍應儲存本次可稽核結果。

故障恢復

  • 網站未啟動:運行 status.mjs,再運行 start.mjs。
  • ready=false:重新運行 doctor.mjs --live。
  • 新股票沒有內容:確認 Profile 匯入成功,再對該股票執行 acceptance.mjs --stock 程式碼 --seed。
  • 定時任務未執行:檢查監控開關、日期、時間、時區、排程服務狀態和執行記錄。
  • 報告產生失敗:保留具體錯誤和診斷日誌,按 Provider、證券歸屬、證據覆蓋或模型審校問題處理,不關閉校驗。
  • 更新應用:先備份,再停止、安裝、啟動和重新執行 doctor;資料庫與憑證不隨應用更新刪除。

詳細配置見 references/setup.md,驗收規則見 references/acceptance.md,來源規則見 references/evidence-policy.md,排障見 references/troubleshooting.md。

最終交付說明

最終回覆必須明確列出:

  1. 網站地址和目前程序狀態。
  2. 已匯入的證券、市場和關注方向。
  3. 每支證券的盤後監控開關、時間、日期和時區。
  4. Agent Plan 模型、DataPro、豆包搜尋的真實探測結果。
  5. 每支證券是否已經產生個股簡評和盤後風險摘要。
  6. 兩類歷史記錄和排程狀態是否通過。
  7. 實際執行過的檢查、測試、構建和瀏覽器驗收。
  8. 未完成項、外部依賴和仍需人工核對的風險。

不要只說「初始化完成」。用戶需要知道現在能做什麼、哪些結果已經由真實呼叫驗證、哪些仍未驗證。

相關技能