DSH 场景案例:AI 个人财务助手。Spring Boot 业务应用 + DSH Java Native 插件,Agent 通过工具读写记账数据,全部汇总由明细实时计算,保证算术一致。
| 模块 |
说明 |
ledger-app |
业务应用(端口 18083):流水 CRUD、预算体系、月报、消费结构分析、AI 面板 SSE 代理 |
ledger-plugin |
DSH Java Native 插件(pluginId=ledger-assistant):注册 5 个工具 + system prompt + PRE_TOOL_USE 审计 Hook |
- 预算体系 7 类:餐饮 2000 / 交通 500 / 购物 1200 / 娱乐 600 / 居住 3500 / 医疗 300 / 学习 400
- 预置 2026-08 / 2026-09 两个月流水,含收入、居住/餐饮/购物/娱乐超支故事线,环比可对比
report(month):总收入/总支出/结余、分类汇总、环比、预算执行与超支标记(全部实时计算)
structure(month):TOP5 支出分类 + 占比 + 单笔最大 3 笔支出
| 工具 |
类型 |
说明 |
add_txn |
写(先确认) |
记一笔收入/支出 |
list_txns |
读 |
按类型/分类/月份查流水 |
monthly_report |
读 |
月度收支报表(含预算执行与环比) |
analyze_structure |
读 |
消费结构分析 |
set_budget |
写(先确认) |
调整分类月度预算 |
mvn package -DskipTests
java -jar ledger-app/target/ledger-app-1.0.0-SNAPSHOT.jar --server.port=18083
bash install_plugin.sh $(pwd)/ledger-plugin/target/ledger-plugin-1.0.0-SNAPSHOT.jar ledger-assistant 1.0.0-SNAPSHOT ledger-plugin-1.0.0-SNAPSHOT.jar 青苔记账
- 页面:http://127.0.0.1:18083 (金融财务设计语言:深墨绿 + 香槟金 + 存折行式卡片)
- Agent 验证:
agent_stream.sh 127.0.0.1:8090 ledger-finance-assistant "这个月钱花哪了?"
- 插件→应用默认走
http://127.0.0.1:18083,可用环境变量 LEDGER_APP_BASE_URL 覆盖