【S3W3 交叉评测】潜审 DiveMind:审计 Agent 的工程一致性、安全边界与可验证性建议 #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1. 项目理解
DiveMind 是一个面向审计业务的本地化 Agent 工作台,核心流程不是简单的问答,而是:
账套或底稿导入 → 文件解析与列映射 → 试算平衡与规则检查 → 调整建议 → 人工审核队列 → 审计底稿、附注及交付物导出。
项目采用 FastAPI + SQLAlchemy + SQLite 作为后端,React + TypeScript + Vite 作为前端,并通过 ReAct 循环组织 Agent 的思考、工具调用和结果观察。项目 README
当前代码中的 Agent 已扩展为
coordinator、ledger_intake、adjustment_review、scope、count、workbook_layout、note_drafting、reviewer等多个角色,分别负责账套导入、调整审核、重要性水平、盘点、底稿版式、附注和复核等任务。Agent 工厂项目的主要设计思想是:LLM 负责选择工具和解释结果,金额计算、余额校验、调整建议和数据落库由确定性工具完成;Agent 的建议需要进入人工审核队列,不直接完成最终签认。Agent 基类、项目契约
整体来看,DiveMind 更接近“审计业务流程 Agent 系统原型”,而不是普通的 AI 聊天页面或 Prompt 包装项目。
2. 项目亮点
2.1 业务场景具体,Agent 不停留在对话层
项目围绕审计中真实存在的账套、试算平衡、调整分录、底稿、盘点和附注等对象建立了数据模型和流程,Agent 能够调用试算平衡、波动识别、调整建议、审核队列等领域工具。
这比泛化的“让大模型分析 Excel”更接近真实业务系统,也更容易体现 Agent 的任务执行能力。
2.2 确定性工具与 LLM 推理分工合理
项目明确限制 LLM 不直接进行金额计算,而是通过工具完成计算与校验。工具注册表也为每个工具定义了名称、描述和参数结构。工具注册表
这种设计可以降低模型进行金额计算时的幻觉风险,并且方便后续替换模型。
2.3 人工审核闭环设计比较完整
Agent 的建议不会直接成为最终审计结论,而是写入
ReviewItem审核队列,再由人工批准或驳回。同时项目还记录AuditEvent、Agent 迭代过程和 LLM 调用记录。这种“Agent 建议—人工审核—留痕”的模式适合审计场景,也符合高风险业务中人机协同的基本要求。
2.4 底稿导入和导出考虑到了真实数据结构
底稿导入支持 ZIP 文件、Excel 工作簿和 PDF 证据文件,并对 ZIP 路径穿越进行了防护。系统还会对工作簿进行版式识别、审定表解析和语义层合成。底稿导入工具
交付物导出前还存在一定的门禁检查,例如未完成的盘点事项、未审核的调整、未确认的底稿或附注内容可能阻止导出。交付物接口
2.5 Mock 模式和测试夹具对开发比较友好
项目提供 Mock LLM Gateway 和测试夹具,可以在不调用真实模型的情况下测试 Agent 流程。README 声称当前有 57 个测试用例,仓库中也包含账套、Agent、审核、OCR、内存检索和底稿导入等多类测试文件。测试目录
这说明项目作者已经考虑到 Agent 系统难以稳定测试的问题。
3. 当前存在的问题
3.1 重要:AI 模式的文档说明与实际代码不一致
这是我认为当前最值得优先修复的问题。
设置接口允许选择:
openaimocklocalhybrid前端也提供了“混合模式”等选项。但是当前
get_gateway()的实际逻辑是:只有ai_mode == "mock"时使用 Mock Gateway,其他模式全部使用 OpenAI 兼容接口。LLM 网关、设置接口也就是说,目前
local和hybrid并没有真正对应的本地模型或白名单字段出站逻辑,而是仍然会进入 OpenAI 兼容远程接口。这与 README 中“本地模式不出机”“混合云仅发送白名单字段”等安全设计说明存在明显差距。README 安全设计
对于审计系统来说,这不仅是功能问题,也涉及财务数据是否会被发送到云端。
建议:
local、hybrid实现明确的 Gateway;local模式不会发起远程 HTTP 请求;3.2 重要:完整 Prompt 和模型响应会直接落库
BaseAgent会将完整的messages写入LLMCall.prompt_text,同时保存完整的response_text。Agent 基类、数据模型审计 Prompt 可能包含:
如果这些内容全部以明文存入 SQLite,那么即使模型调用本身受控,本地数据库和备份文件仍可能暴露敏感信息。
另外,项目的 API Key 存储在本机 JSON 设置文件中,当前代码没有看到操作系统级密钥保护。本地设置存储
建议:
3.3 重要:会话令牌目前没有形成真正的 API 鉴权
项目会生成
session_token,README 也提到本机会话令牌和角色切换。但当前路由依赖主要是数据库和配置依赖,没有看到所有业务接口统一校验该令牌的中间件或鉴权依赖。项目默认监听
127.0.0.1,因此在默认本地运行场景下风险有限。但如果用户把服务绑定到0.0.0.0、局域网地址或反向代理之后,其他请求方可能直接访问项目、设置、导入和 Agent 接口。建议:
3.4 Agent 迭代次数和输入大小缺少严格限制
AgentRunRequest.max_iterations是普通整数,没有看到明确的最大值限制。Agent 请求模型同时,目标文本和上下文数据也缺少明显的大小上限。
这可能带来:
另外,工具注册表中的 JSON Schema 当前主要用于展示给模型,实际执行时并没有统一进行 JSON Schema 校验。工具注册表
建议:
max_iterations增加明确上限,例如 1–12;3.5 “语义嵌入检索”目前实际上会降级为 FTS
app/memory/embed.py中虽然探测了 BGE ONNX 模型,但代码明确写着 tokenizer 只是占位,当前不会真正进行向量推理,最终会返回None并回退到 FTS 检索。Embedding 实现因此,当前版本的知识检索更准确地说是“关键词/全文检索优先,向量检索预留”,而不是已经完成的中文语义嵌入检索。
建议:
3.6 全新用户按照 README 操作,可能无法直接启动完整界面
README 的快速开始中使用了:
但当前仓库根目录本身就是项目代码,没有看到名为
Restructured的子目录。同时,后端只有在
web/dist存在时才会挂载前端 SPA,而 README 的基础启动步骤没有明确要求先执行:前端的
package.json只提供dev、build和preview,没有根目录统一启动脚本。前端配置建议补充一条从干净环境开始的完整流程:
另外,README 引用的设计文档文件名与实际
docs目录中的文件名也存在差异,建议统一文件名并检查链接。3.7 测试和发布证据仍然不够完整
当前主要看到 Python 后端测试。前端
package.json没有测试和 lint 脚本,仓库页面也没有明显的 CI 配置或构建状态。因此,目前还不能从公开仓库快速确认:
建议增加:
3.8 SSE 事件总线更适合单机演示,不适合多进程部署
当前 SSE 使用进程内事件总线,队列容量为 200,队列满时会直接丢弃事件。事件总线
这在单机演示中可以接受,但存在以下限制:
建议将 SSE 定位为实时展示层,真正的进度和审计事件从数据库读取;重连时根据最后一个事件序号补发,或者明确声明项目只支持单进程本地部署。
4. 建议的改进优先级
建议优先处理以下事项:
local/hybrid与实际 Gateway 行为不一致的问题,确保敏感数据不会未经控制发送到远端。对于比赛演示,建议提供一条无需 API Key 的完整路径:
导入测试账套 → 自动列映射 → 试算平衡 → 波动/调整规则建议 → 创建审核项 → 人工批准或驳回 → 查看审计事件 → 导出交付物。
真实模型能力则可以作为第二条演示路径,并使用脱敏样例数据。
5. 综合评价
DiveMind 的优点不是“接入了一个大模型”,而是尝试把 Agent 放进了一个具有真实业务约束的审计流程中。项目已经具备:
因此,它不是简单的 Prompt 包装项目,具备较清晰的 Agent 系统雏形。
但当前公开版本仍然存在较明显的“设计文档领先于实际实现”的情况,尤其是:
local/hybridAI 模式没有真正实现;综合来看,这是一个业务方向明确、Agent 架构有价值、工程基础较好的审计智能化项目,但目前更适合定位为“可运行的本地化 Agent 原型/早期系统”,距离可信的生产级审计辅助工具还需要完成安全边界、可复现部署和效果评测的补强。
朋友,这个是 https://www.divesee.com/divemind/ 潜析 DiveMind 项目并不是 https://www.divesee.com/diveread/ Diveread潜读项目
【S3W3 交叉评测】潜析 DiveMind 的阅读忠实性、效果证据与内容安全建议to 【S3W3 交叉评测】潜审 DiveMind:审计 Agent 的工程一致性、安全边界与可验证性建议@LIGHTNINGWHALE wrote in #2 (comment):