DecisionLens:带证据溯源的离线AI决策智能体

DecisionLens是一个纯Python离线决策智能体,每条结论都附带可追溯的文件行号证据,用可审计的规则推理替代易幻觉的大模型。
DecisionLens是一个用Python标准库编写的离线零依赖决策智能体,核心设计理念是"每条论断必须附带证据"——每个输出数字都绑定到来源文件、行号和字段名,让管理者能在几秒内核实任何结论。它采用感知-索引-检索-推理-解释-行动的可审计循环,用明确的算术运算(如库存覆盖天数对比供应商交货周期)而非语言模型的概率推理做决策,从根本上消除幻觉空间。项目附带8项行为断言的评测套件,强制要求智能体在未知时如实承认、代码零网络调用,使其可在物理隔离的机器上运行,直接满足金融、医疗等行业的数据主权需求。代码量不足1000行,是对"小而透明胜过大而黑箱"这一工程哲学的具体实践。
从一次失败的AI建议说起
一个季度前,有人向通用AI聊天机器人提问:"我应该优先补货哪个产品?"并提供了销售、库存、客户反馈三份CSV文件。机器人信心满满地回答:SKU-A,理由是"它看起来卖得不错"。
问题在于,SKU-A其实没事。真正的隐患是 SKU-C——每周销售100个单位,但库存仅够支撑6.3天,而供应商的交货周期长达14天。换算下来,这个SKU将在十天内断货,而每断货一周就意味着约100个单位的收入损失。聊天机器人完全没能发现这一点,因为它从未真正把这些文件连接起来分析——它只是扫了一眼列名,然后靠猜。
这正是 DecisionLens 想要杜绝的失败模式。

DecisionLens 到底是什么
DecisionLens 是一个 离线、零依赖的决策智能体,完全用 Python 标准库编写。你把它指向一个装有CSV文件的文件夹,用自然语言提问,它就会给出回答——而且 它做出的每一条论断都附带证据引用:来源文件、行号和字段名。
$ python -m decisionlens ask --data examples/ --question "Which SKU should I restock first? Why?"
DECISION: Reorder SKU-C now — it stocks out in ~6 days.
Evidence:
[E1] sales/sales.csv:42 sku=SKU-C units_sold=100 (4-week trailing avg)
[E2] inventory/inventory.csv:7 sku=SKU-C on_hand=90 days_of_cover=6.3
[E3] inventory/inventory.csv:7 sku=SKU-C supplier_lead_time_days=14
[E4] feedback/feedback.csv:19 sku=SKU-C mentions="still out of stock" (3 recent)
Action: place a PO for >= 300 units of SKU-C today; expedite the supplier.
回答中出现的每一个数字,都能追溯到一个你可以打开核对的具体单元格。如果智能体无法证明某件事,它会直接说明,而不是编造。
可审计的智能体循环
DecisionLens 运行的是经典的"感知 → 推理 → 解释"循环,并刻意保持精简,让每一步都可被审计:
- PERCEIVE(感知)——加载数据文件夹中的每个CSV,推断列类型,构建指标索引(销量、价格、日期、SKU)。
- INDEX(索引)——归一化单位与周期,让周销量、在手库存和交货周期可以相互比较。
- RETRIEVE(检索)——将问题与索引匹配,跨所有文件找到相关行。
- REASON(推理)——应用决策规则(如库存覆盖天数 vs. 交货周期),使用明确的算术运算,而非"凭感觉"。
- EXPLAIN(解释)——为每条论断附上文件 + 行号 + 字段的引用。
- ACT(行动)——给出带具体数量的推荐行动。
它能回答诸如:哪个SKU会最先断货、哪个渠道正在悄悄下滑、月度之间发生了什么变化及原因,以及完整的业务概览。
这种"感知 → 推理 → 解释"的设计模式在AI智能体领域通常被称为 ReAct(Reasoning + Acting)框架的简化变体。标准ReAct框架由Yao等人于2022年提出,允许语言模型交替生成推理轨迹和具体行动,但其核心依赖大型语言模型的内部推理能力,难以保证每一步都有可追溯的数据来源。DecisionLens的差异在于:它完全绕开语言模型,用确定性算法替代概率推理——每一步计算都是显式的算术运算(如 on_hand ÷ weekly_sales = days_of_cover),而非神经网络的隐式激活。这使得整个推理链路在原则上等价于一段可被人工逐行复查的电子表格公式,而非一个需要"信任"的黑箱。这类以规则引擎为核心、以可解释性为第一约束的智能体,有时被称为 符号AI(Symbolic AI) 或 基于规则的专家系统(Rule-Based Expert System) 的现代轻量实现。
为什么证据引用如此重要
对于一个要支撑真实决策的智能体,"大概是对的"远远不够。证据引用的设计带来三个关键属性:
- 可验证——管理者只需打开被引用的那一行,几秒钟就能审核任何论断。
- 可调试——当智能体出错时,你能精确看到是哪一行数据或哪条规则误导了它。
- 诚实——智能体在物理上无法说出一个它没从文件中真正读到的数字。
最后一条,恰恰是通用聊天助手屡屡翻车的地方。它们可以把语气装得很笃定,但无法保证论断与底层数据严格绑定。
用评测代替形容词
任何人都能声称自己的智能体"很聪明",所以 DecisionLens 选择附带一套评测(eval)而不是堆砌形容词:
$ python eval.py
PASS restock_rule_identifies_lowest_cover_sku
PASS restock_action_includes_quantity
PASS channel_ranking_uses_net_revenue
PASS trend_attribution_cites_evidence
PASS overview_mentions_all_sources
PASS evidence_citations_include_row_numbers
PASS unknown_question_does_not_hallucinate
PASS offline_no_network_calls
8/8 assertions passed.
特别值得关注的是最后两项:智能体必须在不知道答案时如实承认,而测试套件会断言代码不发起任何网络调用。这意味着它可以在物理隔离的机器上运行——你的数据永远不会离开房间。这对金融、医疗等对数据主权敏感的场景具有直接吸引力。
这里的评测套件本质上是一组 行为测试(Behavioral Tests),也称为 端到端断言(E2E Assertions),是AI系统质量保证领域近年来兴起的重要实践。与传统软件测试不同,AI系统的输出具有不确定性,因此无法断言"输出等于某固定字符串",而需断言"输出满足某一语义属性"——例如"引用中包含行号"或"未知问题时不出现具体数字"。unknown_question_does_not_hallucinate 这一测试项尤其关键:它针对的是大型语言模型最臭名昭著的缺陷——幻觉(Hallucination),即模型在不知道答案时仍然自信地生成看似合理但实际错误的内容。将"不幻觉"做成一条可自动化运行的断言,意味着开发者每次修改代码都能立即验证这一安全属性没有被破坏,这在生产级AI系统中是极具实践价值的工程规范。offline_no_network_calls 断言则直接对应 气隙环境(Air-Gapped Environment) 的合规要求——在金融、国防、医疗等受监管行业,数据不得传输至外部服务器往往是法律层面的强制要求。
技术栈与开源信息
DecisionLens 的工程取向非常克制:
- 纯 Python 标准库(
csv、argparse、datetime)——无需 pip 安装,无需 API Key,不依赖云端。 - 代码量在 1000 行以内,可从头到尾完整阅读。
- 支持 HTML 报告输出,便于与非技术干系人分享决策结果。
项目仓库位于 github.com/Zhiyilang/decisionlens,附带三个示例数据集(零售销售、库存、客户反馈)和完整评测套件。克隆后运行 python eval.py,就能针对自己的CSV提出问题。
作者将 DecisionLens 作为参加 Open Agent Hackathon 2026(赛道02:可解释的多源推理)的作品。其核心论点很简单:一个会展示推理过程的智能体,比一个只是听起来很笃定的智能体更有价值。
一点观察
在大模型普遍被诟病"幻觉"的当下,DecisionLens 走了一条反潮流的路:不堆砌参数、不接云端,而是把"可追溯"做成硬约束。这种设计哲学提醒我们——企业级AI的真正门槛,往往不是回答得多漂亮,而是能否让人放心地把答案交给审计。对于那些曾被"信心满满却凭空捏造"的AI答案坑过的团队来说,这类带证据溯源的小而透明的工具,可能比参数更大的黑箱更实用。
相关推荐

一句提示词引发的全球PHP安全风暴:AI是救星还是隐患?
一句AI提示词竟引发全球PHP安全危机,维基百科、互联网档案馆受波及。本文梳理事件脉络,解析OpenAI与亚马逊的争议,探讨AI时代漏洞发现门槛降低带来的安全悖论与开发者应对策略。

当AI被拿走:依赖捷径如何削弱你的解题韧性
一项涉及1,222人的研究发现:使用AI答题后,一旦AI被移除,人们放弃解题的比例高于从未使用AI的对照组。文章分析AI依赖对学习韧性和元认知的影响,并探讨AI学习工具的设计启示。

Carta联手NewView:让创业公司员工提前套现股权
Carta 与 NewView Capital 合作推出新计划,简化创业公司 tender offer 流程,帮助员工提前出售股权套现。本文分析该合作的核心机制、员工股权流动性痛点及对创业公司股权激励的影响。