前言¶
DeepSeek Harness(DSH)採用插件化架構,允許開發者擴展其功能。在處理地理空間數據時,單純的命令行交互往往缺乏直觀性。dsh-geolibre 旨在解決這一問題,它將 GeoLibre 的地圖能力引入 DSH 的 Web GUI,併爲智能體提供了操作實時地圖的工具接口。
是什麼¶
這是一個 DSH 插件(dsh-geolibre),由維護者 baddying 開發,採用 MIT 許可證。它主要做兩件事:一是將 GeoJSON/vector 數據渲染爲交互式 GeoLibre 地圖並同步到會話工程;二是讓智能體通過 Agent 工具來操作這張實時地圖,包括管理圖層、樣式、視圖,以及運行 GeoLibre 算法和 Whitebox WASM 工具。
安裝與啓用¶
安裝需要修改目標 DSH profile 的配置文件。
- 在
package.json中聲明依賴並加入 bundles:
{
"dependencies": { "dsh-geolibre": "0.1.0" },
"dsh": { "profile": { "bundles": ["…", "dsh-geolibre"] } }
}
- 在
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 可以直接調用上述工具與地圖交互。
-
渲染數據:
智能體接收用戶指令,調用geolibre_render_map將 GeoJSON 數據渲染爲地圖。 -
運行算法:
先通過geolibre_map_run(method="listAlgorithms")查找可用算法,再調用geolibre_map_run(method="runAlgorithm", params={...})執行操作,例如對某個圖層做 100km 緩衝。 -
更新視圖或圖層:
調用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 倉庫。