面向 DeepSeek Harness 的本地优先 A 股研究工作台:行情看板、自选股、估值、四个投资智能体、带版本的报告,以及报告后持续对话。
60/100
综合分
118
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add hancao97/hanai-investment-dsh该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/20) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包hanai-investment-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 17:40:42
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 55 处,展示前 41 条)
- 写入本地文件packages/domain/src/database.ts:126
if (existsSync(path)) chmodSync(path, 0o600) - 读取本地文件packages/domain/src/database.ts:126
if (existsSync(path)) chmodSync(path, 0o600) - 写入本地文件packages/domain/src/database.ts:131
chmodSync(path, 0o600) - 写入本地文件packages/domain/src/expert-chats.ts:23
mkdirSync(workspace, { recursive: true, mode: 0o700 }) - 写入本地文件packages/domain/src/expert-chats.ts:24
chmodSync(workspace, 0o700) - 删除本地文件递归packages/domain/src/expert-chats.ts:33
rmSync(directory, { recursive: true, force: true }) - 发起网络请求packages/domain/src/http.ts:85
const response = await client.request(url, { ...request, method: 'GET' }) - 发起网络请求packages/domain/src/http.ts:116
const response = await client.request(url, { - 写入本地文件packages/domain/src/paths.ts:61
mkdirSync(directory, { recursive: true, mode: 0o700 }) - 写入本地文件packages/domain/src/paths.ts:63
chmodSync(directory, 0o700) - 读取本地文件packages/domain/src/paths.ts:69
if (lstatSync(directory).isSymbolicLink()) { - 写入本地文件packages/domain/src/reports.ts:45
mkdirSync(workspace, { recursive: true, mode: 0o700 }) - 写入本地文件packages/domain/src/reports.ts:46
chmodSync(workspace, 0o700) - 写入本地文件packages/domain/src/reports.ts:59
writeFileSync(target, content, { encoding: 'utf8', mode: 0o600 }) - 读取本地文件packages/domain/src/reports.ts:65
if (!existsSync(path)) throw new ReportValidationError('report-missing', 'Agent 未生成 REPORT.md') - 读取本地文件packages/domain/src/reports.ts:66
const content = readFileSync(path, 'utf8').trim() - 读取本地文件packages/domain/src/reports.ts:89
if (existsSync(targetDirectory)) return this.readExistingSeal(judgement, version, targetDirectory) - 删除本地文件递归packages/domain/src/reports.ts:90
rmSync(stagingDirectory, { recursive: true, force: true }) - 写入本地文件packages/domain/src/reports.ts:91
mkdirSync(stagingDirectory, { recursive: true, mode: 0o700 }) - 写入本地文件packages/domain/src/reports.ts:94
writeFileSync(reportPath, validated.content, { encoding: 'utf8', mode: 0o600 }) - 写入本地文件packages/domain/src/reports.ts:113
writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 }) - 读取本地文件packages/domain/src/reports.ts:136
return readFileSync(absolute, 'utf8') - 读取本地文件packages/domain/src/reports.ts:145
return existsSync(this.workingReportPath(judgementId)) - 删除本地文件递归packages/domain/src/reports.ts:152
rmSync(directory, { recursive: true, force: true }) - 读取本地文件packages/domain/src/reports.ts:163
if (!existsSync(reportPath) || !existsSync(manifestPath)) throw new Error('既有报告版本不完整,拒绝覆盖') - 读取本地文件packages/host/src/service.ts:437
if (existsSync(target)) { - 读取本地文件packages/host/src/service.ts:438
for (const entry of readdirSync(target)) { - 删除本地文件递归packages/host/src/service.ts:439
rmSync(resolve(target, entry), { recursive: true, force: true }) - 执行外部命令来自配置/变量packages/host/src/service.ts:910
const child = spawn(invocation.command, invocation.args, { - 读取本地文件packages/host/src/service.ts:937
stat = lstatSync(path) - 读取本地文件packages/host/src/service.ts:946
for (const entry of readdirSync(path)) { - 读取本地文件packages/host/src/service.ts:965
if (existsSync(normalizedRoot) && lstatSync(normalizedRoot).isSymbolicLink()) { - 读取本地文件packages/host/src/service.ts:965
if (existsSync(normalizedRoot) && lstatSync(normalizedRoot).isSymbolicLink()) { - 读取本地文件packages/masters/src/index.ts:100
const skill = readFileSync(join(assetsRoot, theme.id, 'SKILL.md'), 'utf8') - 读取本地文件packages/masters/src/index.ts:109
const packagedDefaultPrompt = existsSync(openaiPath) - 读取本地文件packages/masters/src/index.ts:110
? parseOpenaiDefaultPrompt(readFileSync(openaiPath, 'utf8')) - 读取本地文件packages/masters/src/index.ts:133
const found = candidates.find(candidate => existsSync(candidate)) - 读取本地文件packages/masters/src/index.ts:157
if (!existsSync(join(source, 'SKILL.md'))) throw new Error(`大师能力包缺少 SKILL.md:${master.id}`) - 写入本地文件packages/masters/src/index.ts:158
mkdirSync(skillDirectory, { recursive: true, mode: 0o700 }) - 写入本地文件packages/masters/src/index.ts:165
writeFileSync(agentsPath, agentsDocument(master, mode), { encoding: 'utf8', mode: 0o600 }) - 读取本地文件packages/masters/src/index.ts:170
const stat = lstatSync(source)
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-settings-controller@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-app-boot@deepseek-ai/dsh-client-connection给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
5 张 · 点击查看大图功能亮点
- 行情看板
- 自选股管理
- 估值分析
README
由 DeepSeek 最新模型翻译生成Hanai Worth · 值见
价格有报价,价值靠研究。
Hanai Worth · 值见——以向上 K 线、MACD 金叉与证据点构成的价值研究品牌图
Hanai Worth · 值见 是以 DeepSeek Harness 为智能体内核的本地优先 A 股研究工作台。它把市场全景、自选估值、个股行情与 K 线观察、大师方法论研判、专家开放对谈、报告归档和持续追问串成一条完整研究链路,帮你从「发现一家公司」走到「形成并持续验证自己的判断」。
DeepSeek Harness(DSH)负责模型、智能体、工具、会话、流式事件和会话持久化;Hanai Worth 负责证券与估值数据、自选分组、研究资料、不可变报告快照和全部产品界面。产品包含「今日市场、自选与发现、大师研判、专家对谈、专家中心、设置与诊断」六个一级页面,以及个股、研判和对谈详情页。
插件包名为 hanai-investment-dsh,独立 DSH 配置档名为 hanai-investment;安装和启动命令使用这两个名称。当前已验证的 DSH 版本为 0.2.1-rc.2。
品牌中的两条趋势线在证据点形成金叉:价格给出市场报价,研究帮助看见价值。每一份研判,都应能回到证据、方法与上下文。
展开完整文档(README 剩余 1 节)
Hanai Worth · 值见 价格有报价,价值靠研究。 Hanai Worth · 值见——以向上 K 线、MACD 金叉与证据点构成的价值研究品牌图 Hanai Worth · 值见 是以 DeepSeek Harness 为智能体内核的本地优先 A 股研究工作台。它把市场全景、自选估值、个股行情与 K 线观察、大师方法论研判、专家开放对谈、报告归档和持续追问串成一条完整研究链路,帮你从「发现一家公司」走到「形成并持续验证自己的判断」。 DeepSeek Harness(DSH)负责模型、智能体、工具、会话、流式事件和会话持久化;Hanai Worth 负责证券与估值数据、自选分组、研究资料、不可变报告快照和全部产品界面。产品包含「今日市场、自选与发现、大师研判、专家对谈、专家中心、设置与诊断」六个一级页面,以及个股、研判和对谈详情页。 插件包名为 hanai-investment-dsh,独立 DSH 配置档名为 hanai-investment;安装和启动命令使用这两个名称。当前已验证的 DSH 版本为 0.2.1-rc.2。 品牌中的两条趋势线在证据点形成金叉:价格给出市场报价,研究帮助看见价值。每一份研判,都应能回到证据、方法与上下文。 在线投研报告 | 报告 | 在线页面 | 仓库内自包含 HTML | 内容 | | 2026-10-18 A 股投资报告 | 五个方向 · 二十家公司 | a-share-investment-report-2026-10-18.html | 10 月 16 日收盘快照、宏观与全球局势、GF 摘要、20 家公司买入前提与经营反证、筛选与估值压力演示 | | 变盘点能力审计 | 在线审计报告 | turning-point-capability-audit-2026-08-23.html | 当前 10 类生产标记、22 个有效周期格、matched 增量、候选与缠论生命周期 | | A 股未来一年周期展望 | 完整门禁版在线报告 | a-share-cycle-outlook-2026-08-25.html | 点时市场截面、主题A—C证据评分、六股质量/估值/相对强弱、条件历史比例、六门结果与Round 4全状态复核 | GitHub Pages 报告目录保留各期入口。10 月投资报告使用软件公开行情与财务链路、官方宏观资料及公司公告;将东泰山、散户乙、段永平、巴菲特、芒格五个内置技能的方法统一应用于研究,没有独立专家投票。20 家公司是附条件候选池,不是要求同时买入;GF 参考值、源标签和报告筛选门槛分别展示,数据日期、口径差异与反证均在页面内说明。 周期展望实际调用仓库内五个专家技能,但它们是同源的 AI 方法论角色。完成版先冻结2026-08-25市场解析快照与官方财报,补齐事实、机制、质量、估值和反证五门,再由 Round 4 的独立 council_vote 关闭会商门;专家实际读取的前置输入与五份原始输出、提示词及技能哈希分别保存并以 SHA 绑定。主题映射核对和股票门禁核对不是独立投票,具体模型与reasoning配置也未在产物中冻结;报告不提供未经校准的概率、目标价或收益承诺。 界面预览 黑夜模式保留原客户端的信息密度、页面位置与 A 股涨红跌绿语义;市场热力图由 ECharts treemap 绘制,面积对应板块成交额。 Hanai Worth · 值见黑夜模式市场页 亮色模式只替换语义色彩 token,侧栏、顶栏、卡片、表格和图表的位置与尺寸保持不变。 Hanai Worth · 值见亮色模式市场页 个股详情以行情与价值并排呈现:左侧是分时/日/周/月 K 线、行情快照和基本面,右侧是价值判断与独立价值曲线;金线是供应商大师价值序列,蓝线是股价,红/绿带分别表示高估与低估区间。 Hanai Worth · 值见个股详情与价值曲线 变盘点把可复算的量价条件直接标在日/周/月 K 线上。下图是实际运行界面:中国平安在 2026-07-01 命中 低位破低反包,悬浮卡同时展示触发条件、20 日历史方向频率、样本数、同场景对照和研究截止日;工具栏可以一键显示或隐藏全部变盘点。 Hanai Worth · 值见变盘点——低位破低反包、历史回测证据与显示开关 截图中的百分比是截至 2026-08-20 的历史条件频率,不是对中国平安下一次走势的预测,也不构成投资建议。 从行情到研究的完整链路 1. 看市场:六大指数、市场宽度、行业/概念热力图和涨幅、跌幅、成交额、换手率榜单共同呈现当日结构。 2. 建自选:搜索股票,按分组添加、移动和维护标的;刷新当前分组并比较行情、估值与加入以来表现。 3. 读个股:结合前复权 K 线、均线、量价观察标记、行情快照、基本面、合理估值和价值曲线建立上下文。 4. 开放对谈:不选股票直接选择一位专家,围绕行业周期、商业模式、近期事件或决策问题持续讨论。 5. 发起研判:选择股票和一位大师,由智能体独立检索和核验公开资料,形成可归档的完整 Markdown 报告。 6. 继续验证:开放对谈和研判追问都复用各自原有的 DSH 会话;研判还可查看工具过程或显式修订报告。 产品能力 今日市场与自选 - 市场全景:六大指数、涨跌停与上涨/下跌家数、两市成交额、行业/概念 treemap 和四类榜单并行加载;热力图面积代表成交额,颜色遵循 A 股涨红跌绿。 - 自选分组:默认分组始终保留,支持新建、重命名、删除自定义分组,以及股票添加、移动、移除和三态排序。 - 自选行情:展示最新价、涨跌幅、成交额、换手率、市值、PE、PB、加入日期和加入以来表现;行情状态明确区分 fresh、stale 与 unavailable。 - 自选估值:合理估值由价值大师网按分组异步、限并发加载,不阻塞行情表格;同时展示距现价的金额和比例。合理估值高于现价的上行空间使用红色,低于现价使用绿色。 - 加载与刷新:支持手动刷新当前分组;行情与估值分别展示加载、失败和无数据状态,单只股票估值失败不会拖垮整组。 个股行情、估值与 K 线观察 - 行情与财务快照:展示最新报价、开高低收、成交量/额、换手率、量比、主力净流入、市值,以及 PE、PB、ROE、EPS、营收、利润率和资产负债率等字段。 - 多周期行情:支持分时、日 K、周 K、月 K;K 线统一使用前复权。日 K 首屏按需加载,向左拖动可继续取得更早数据;周 K、月 K 直接提供完整历史。当前正在查看的日/周/月 K 每 15 秒刷新,同日期覆盖、新周期追加,切换回已加载周期时立即刷新一次。 - 双均线模式:可在短线 MA5 / MA10 与中线 MA20 / MA60 间切换,均线始终按当前日、周或月 K 周期的收盘价计算。 - 变盘点标记:日、周、月 K 保留「巨量分歧、巨量弱收、深跌放量、深跌强收、深跌长影、放量回稳」;日 K 另外显示「低位破低反包、金针探底观察、金针突破确认、高位巨量长上影」。同周期多标记可堆叠,悬浮时在一个 tooltip 中查看行情、均线、实际触发条件与历史证据。 - 动态重算与开关:只有最新 K 的 OHLCV/成交额发生变化时才替换数据并重算当前图表;最新一根显示「动态计算」,其标记可能在周期结束前变化,历史 K 才显示「收盘确认」。「变盘点」开关默认开启,关闭后只隐藏标记和证据,不停止行情刷新,也不影响 K 线、成交量或均线。 - 价值判断:合理估值加载中使用独立骨架与动画,无数据时才显示占位;估值摘要、五维雷达与价格/大师价值曲线彼此独立,不因估值源失败阻断行情。 - 来源可追溯:图表和卡片保留来源、获取时间、延迟/缓存状态;缺失字段显示 — 或隐藏,不把空值解释为 0。 变盘点是根据历史条件频率筛选出的量价观察提示,不等同于买点、卖点或收益承诺。原有六类在日 K、周 K、月 K 展示各周期独立证据;全市场新增的 低位破低反包、金针观察/确认和 高位巨量长上影只有日线证据,因此不外推到周/月 K。 完整变盘点能力审计:查看 GitHub Pages 在线报告 或 仓库内自包含 HTML。报告逐一对账当前 10 类生产标记、22 个有效周期格、16 个冻结候选、matched 增量、置信区间及拟影子验证方向。 变盘点如何计算 线上触发不调用大模型,也不读取新闻、基本面或未来数据,而是对当前股票已经取得的前复权 OHLCV 做确定性计算;相同 K 线输入必然得到相同标记。加载不足 121 根当前周期 K 时不显示,以保证均线、回撤和波动率充分预热。 | 计算项 | 口径 | | 趋势 | MA5 / MA10 / MA20 / MA60、此前 10/20 周期收益、距此前 60 周期高点回撤 | | 量能 | Volume / VMA20;新增日线 V0 使用不包含当天的 VMA20⁻,避免当天巨量抬高自己的基准 | | 波动 | TR 与不包含当天的 ATR20⁻ | | K 线位置 | CLV=(Close-Low)/(High-Low)、实体、上影、下影占当期振幅比例 | | 结构 | 前高/前低、20/60 周期高低点、位于各自 MA20 下方的周期数 | | 确认 | 原始形态标在锚点日;需要确认的形态只标在真实确认日,不把未来确认回填到过去 | | 去重 | 同股同类按预定观察窗口冷却,避免连续多根相近 K 线重复报点 | 产品中的十类标记分为三种语义: | 产品语义 | 标记 | 周期 | 解释 | | 量价观察 | 分 / 弱 / 深 / 强 / 影 / 稳 | 日、周、月 | 描述上涨后巨量分歧,或深跌区放量、强收、长影与回稳 | | 低位观察/确认 | 包 / 针 / 确 | 仅日 K | 包是破前低后反包前高;针只是金针锚点;确只在未来 1~3 日真的突破锚点高点与 MA5 时出现 | | 风险观察 | 拒 | 仅日 K | 上涨结构中创新高、巨量、长上影和弱收盘;提示换手受阻,不代表机械卖出 | 精确阈值、显示冷却与 tooltip 口径见变盘点产品决策。 全市场回测与验证 FULL_A_TURNING_V0 研究冻结了 16 个原始/确认规则:先定规则和主观察窗口,再统计结果,避免看到漂亮数字后临时改参数。研究请求 5,813 只当前及历史 A 股证券,成功取得 5,809 只行情;其中 5,704 只达到至少 120 根预热要求,共分析 9,813,872 根有效可交易日 K,集合日期范围为 2014-01-02 至 2026-08-20。公开行情来自新浪、腾讯和东方财富的复权日线;北交所退市历史、逐日 ST 状态和完整退市收益仍不完备,因此这里称「实质性全市场扩展」,不称无偏的全历史 A 股。 统一回测时钟与交易约束: - 信号只使用 t 收盘时已知的 OHLCV,滚动量、ATR、前高和前低使用 t 之前的数据; - 最早执行价为信号后下一根可交易 K 的开盘,H 日在 signal + H 收盘结算;零成交/停牌行不作为可交易 K; - 买侧正收益频率扣除约 0.312% 固定往返摩擦;风险侧只统计未来原始股价下跌频率,不伪装成可做空收益; - 信号日前 20 根成交额中位数至少 3,000 万元,5,000 万元作为预先声明的流动性敏感性; - 每只股票每个信号阶段按主窗口去重,年度和时代分段要求退出日也留在分段内,未成熟事件直接删除而不是尾部强平。 下表是扩展未见股票的主窗口结果;「方向频率」是回顾性的条件比例,俗称「胜率」但不是下一次概率。买侧平均收益已扣除固定摩擦,风险侧平均方向收益表示平均下跌幅度。 | 冻结形态 | 主窗口与方向 | 样本 | 历史方向频率 | 平均方向收益 | 同场景对照 | 产品结论 | | 低位破低反包 | 20 日上涨 | 3,581 | 65.60% | +7.12% | 65.75% | 显示 包;形态独立增量未证实 | | 深跌巨量强收 | 20 日上涨 | 1,770 | 64.18% | +9.68% | 66.21% | 保留相邻旧观察;巨量增量未证实 | | 金针探底观察 | 20 日上涨 | 18,937 | 50.85% | +1.74% | 50.34% | 显示蓝色研究锚点,不称买点 | | 金针突破确认 | 20 日上涨 | 10,650 | 51.81% | +1.53% | 50.80% | 确认未提升为高胜率,只显示 确 | | 高位巨量长上影 | 5 日下跌 | 5,721 | 56.58% | +0.15% | 55.46% | 显示 拒风险观察,不称卖点 | | 巨量后缩量不破转强 | 20 日上涨 | 75 | 50.67% | +2.07% | 51.75% | 样本过少,不进入默认标记 | | 极缩量后脱离平台 | 20 日上涨 | 22,495 | 47.68% | +0.84% | 49.53% | 明确否决为买点 | 验证设计不仅看原始方向频率: 1. 旧研究涉及的 249 只股票整体放入 prior_studied,不参与扩展未见股票主结果;其余股票按代码 SHA-256 固定拆分为开发 50%、验证 30%、测试 20%。 2. 每个事件匹配同一交易日、同方向、同板块、相近前置涨跌幅和流动性层的普通股票,判断形态是否优于当时共同市场环境。 3. 方向与收益使用「股票 + 信号月份」双向聚类区间;16 个主假设的匹配方向增量使用 Holm 5% 家族错误率校正。 4. 额外检查时代/年度、主板/创业板/科创板/北交所、3,000万/5,000万元流动性、去掉最佳 5% 事件和更高摩擦后的稳定性。 5. 严格上线门槛还要求非重叠样本至少 200、原始方向率至少 60%、聚类区间下界高于 50%、匹配方向及收益增量区间下界均高于 0、跨年度和验证/测试股票折稳定。本轮通过数为 0/16,因此产品没有新增任何「已验证高胜率买点」。 截至 2026-08-20 的数据已经参与规则研究,只能作为回顾性证据。从 2026-08-21 起应按冻结 V0 规则持续记录前瞻影子事件,积累足够样本后再做一次不改参数的检验。完整覆盖、分层、聚类区间、匹配对照、否证结果和已知偏差见全市场 A 股日 K 变盘点研究,机器可读结果见冻结 JSON,复现脚本见full-market-turning-point-study.py。完整研究索引见设计文档。 专家开放对谈 - 不必先选股票:可直接讨论行业周期、商业模式、市场情绪、决策困境或近期事件,不生成 REPORT.md。 - 持久开放会话:每次对谈绑定独立专家快照与 DSH Session,支持正常追问、检索、工具调用、队列、steer、取消、审批和历史恢复。 - 专用对谈工作台:左侧保留对谈历史,右侧消息区占满剩余高度;支持深链接和刷新恢复,思考与工具过程默认折叠,输入区固定在当前会话底部。 - 七位对谈专家:段永平、混江龙、查理·芒格、沃伦·巴菲特、散户乙、东泰山均支持研判与开放对谈;孙宇晨视角仅进入开放对谈。 - 散户乙视角:按 nuwa 的本地语料流程,从《从冲浪到潜水》发言汇编提炼股权思维、可持续 ROE、分红复利和底线回报;保留 PDF 页码、观点演化和汇编归属边界。详见能力包与蒸馏记录。 - 东泰山视角:按 nuwa 六维流程,从2025年起「蜗牛成长笔记」的已保存正文、作者回复及已核读附件,提炼PB分母与盈利能力、PB/PE双锚的条件综合、周期利润与兑现;保留位置分层及成长/研发/现金分支。支持股票研判与开放对谈,首次回答说明 AI 视角;不复制付费全文、不冒充本人实时观点或业绩。详见能力包与来源及验证记录。 - 孙宇晨视角边界:参考你指定的开源能力包,用来分析行业周期、注意力迁移和叙事竞争;创建对谈时明确提示 AI 模拟边界,首次回答完成身份披露,详情页不重复占用消息空间;具体时效事实必须先检索核验。 - 周期可证伪:「永远缺某种资源」只作为假设,从需求、供给、库存与利用率、资本开支、价格利润和拥挤度检查,并给出反证与失效条件。 - 单一事实源:Hanai SQLite 只保存标题、专家和 opaque dshSessionId;消息、工具与 Turn 历史仍只在 DSH。 大师研判与持续对话 - 单专家独立研判:支持段永平、查理·芒格、沃伦·巴菲特、混江龙、散户乙和东泰山六套方法论;每次研判绑定独立工作区和持久 DSH Session。 - 可核验报告:保留 preparing → running → verifying → completed/failed 状态、实时执行过程、失败原因、归档信息、不可变报告版本、哈希与文件大小。 - 报告默认、对话延续:完成后默认打开研判报告,也可切换到「继续对话」,沿用原 dshSessionId 追问;普通追问不会静默创建新报告版本。 - Markdown 与过程展示:报告和对话正确渲染标题、列表、表格、引用、链接、行内代码和代码块;思考与工具活动按轮次紧凑折叠,详细参数和结果按需展开。 - 运行中交互:支持排队发送、立即插话、编辑/移除队列消息、取消运行,以及工具批准和结构化问题回复。 - 安全删除:仅已完成或失败且会话不在运行的研判允许删除;二次确认后移除全部本地报告/工作文件并归档对应 DSH Session,进行中的研判受到保护。 工作台与运行管理 - 统一交互系统:按钮、输入框、选择器、焦点、禁用和危险操作使用一致的语义色与明暗主题 token,并保留 A 股红涨绿跌业务色。 - 亮色/黑夜模式:两套主题只替换语义色彩,不改变页面结构、图表数据或业务含义。 - 全局搜索与深链接:可按代码、名称或拼音搜索股票;#/dashboard、#/watch、#/judgements、#/expert-chats、#/personas、#/settings 及详情页支持刷新、前进、后退和直接打开。 - 设置与诊断:在工作台内管理 DSH Credentials、默认模型和主题,查看 Agent、数据源、缓存、本地存储与版本状态,并可打开数据目录或清理行情/估值缓存。 - 完全自有界面:使用 React 18、DSH Slot、Session Controller 与 Conversation Projection、ECharts 和 CSS Modules;不显示或复用 DSH 原生聊天 UI。 架构 Hanai Worth · 值见架构 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 / Sina / 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;全部业务写入经由同源 /hanai RPC。 更完整的设计见 总体架构 与 ADR 索引。 运行要求 - Node.js ^22.19.0 或 >=24.0.0 - pnpm 11.7.0 - DeepSeek Harness 0.2.1-rc.2;CLI、CLI 自带的 Web App 与 Hanai 声明的 DSH 依赖版本必须一致 - 一个 DeepSeek API Key(只在实际运行 Agent 时需要) DSH 仍处于 pre-release,rc 之间不承诺兼容。安装器会在修改 Profile 前检查 CLI 是否为已验证的 0.2.1-rc.2。包内 engines.dsh 也限定同一版本,供 DSH 明确识别已验证的兼容版本。仓库把 Host、Client 和 profile 装配都纳入兼容性检查;升级时需运行完整门禁,并实际启动独立 Profile,不能只检查配置组合。 从源码安装 git clone git@github.com:hancao97/hanai-investment-dsh.git cd hanai-investment-dsh npm install -g @deepseek-ai/dsh@0.2.1-rc.2 pnpm install --frozen-lockfile pnpm run build pnpm run profile:install -- --package . pnpm run profile:verify dsh --profile hanai-investment --port 3080 已有源码时,从仓库根目录执行 npm install -g 起的命令即可。如果 pnpm 版本不符,可以通过已安装的 Corepack 执行 corepack enable 和 corepack prepare pnpm@11.7.0 --activate。 安装器会创建独立的 hanai-investment 配置档,或对它做安全迁移。最终 Bundle 顺序固定为 DSH Base、DSH Web App、Hanai;只有 hanai-investment-dsh 是配置档依赖。Base 与 Web App 必须由当前 DSH 命令行自带的 installation-owned runtime resolution 提供,不能再用 dsh plugin add @deepseek-ai/dsh-web-app 装进配置档,否则相同版本的 DSH runtime 仍可能被加载成两个模块实例。安装器会拒绝修改 web、headless 等保留配置档;目标配置档含无关依赖或 Bundle 时,安装器也会停止。 日常启动与停止 安装完成后,在任意目录执行: dsh --profile hanai-investment --port 3080 保持终端进程运行,在该终端按 Ctrl+C 停止。端口被占用时,先停掉占用它的服务,或改用 --port 3081。只看行情、自选和已有报告不需要 DeepSeek Key;发起研判或发送专家消息前,先在「设置与诊断」保存 Key 并选择默认模型。 DSH 默认自动打开浏览器;想自己打开就加 --no-open,然后用终端打印的完整启动地址访问。--no-open 只控制自动打开浏览器,认证照常生效。 通用 DSH Web 用 dsh web,Hanai 用上面这个独立配置档。两者可以用不同端口同时运行。详见 ADR-0003。 浏览器认证是什么 DSH 0.2 的浏览器认证控制本地工作台的访问权限,保护它的文件、工具与智能体接口。它和调用模型时用的 DeepSeek API Key 分开管理,不用另建登录账号。 首次访问时,打开本次启动终端打印的完整地址,例如: dsh web: http://127.0.0.1:3080/?token=<本次启动 token> <本次启动 token> 是示意占位符,实际值由 DSH 自动生成。浏览器拿它换取签名会话 Cookie,再跳转到不带 token 的地址;之后可以直接访问 http://127.0.0.1:3080/ 或存书签。Cookie 默认有效 30 天,带 HttpOnly 和 SameSite=Strict 属性;签名密钥持久保存在当前 DSH 数据目录的凭据存储里。 Cookie 绑定访问域名和端口:localhost:3080、127.0.0.1:3080、127.0.0.1:3081 是不同入口。换浏览器、用无痕窗口、清理 Cookie、Cookie 过期或更换入口后,都要重新打开完整启动地址。只要 DSH 数据目录、域名和端口不变,有效 Cookie 可以跨进程重启使用;启动 token 则随进程重启重新生成。 如果页面只显示 dsh web authentication required; reopen the URL printed by dsh web.,说明当前浏览器还没拿到有效会话。回到正在运行的终端,复制它打印的完整地址打开即可。启动链接拥有本地工作台访问权限,请勿公开其中的 token。 更新源码 先在运行终端按 Ctrl+C 停止 Hanai,再回到仓库根目录执行: git pull --ff-only pnpm install --frozen-lockfile pnpm run check pnpm run profile:verify dsh --profile hanai-investment --port 3080 源码安装的配置档链接到本仓库,pnpm run check 包含生产构建;重新启动后即用新构建。日常启动不用重装配置档。升级 DSH 或修复旧配置档时,才需要重新执行安装与校验。 使用东泰山视角 更新源码并重启后,「专家中心」会出现 东泰山 · 公司位置与产业周期: - 在「专家对谈」点击「东泰山」,可用预设问题或自己的问题开始,之后直接在同一会话追问。 - 在「大师研判」新建研判,选择股票和「东泰山」,生成完整报告;完成后可以继续对话,也可以明确要求更新报告。 新任务使用 2026.10.01-v6 的能力快照;已有会话保留创建时的专家和资料,想用新版请新建任务。新版依据 2,168 个帖子的 2,170 个已保存正文版本,以及完整核读的 109 份 PDF(2,940 页)和 2 份表格,补入 2025 年以来的 PB/ROE、下行双锚和研发/成长条件。原图、未加载评论及其余附件仍有缺口,不能称全部载体已读;也没有审计其预测准确率。具体覆盖与模型和运行结果见启动与验收记录。 本次生成的六维流程、阅读量口径、三个核心模型、PB 的分母与盈利能力,以及实际模型验证的局限,集中整理在东泰山 Skill v6 生成总结。 修复旧配置档 先停止 Hanai,在仓库根目录执行以下命令。安装器可重复运行,也会迁移早期错误安装过 Web App 依赖的配置档: pnpm run build pnpm run profile:install -- --package . pnpm run profile:verify dsh --profile hanai-investment --port 3080 需要安装已有发布包时,在本仓库中把 --package . 换成该包的完整名称与版本,或本地 .tgz 路径。不要手工执行 dsh plugin ... add @deepseek-ai/dsh-web-app;它会重新引入配置档本地的 DSH runtime shadow。 数据与隐私 Hanai 业务数据默认写入: ~/.hanai-investment-dsh/ ├── db/hanai.sqlite ├── cache/ ├── judgements/<id>/workspace/ ├── judgements/<id>/reports/<version>/ └── expert-chats/<id>/workspace/ 首次使用当前隔离数据根时会建立空数据库,不会自动导入旧版独立项目的数据。已有 ~/.hanai-investment-dsh 时,更新源码、重新构建或重启会继续使用其中的自选、研判和专家对谈索引。 以下内容仍由当前 $DSH_HOME 管理: - DeepSeek Key 与模型设置; - Session 事件、消息、工具历史; - 聊天附件、浏览器认证凭据和 Profile 安装状态。 备份或迁移时,应同时保留 Hanai 数据根和当前 DSH 数据目录;只备份 SQLite 无法恢复 DSH 持有的完整对话。自定义了 DSH_HOME 时,后续启动请继续使用相同目录。 Hanai 数据根默认权限为 0700,普通数据文件为 0600。API Key 是 write-only secret:页面提交后清空输入,RPC 不返回明文,日志和报告也不得包含它。 行情与来源语义 数据源必须把「真实值」和「可用性」一起交给 UI: | 数据面板 | 主源与备源 | 时间与降级口径 | | 六大指数、个股与自选报价 | 东方财富实时 → 东方财富延迟 → 腾讯 | 腾讯按 GBK 解码,保留真实交易时间与正确金额单位 | | 分时、前复权日/周/月 K | 东方财富历史接口 → 腾讯 | 与实时报价分别熔断,报价接口失败不会阻断 K 线备源 | | 行业/概念热力与四类榜单 | 东方财富 → 新浪行情中心 | 显示实际来源;新浪未提供交易日期时只显示获取时间 | | 基本面财报 | 东方财富独立财报接口 | 不受实时报价熔断影响,报告与分红数据缓存 6 小时 | | 合理估值与价值曲线 | 价值大师网(GuruFocus) | 独立异步加载,按日缓存并保留来源限制 | - 日 K 支持向左拖动分段补齐历史,周/月 K 返回完整历史; - 首页按面板独立降级:板块或榜单失败不会隐藏仍可取得的指数与市场宽度;未返回的数据明确显示不可用,网络断连不会误报成 HTTP 限流; - 新浪行情中心的备源榜单按对应指标排序并排除 ST,板块支持完整成分股下钻。备源板块分类与东方财富不同,页面显示实际来源; - 基本面从东方财富独立财报接口取得,独立于实时报价熔断并缓存 6 小时。营收、归母净利润、EPS、ROE 和同比对应最新报告期本年累计数据;PE(动)用最新累计净利润年化,PE(静)用最近年报,PE(TTM)/PS(TTM)按「本期累计 + 上年全年 − 上年同期」结合当前市值计算。股息率按报价交易日之前 12 个月已实施的税前现金分红计算,并调整期间后续送转股;缺少必要财报或分红数据时保留缺失值; - 备源请求按数据面板合并并发、短期缓存;失败时保留并标记最近成功数据为 stale,并退避 60 秒后重试,避免轮询持续冲击失败接口; - 自选行情先返回,价值大师网合理估值再按组异步补齐并按日缓存;两条链路互不阻塞; - 加载中、供应商无数据和请求失败分别展示;最近成功的旧快照标记 stale,完全不可用则显示 unavailable; - 备源成功显示「备源降级」,备源的旧快照显示「备源缓存」;来源切换不代表数据已恢复实时; - 缺失字段显示为 —,缺失图表显示无数据,绝不解释成 0; - 页面不合成不存在的指数走势,也不把延迟或缓存数据标成 LIVE。 GuruFocus 接口仅作为个人研究原型使用,遵循页面声明的来源、缓存时间与再分发限制。生产或商业部署应替换为有正式授权和 SLA 的数据供应商。 常见问题 | 现象 | 处理方式 | | 页面提示 dsh web authentication required | 用当前运行终端打印的完整 token 地址打开;确认浏览器与访问域名、端口一致 | | EADDRINUSE 或端口被占用 | 停止占用端口的服务,或改用 --port 3081,首次访问使用新端口的完整启动地址 | | 更新后仍看到旧界面 | 确认已构建并重启,在浏览器按 macOS ⌘⇧R / Windows、Linux Ctrl+Shift+R 强制刷新 | | 行情、板块或基本面出现 — | 查看该面板的实际来源、报告期和获取时间;不同数据链路分别降级,供应商未提供的字段仍保留缺失值 | | 显示「行情源请求连续失败」 | 表示网络或服务失败触发了暂停与退避;只有观察到 HTTP 429 才提示限流,按页面重试时间等待后刷新 | | 新建专家对谈后消息区为空 | 未填写开场问题的对谈尚无消息,发送首问即可;已有历史从原 DSH Session 恢复 | | 页面可用但 Agent 无法运行 | 在「设置与诊断」检查 Key、默认模型与网络;旧 Profile 的 runtime 冲突使用上面的修复命令处理 | 开发与验证 pnpm run typecheck pnpm run test pnpm run build pnpm run pack:check 一键执行全部门禁: pnpm run check 门禁覆盖: - Provider 解析、降级、缓存和证券同步; - 东方财富财报累计/年化/TTM 口径、分红送转股调整与缺失值处理; - 新浪行业/概念、四类榜单排序、ST 过滤、板块成分股分页及缓存退避; - SQLite migration、事务、权限和数据隔离; - 报告校验、修复、原子封存、哈希与版本; - 研判删除约束、Session 归档与本地文件清理; - DSH Session 报告、开放对谈与普通追问生命周期; - DSH 首次会话列表就绪与历史对谈恢复; - 自绘聊天的 Markdown、紧凑过程、pending、queue/steer、双语境文案和固定高度布局; - 前复权历史加载、日/周/月最新 K 的 15 秒刷新与同日期合并、MA5/10 与 MA20/60、十类变盘点、动态/历史状态、显示开关及 tooltip; - 自选合理估值的异步批量加载、缓存、失败隔离和距现价计算; - DSH Client ModuleLoader 单文件协议; - npm allowlist、入口、source map、大师资产与旧数据路径硬隔离。 真实装配验证使用临时 DSH_HOME 安装 hanai-investment Profile,再以随机 loopback 端口启动 Host/Web;不会触碰用户的官方 web Profile。 最近一次完整验证(2026-10-01):30 个测试文件、223 项测试全部通过,类型检查、生产构建、87 个发布文件检查与本机 Profile 校验通过。真实服务与浏览器已验证比亚迪基本面 18 个字段、行业/概念热力、四类榜单及板块成分股下钻;这是当次上游响应的验收记录,后续可用性以页面实际来源和状态为准。 各轮启动步骤、首次设置、浏览器矩阵和适配验收记录见 启动与验收报告。逐页功能与布局约束见 客户端迁移与验收基线。 目录结构 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/ ├── research/ 可复现的量价与 K 线条件研究脚本 └── ... profile 安装、校验与发布门禁 docs/ ├── research-data/ 冻结口径、样本清单与可复现研究结果 └── ... 架构、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 MIT 客户端 bundle 内联依赖的许可证与声明见 THIRD_PARTY_NOTICES.md。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hancao97/hanai-investment-dsh
面向 DeepSeek Harness 的本地优先 A 股研究工作台:行情看板、自选股、估值、四个投资智能体、带版本的报告,以及报告后持续对话。
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7