dsh-geolibre:爲 DeepSeek Harness 接入 GeoLibre 交互式地圖

前言

DeepSeek Harness(DSH)採用插件化架構,允許開發者擴展其功能。在處理地理空間數據時,單純的命令行交互往往缺乏直觀性。dsh-geolibre 旨在解決這一問題,它將 GeoLibre 的地圖能力引入 DSH 的 Web GUI,併爲智能體提供了操作實時地圖的工具接口。

是什麼

這是一個 DSH 插件(dsh-geolibre),由維護者 baddying 開發,採用 MIT 許可證。它主要做兩件事:一是將 GeoJSON/vector 數據渲染爲交互式 GeoLibre 地圖並同步到會話工程;二是讓智能體通過 Agent 工具來操作這張實時地圖,包括管理圖層、樣式、視圖,以及運行 GeoLibre 算法和 Whitebox WASM 工具。

安裝與啓用

安裝需要修改目標 DSH profile 的配置文件。

  1. 在 package.json 中聲明依賴並加入 bundles:
{
  "dependencies": { "dsh-geolibre": "0.1.0" },
  "dsh": { "profile": { "bundles": ["…", "dsh-geolibre"] } }
}
  1. 在 cordis.patch.yml 中配置插件參數(通常需要指定 Python 環境):
- id: geolibre
  config:
    geolibreEnv: ""   # 留空則自動探測,否則需顯式指定 geolibre 包的安裝目錄
    python: "python"  # 默認 python 可執行文件

前置依賴:
- Node.js >= 20
- Python 3(需安裝 geolibre 包,可通過 pip install geolibre 安裝)

核心功能

插件在宿主側提供四個 Agent 工具,並在瀏覽器側實現了地圖交互界面。

1. 宿主側 Agent 工具

  • geolibre_render_map:接收 GeoJSON 數據(文本/本地文件/URL),將其渲染爲地圖並同步到當前會話工程。
  • geolibre_map_status:查詢實時地圖會話狀態,包括圖層清單、可見性、當前視圖和連接狀態。
  • geolibre_map_run:向已就緒的地圖發送命令並等待結果。支持的命令包括:getView、getCenter、getBounds、flyTo、fitBounds、zoomToLayer、identify、getLayerFeatures、getSelectedFeatures、getDrawnFeatures、listAlgorithms、runAlgorithm、runModelBuilder、listWhiteboxTools、runWhiteboxTool、toImage 等。
  • geolibre_map_update:對工程或圖層進行整體或局部更新。支持整體替換工程、追加圖層、刪除/重命名/顯隱/改樣式圖層、移動視圖等操作。

2. 瀏覽器側實現

  • 註冊「地圖」側邊欄 tab,內嵌 GeoLibre 應用。
  • 充當 Host(宿主進程)與 iframe 中 GeoLibre 應用之間的雙向中繼,通過 geolibre:load-project、geolibre:command、state 等消息協議進行通信。
  • GeoLibre Web App 被同源本地託管在 /dsh-geolibre/app/*,無需依賴外部 CDN。

典型用法

Agent 可以直接調用上述工具與地圖交互。

  1. 渲染數據:
    智能體接收用戶指令,調用 geolibre_render_map 將 GeoJSON 數據渲染爲地圖。

  2. 運行算法:
    先通過 geolibre_map_run(method="listAlgorithms") 查找可用算法,再調用 geolibre_map_run(method="runAlgorithm", params={...}) 執行操作,例如對某個圖層做 100km 緩衝。

  3. 更新視圖或圖層:
    調用 geolibre_map_update 來更新地圖視圖(如移到上海)或更新圖層樣式與數據(如顯示所有省會城市)。

注意事項與開發

  • 工程狀態來源:工程和圖層狀態以 Host 進程內的會話工程爲單一事實來源。
  • 運行期產物:工作區內的演示工程(.geolibre-maps/)是運行期產物,不會隨包發佈。
  • 刷新機制:「地圖」tab 頂部的刷新按鈕會重新掛載 iframe 並載入 Host 當前工程。
  • 開發命令:
  npm install      # 安裝開發依賴
  npm test         # 冒煙測試(純 Node 檢查 + 可選 Python 字節編譯)
  npm run prepack  # 發佈前語法檢查

短結尾

dsh-geolibre 爲 DSH 提供了可視化的地圖操作能力,結合 GeoLibre 的處理算法與 Whitebox WASM 工具,適合需要在智能體工作流中進行地理空間分析的場景。更多細節可參考其 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜