Hanai Worth · 值见
价格有报价,价值靠研究。
Hanai Worth · 值见 是以 DeepSeek Harness 为 Agent 内核的本地优先 A 股价值研究工作台。它将旧版客户端按原有信息架构迁移到 React:保留“今日市场、自选与发现、大师研判、专家中心、设置与诊断”五个一级页面以及个股、研判详情,不重新发明页面和业务语义。DeepSeek Harness(DSH)负责模型、Agent、工具、Session、流式事件和会话持久化;Hanai Worth 负责投资业务、研究资料、不可变报告快照和全部产品界面。
品牌中的两条趋势线在证据点形成金叉:价格给出市场报价,研究帮助看见价值。每一份研判,都应能回到证据、方法与上下文。
界面预览
黑夜模式保留原客户端的信息密度、页面位置与 A 股涨红跌绿语义;市场热力图由 ECharts treemap 绘制,面积对应板块成交额。

亮色模式只替换语义色彩 token,侧栏、顶栏、卡片、表格和图表的位置与尺寸保持不变。

个股详情恢复旧版左右布局:左侧为默认日 K、行情快照和基本面,右侧为五维雷达与独立价值曲线;金线是供应商大师价值序列,蓝线是股价,红/绿带分别表示高估与低估区间。

核心体验
- 今日市场:按旧版顺序展示六大指数、市场宽度,以及左侧 ECharts 行业/概念
treemap与右侧四类榜单;面积代表成交额,颜色代表涨跌幅。 - 自选与发现:保留分组管理、添加/移动/删除、三态排序、加入日期、加入以来表现和行情新鲜度。
- 大师研判:保留研判列表、筛选、执行过程、失败态、归档信息与报告默认视图;每次研判绑定独立工作区和持久 DSH Session。
- 专家中心:按旧版两列信息卡展示段永平、查理·芒格、沃伦·巴菲特和混江龙,不增加人物营销入口。
- 设置与诊断:保留 Agent、数据源、本地存储和关于声明;在原页面内增加 DSH Credentials 管理的 DeepSeek API Key 与模型状态。
- 个股详情:从全局搜索、自选或榜单进入,保留 ECharts 分时、日/周/月 K 线、五维雷达和独立价值曲线,以及旧版行情、基本面和估值字段。
- 报告后继续对话:报告
ready后默认仍展示报告;用户可切换到“继续对话”,在同一个dshSessionId中和生成报告的大师追问,不复制消息或另建会话。 - 普通亮色/黑夜模式:两套主题只替换语义色彩 token,页面 DOM、文案、尺寸、顺序、图表数据和业务色保持一致。
- Hash 深链接:
#/dashboard、#/watch、#/judgements、#/personas、#/settings以及个股/研判详情均可刷新、前进、后退和直接打开。 - 完全自有界面:使用 React 18、DSH Slot/Runtime 和 CSS Modules;不显示或复用 DSH 原生聊天 UI。
架构

flowchart LR
U["用户"] --> W["Hanai React Workbench\nshell.overlay"]
W --> R["/hanai Connection RPC"]
W --> C["DSH Credentials / Models"]
W --> S["DSH Session Runtime"]
R --> H["Hanai Host Service"]
H --> D["SQLite / Reports / Masters"]
H --> M["Eastmoney / Tencent / GuruFocus"]
H --> S
S --> A["DSH Agent + Tools"]
A --> L["DeepSeek Models"]
S --> P["DSH Session Persistence"]
关键边界:
- DSH 是聊天与 Agent 的唯一事实源;Hanai 不建立第二套
messages或turns表。 - Hanai SQLite 只保存自选、证券主数据、研判索引、报告版本和 opaque
dshSessionId。 - 报告是 Hanai 封存的业务快照;工作区
REPORT.md只是 Agent 可写的生成副本。 - 浏览器不接触文件系统或 SQLite;全部业务写入经由同源
/hanaiRPC。
运行要求
- Node.js
^22.19.0或>=24.0.0 - pnpm
11.7.0 - DeepSeek Harness
0.1.0-rc.5至<0.2.0;推荐 CLI、Web App 与 Hanai 使用同一 rc 版本 - 一个 DeepSeek API Key(只在实际运行 Agent 时需要)
DSH 仍处于 pre-release,rc 之间不承诺兼容。仓库把 Host、Client 和 profile 装配都纳入兼容性检查,但升级前仍应运行完整门禁。
从源码安装
git clone git@github.com:hancao97/hanai-investment-dsh.git
cd hanai-investment-dsh
pnpm install
pnpm run build
pnpm run profile:install -- --package .
pnpm run profile:verify
dsh --profile hanai-investment
安装器会创建或安全迁移独立的 hanai-investment Profile。最终 Bundle 顺序固定为 DSH Base、DSH Web App、Hanai;只有 hanai-investment-dsh 是 Profile dependency。Base 与 Web App 必须由当前 DSH CLI 的 installation fallback 提供,不能再用 dsh plugin add @deepseek-ai/dsh-web-app 安装到 Profile,否则相同版本的 DSH runtime 仍可能被加载成两个模块实例。安装器会拒绝修改 web、headless 等保留 Profile,也会在目标 Profile 含无关依赖或 Bundle 时停止。
通用 DSH Web 仍按原方式启动:
dsh web
两者可以使用不同端口同时运行。详见 ADR-0003。
安装发布包或修复旧 Profile
在包含本仓库安装脚本的发布目录中,把 --package 换成 npm 包名即可。重复执行是安全的,也会迁移早期错误安装过 Web App dependency 的 Profile:
pnpm run build
pnpm run profile:install -- --package hanai-investment-dsh
pnpm run profile:verify
dsh --profile hanai-investment
迁移前请先停止正在运行的 dsh --profile hanai-investment 进程。不要手工执行 dsh plugin ... add @deepseek-ai/dsh-web-app;它会重新引入 Profile-local DSH runtime shadow。
数据与隐私
Hanai 业务数据默认写入:
~/.hanai-investment-dsh/
├── db/hanai.sqlite
├── cache/
├── judgements/<id>/workspace/
└── judgements/<id>/reports/<version>/
新版不会检测、读取、导入、修改或删除旧版数据目录。首次启动会建立一套空数据库,自选和研判需要重新创建。
以下内容仍由当前 $DSH_HOME 管理:
- DeepSeek Key 与模型设置;
- Session 事件、消息、工具历史;
- 聊天附件和 Profile 安装状态。
Hanai 数据根默认权限为 0700,普通数据文件为 0600。API Key 是 write-only secret:页面提交后清空输入,RPC 不返回明文,日志和报告也不得包含它。
行情与来源语义
数据源必须把“真实值”和“可用性”一起交给 UI:
- 东方财富实时集群可用时标记 fresh;
- Node TLS 环境被实时集群拒绝时,非历史行情降级到东方财富延迟源;
- 分时和 K 线在必要时降级到腾讯行情;
- 最近成功快照标记 stale,完全不可用则显示 unavailable;
- 缺失值始终显示为
—,绝不解释成0; - 页面不合成不存在的指数走势,也不把延迟或缓存数据标成 LIVE。
GuruFocus 接口仅作为个人研究原型使用,遵循页面声明的来源、缓存时间与再分发限制。生产或商业部署应替换为有正式授权和 SLA 的数据供应商。
开发与验证
pnpm run typecheck
pnpm run test
pnpm run build
pnpm run pack:check
一键执行全部门禁:
pnpm run check
门禁覆盖:
- Provider 解析、降级、缓存和证券同步;
- SQLite migration、事务、权限和数据隔离;
- 报告校验、修复、原子封存、哈希与版本;
- DSH Session 报告/普通聊天生命周期;
- 自绘聊天的格式化、pending、queue 和交互;
- DSH Client ModuleLoader 单文件协议;
- npm allowlist、入口、source map、大师资产与旧数据路径硬隔离。
真实装配验证使用临时 DSH_HOME 安装 hanai-investment Profile,再以随机 loopback 端口启动 Host/Web;不会触碰用户的官方 web Profile。
完整的已验证启动步骤、首次设置、浏览器矩阵和故障排查见 启动与验收报告。逐页功能与布局约束见 客户端迁移与验收基线。
目录结构
packages/
├── contracts/ JSON-safe Host/Client 合约
├── domain/ SQLite、报告、行情、估值、证券与自选领域逻辑
├── host/ Cordis Host、/hanai RPC、DSH Session 编排
├── client-workbench/ 全屏 React 产品工作台
├── client-chat/ Hanai 自绘 DSH Session 对话
└── masters/ 四位大师的 Skill 与参考资料
tooling/
└── dsh-client-bundle/ 树外 DSH Client closure 构建适配器
scripts/ profile 安装/校验与发布门禁
docs/ 架构与 ADR
当前边界
shell.overlay是 DSH AppFrame 的全屏插件画布,不是弹窗、iframe 或命令行 Shell。它让 Hanai 在不 fork DSH 的前提下拥有完整页面;Workbench 通过location.hash提供页面深链接,不要求 DSH 增加通用 Router Slot。- DSH 尚未发布稳定的树外 Client Plugin 构建 SDK,因此仓库维护了一个最小、版本锁定的 bundler adapter。
- DSH Session 删除与跨版本迁移能力仍有限;备份持续对话时,需要同时保留 Hanai 数据根和 DSH Session 数据。
- 本项目是研究辅助工具,不构成投资建议,不承诺数据实时性、完整性或投资收益。
License
客户端 bundle 内联依赖的许可证与声明见 THIRD_PARTY_NOTICES.md。
No comments yet. Be the first to write one.