前言¶
DSH 的理念是「一切皆插件」,行情這種高頻、結構化、強時效的數據,是插件很適合做的一類事。已有做法大多是裝一個單獨的行情客戶端,或者讓 Agent 在會話裏憑記憶報數字——前者跟 DSH 的會話和頁面是割裂的,後者沒有穩定數據源,容易給出過時甚至錯誤的價格。
下面介紹 mengmenghao/dsh-stock-quote。它同時補了兩條路徑:一是在 DSH 裏提供股票行情面板和個股詳情,二是給 Agent 兩個工具,讓會話裏能直接查實時行情和 K 線。插件走公開接口,不需要 API key,裝完零依賴直接跑。
這是什麼¶
@liaomenghao/dsh-stock-quote,倉庫 mengmenghao/dsh-stock-quote,維護者 mengmenghao(package.json 裏 author 爲 liaomenghao)。分類爲「聯網工具」。解決的問題是:在 DSH 界面內統一查看自選股行情、瀏覽個股 K 線,並把行情能力作爲工具交給 Agent 調用,避免頁面和工具各說一套數據。
要求 DSH ≥ 0.2.0、Node.js ≥ 20。插件零運行時依賴。
核心功能¶
插件分三部分:
- 「股票行情」頁面:側邊欄入口 + 主區面板,維護自選列表(添加、刪除、手動/自動刷新),A 股、港股、美股同屏。
- 個股詳情:點列表裏的名稱進入,日 K 線(蠟燭圖 + 成交量 + MA5/MA20,60/120/240 日可切換),另有今日分時視圖。
- AI 分析:詳情頁寫下分析要求,用當前 profile 的默認模型生成結論。
- Agent 工具:
stock_quote與stock_search(另有stock_kline),會話裏直接問「茅臺現在多少」。
自選列表存在瀏覽器 localStorage(鍵 dsh-stock-quote.watchlist),默認 sh000001、600519、00700.HK、AAPL。頁面每 30 秒自動刷新一次,可關閉;右上角「刷新」立即取一次。表格展示名稱/代碼、現價、漲跌、漲跌幅、成交量、換手率、行情時間,漲紅跌綠。
個股詳情頁默認是今日分時:逐分鐘價格線、均價線、昨收虛線基線、成交量柱。日 K 線爲前復權日線,蠟燭圖、上下影線、MA5/MA20 折線、成交量柱、右側價格刻度、最新價虛線,週期可切 60 / 120 / 240 日。
AI 分析有「趨勢走向 / 支撐壓力 / 風險點」三個快捷填充,點「開始分析」後答案顯示在輸入框下方,不跳轉。同一只股票可以連續追問,每輪問答排在下方對話線程裏,最多帶最近 6 輪給模型,頁面上最多保留 20 輪,最多記住 30 只股票;記錄按股票存在 localStorage(鍵 dsh-stock-quote.analyses),退出詳情、切換股票、刷新頁面都還在。「清空對話」只清掉當前這隻股票的記錄。
安裝與啓用¶
npx @deepseek-ai/dsh plugin --profile <profile> add @liaomenghao/dsh-stock-quote
裝完重啓 Harness,側邊欄出現「股票行情」入口。package.json 顯示當前版本爲 1.5.2,許可證 MIT。安裝前建議先打開倉庫覈對源碼與許可證,插件以當前 dsh 進程權限運行。
典型用法¶
裝好後,在會話裏直接問行情即可。Agent 側有三個工具:
| 工具 | 參數 | 返回 |
|---|---|---|
stock_quote |
symbols:代碼數組,單次最多 20 個 |
現價、漲跌額、漲跌幅、昨收、開盤、最高、最低、成交量、成交額、換手率、市盈率、總市值,以及該筆行情的交易所時間戳 |
stock_kline |
symbol;days:20–250,默認 60 |
前復權日線(日期/開/高/低/收/量,由舊到新)+ 當前報價 |
stock_search |
keyword:名稱 / 代碼 / 拼音首字母;limit:1–20,默認 8 |
候選列表,每項帶 symbol,可直接傳給 stock_quote |
支持的代碼寫法:600519、sh600519、600519.SH、430047(北交所)、00700、0700.HK、AAPL、BRK.B、usBRK.B。只給公司名時先用 stock_search。
免安裝方式(方法與 DeepSeek Harness 一致):打開社區目錄頁 https://www.skillhub.cn/plugins/mengmenghao/dsh-stock-quote ,按頁面指引安裝,或直接使用上面的命令。社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。
數據來源與內部實現¶
- 實時行情:騰訊
qt.gtimg.cn,GBK 編碼,單次請求可批量取多隻。 - 日 K 線:東方財富
push2his.eastmoney.com,前復權日線;美股按 105/106/107 市場段探測後緩存。 - 代碼搜索:東方財富 suggest 接口。
插件不寫緩存、不落盤(美股市場段除外,僅進程內緩存),每次調用都實時請求上游。頁面通過同源接口取數,與工具共用同一套解析,避免頁面和工具各說一套。路由包括 GET /stock-quote/quotes、/stock-quote/search、/stock-quote/kline、/stock-quote/intraday。「在會話中分析」不經過 HTTP,客戶端用 ctx.sessions.create 建會話、prompt 投遞首條消息,再 uiWorkspace.openSession 切過去。
主要文件:index.js(Host 半:兩個工具、四個面板路由、分析請求組裝)、quote.js(代碼歸一化、行情/K 線/搜索解析、格式化)、client.js(Client 半:側邊欄圖標、自選面板、詳情頁與 K 線圖)、cordis.patch.yml(bundle patch,插入 stock-quote 行)。
配置¶
cordis.patch.yml 裏該行的 config 支持:
| 鍵 | 默認 | 含義 |
|---|---|---|
timeoutMs |
8000 |
單次上游行情/K 線請求超時,範圍 1000–20000 毫秒 |
驗收¶
npm test
跑的是 test/accept-analyze.mjs:用一個最小 React 實現(支持 state、effect、useCallback 記憶化和元素 key 重掛載)把 client.js 真正掛載起來,然後用樁數據驅動界面,逐條斷言「分析」按鈕的行爲,包括列表進詳情並恢復歷史、輸入爲空時禁用、點擊只發一次請求且 body 帶新問題和歷史、結果就地呈現、結果寫入 localStorage 且清空只刪當前股票、切股票不串記錄。npm test 通過 18 項。
它不覆蓋真實瀏覽器渲染、CSS 效果、皮膚/寵物等第三方浮層對點擊的遮擋,這些只能在實際界面裏看。
適用場景與注意¶
適合需要在 DSH 里長期盯自選股、或希望 Agent 能可靠回答行情的開發者。使用時需要注意:
- 行情時間戳是交易所當地時間(A 股
Asia/Shanghai、港股Asia/Hong_Kong、美股America/New_York)。非交易時段返回的是最近一個交易時段的快照,判斷「是否實時」要看這個時間戳,而不是頁面上的「更新於」。 - 分時圖在非交易日展示的是上一個交易日的完整走勢,左上角標註的日期會告訴你數據屬於哪一天。
- A 股成交量的上游單位是「手」、成交額是「萬元」,插件已換算爲股和元;港股與美股上游本身就是股與當地貨幣。
- 只有一個實時行情上游。上游不可達時,工具會把失敗原因放進結果的
unresolved,頁面會顯示錯誤條,都不會返回舊值或猜測值。 - AI 分析消耗模型額度,按次調用;10 分鐘內同一問題的重複點擊會命中頁面內緩存。
- 若界面頂部的皮膚裝飾層蓋住了頁面標題,那是所啓用皮膚(如 maid-atelier)在非會話頁的固定裝飾,宿主的「任務看板」同樣如此;頁頭已按該裝飾的高度留白。
結尾¶
這個插件的價值在於把行情數據接進了 DSH:面板負責看,工具負責讓 Agent 用,兩者共用同一套解析,數據口徑不至於打架。適合做自選股盯盤和帶行情的問答。目錄頁:https://www.skillhub.cn/plugins/mengmenghao/dsh-stock-quote ;源碼:https://github.com/mengmenghao/dsh-stock-quote 。