关于 frame-check
frame-check 是确定性文档分析 MCP 服务,可检查文档框架、遗漏、读者定位及数字主张。适合需要可复现分析且不希望服务端调用大模型的研究人员和团队。
主要功能
- 01确定性框架分析
- 02覆盖五种分析视角
- 03分析语气与时间取向
- 04候选框架模式检测
- 05对照来源核查数字主张
- 06可选且标注的 AI 解读
适用场景
- 01检查报告是否遗漏重要视角
- 02比较不同文档的框架
- 03对照一手来源核验文档数字
MCP 相关
它作为本地 MCP 服务运行,向兼容的 AI 客户端提供文档框架分析工具。结构分析无需调用大模型;可选的 AI 解读会单独标注。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 6 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_goal | enum | 否 | 当用户说明了调用 Frame Check 的目标时传入。可选值之一:'decide'(权衡选择)、'brainstorm'(探索选项)、'persuade'(撰写有说服力的内容)、'learn'(理解主题)、'audit'(默认等效值:不针对特定目标覆盖的结构性解读)。提供此参数时,absent_frames 会为与目标密切相关的框架附带 goal_relevance 字典,并在各 signal_strength 层级内优先排列与目标相关的条目。用户未说明目标时请跳过;其行为与 'audit' 相同。decide | brainstorm | persuade | learn | audit |
| source_text | string | 否 | 当用户提供了该文档应以之为依据的源材料(研究报告、SEC 文件、一手资料)时传入。此参数会启用数字级源材料忠实度验证(Layer 4),以及按句拆分的有依据/捏造/转述分析(Layer 11),并针对数字密集型来源给出应信任哪一层的范围规则。没有源材料时请跳过;无论如何都会运行结构性框架分析。 |
| user_context | string | 否 | 当用户在对话中说明了其处境、角色或决策背景时传入(例如,“我是一名正在医疗 AI 领域招聘的初创公司创始人”、“正在审阅一篇关于语言模型对齐的研究论文”)。提供此参数后,呈现指导会扩展为针对该背景筛选分歧相关性。该背景仅用于个性化相关性筛选,绝不用于处方建议(“缺失不等于处方”的保证仍然有效)。MCP 不会在响应中复述该值。未确立角色或决策背景时请跳过。最大长度为 2000 个字符。 |
| document_text | string | 是 | 要分析的文档。英语。经过验证的范围为 300 至 10,000 个词;少于 100 个词时,分析会附带低置信度提示;超过 1,000,000 个字符时会返回截断指导。接受 Markdown。此处填写要识别其框架方式的文本。 |
| compose_budget | enum | 否 | 默认值为 'standard'。工作记忆预算较紧时(每轮自我审查循环、批量文档处理)切换为 'minimal';明确需要内联 claim_level_treatments 表或未压缩的 agent_guidance 文本时切换为 'full'。 'minimal' = 前 3 个 absent_frames、前 1 个 cluster、前 1 个 pattern;agent_guidance 仅保留关键处方(省略内联 claim_level_treatments 表和示例;压缩后的格式会通过 claim_level_treatments_note 指向 compose_budget='full',以查看完整表格)。 'standard' = 前 5 个 absent_frames、所有 clusters、所有 patterns;agent_guidance 为压缩形式(规则同 minimal)。对于典型文档,负载比 'full' 小约 45%,同时完整保留结构覆盖分析和缺失项分析。 'full' = 不过滤输出,完整显示内联 agent_guidance。需要每个 absent_frame 条目、内联 claim_level_treatments 表,以及未压缩的 how_to_render_divergence / composition_discipline 文本时选择此项。 suggested_next_actions 区块在所有级别均保留(按调用生成,对用户的探索循环至关重要)。minimal | standard | full |
| include_divergence | boolean | 否 | 默认值为 true。无需传入此参数。分歧区块(按 signal_strength 排序的文档未采用的框架模式)是主要输出,默认启用。仅当需要不含分歧区块的旧版 0.7.x 格式响应时才显式设为 false(较少见;仅在集成方固定使用旧格式时采用)。 |
| divergence_rendering | enum | 否 | 默认值为 'list'。当缺失框架记录应包含 teaching_question 字段,以便以问题而非标识符的形式呈现时,切换为 'teaching_questions'。其他模式返回相同数据;此设置仅影响记录的装饰字段。list | completeness_check | teaching_questions | narrative |
| include_frame_opportunities | boolean | 否 | 默认值为 false。当用户需要根据缺失框架的教学问题和文档内容生成最多 3 个由 LLM 增强的文档专属问题时,设为 true。此设置会在分歧区块中添加 frame_opportunities,并为每项机会提供 model_provenance。每次调用的成本约为 0.001 美元(最多调用 3 次 Gemini Flash)。如果未设置 GEMINI_API_KEY 或 google.genai 库不可用,则回退为空列表,并返回 available=false。仅确定性路径请跳过。 |
详细介绍
Frame Check
了解文档未呈现的内容。
Frame Check 是一款确定性的结构性框架分析工具。它会指出文档采用了哪些分析视角、忽略了哪些视角,以及如何定位读者;同时,它会将文档中的数字主张与大模型无法访问的第一手来源(SEC EDGAR、FRED、World Bank 等)进行交叉核查。它本身不会调用 LLM,因此同一份文档始终会得到相同的分析结果,且无需支付模型调用成本。
快速开始(MCP 服务)
PyPI 软件包 frame-check-mcp 是 Model Context Protocol 服务。它在本地运行,为任何兼容 MCP 的 AI 客户端(Claude Desktop、Cursor、Cline、Continue.dev 等)提供确定性的结构性框架分析工具。
pip install frame-check-mcp
然后,将 MCP 客户端指向已安装的入口点。对于
Claude Desktop,请在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"frame-check": {
"command": "frame-check-mcp"
}
}
}
重启客户端。之后,在任意对话中询问:“能否对这份文档进行框架分析?”完整的安装与验证详情见 docs/MCP_SERVER.md。
验证 wheel(sigstore 证明)
每个已发布的 wheel 都附带 sigstore 构建来源证明,该证明通过 OIDC 在 GitHub Actions 发布工作流中生成。希望验证 wheel 是由此仓库的 CI 构建(且从运行器到 PyPI 期间未被修改)的使用者,可以通过 gh CLI 完成验证:
pip download frame-check-mcp --no-deps -d /tmp/fc-verify
gh attestation verify /tmp/fc-verify/frame_check_mcp-*.whl \
--owner Clarethium
验证通过可证明 wheel 工件的哈希值与对应标签的发布工作流运行所签署的哈希值一致,证明中还记录了工作流文件路径和 git SHA。验证并非必需;注重安全的部署和软件包镜像可能希望将其纳入安装流程。
功能
传入一份文档,Frame Check 会返回:
- 结构性框架分析:文档涵盖了五种分析视角(原因、风险、利益相关方、趋势、不确定性)中的哪些,忽略了哪些,以及各视角的密度。
- 语气与认知立场:文档如何定位读者,以及有多少比例的主张注明了来源。
- 时间取向:文档是否以历史数据、当前状态或预测为结论提供依据。
- Frame Vocabulary Standard 候选匹配项:文本中触发基于规则的信号的已命名框架模式,每项均附有识别线索和详细示例。这些匹配项是候选级别的信号,并非经过验证的标签。
- 来源网络验证:针对 SEC EDGAR、FRED、World Bank、Alpha Vantage 和 Wolfram Alpha 核查数字主张(仅限这些服务商覆盖的内容)。
- 可选的 AI 叙述,从文字层面解读框架。此内容会明确标注,以免读者将大模型解读与确定性测量结果混为一谈。
方法
结构测量是基础。工具做出的每项框架判断,都由确定性的模式匹配器计算得出;对于相同输入,始终返回相同结果。如果配置了 API 密钥,还可以通过 AI 辅助解读进行补充,但这类内容会明确标注,绝不会隐藏在结构层之下。
验证范围有限。工具只会针对确实覆盖相应声明类型的数据提供方验证数值声明,并公开自身的校准结果(各提供方的精确率、召回率和 F1),而不会在缺乏证据时断言结论。
命名模式检测是独立于结构画像的另一个 Beta 层。它会呈现候选匹配、检测不足标记、密度注意事项和置信状态,而不是给出笃定的标签,让你看清工具不确定的地方,而不是盲目相信过度自信的结论。
校准数据、诚实说明的局限,以及背后的方法论,都见于 frame.clarethium.com/corpus/methodology 上的方法论页面。
为什么要用它,而不只是用大模型
兼容 MCP 的 AI 客户端已经可以通过提示大模型来分析文档。Frame Check 的价值在于弥补大模型的不足:
- 确定性。 对于相同输入,结构层在不同运行、部署和模型版本中都会返回相同的数值。让大模型回答“这份文档使用了哪些框架”,每次得到的答案都不同,换个模型也会不同。可复现的分析需要确定性结构;观点可以在此基础上叠加。
- 每次查询零成本。 Frame Check 的 MCP 服务不会在服务端调用大模型。用户需要的话,由调用方的 Agent 解读文本。这意味着,Frame Check 检查一份 10,000 字的文档,用户无需支付费用($0.00);大模型调用则会收取 $0.05 至 $0.50。
- 明确指出缺失内容。 框架差异区块会将已匹配的框架与 Frame Vocabulary Standard 目录进行比较,列出文档未涉及的内容。让大模型回答“缺少了什么”,它可能会编造听起来合理的缺漏;Frame Check 则会列出未在文本中触发的目录条目,并明确说明这一点。
- 经过校准的检测。 API 响应会将命名模式层标记为 Beta(
engine_status: beta),并呈现检测不足标记,而不是给出笃定的标签。你得到的是诚实的“这一点尚不确定”,而非自信的猜测。 - 来源核验。 对于有数据提供方覆盖的数值声明,工具会根据各提供方的定价档位(免费或使用用户密钥),与 SEC EDGAR / FRED / World Bank / REST Countries / Alpha Vantage / Wolfram Alpha 进行交叉核验。让大模型判断“这个数字对吗”,它无法获取一手来源;Frame Check 则可以。
确定性、以来源为依据的测量并非大模型擅长的工作。Frame Check 提供这一层,让大模型能够依托它,而不必在对话中直接承担这项工作。
示例
同一个提示词,四个前沿大模型,得出四种截然不同的框架特征。
data/worked_examples/four-llms-on-bitcoin-retirement-2026.md
使用 Claude Haiku 4.5、GPT-5、Grok 4.1 Fast Reasoning 和 Gemini 2.5
Flash 回答一个投资问题,并呈现各模型的结构特征:语气、覆盖范围、框架匹配和来源引用率。简单来说:你的 AI 只是多种框架选择之一,而不是唯一的框架。
另有五个已发布示例:对回应人生抉择提示词的大模型回复进行框架分析、分析一家 AI 公司创始人的文章、分析 FOMC 货币政策声明、对大模型总结的财报新闻稿进行来源网络核验,以及逐步分析 Claude 关于比特币退休建议的差异。完整示例集见
data/worked_examples/。
文档
查看 docs/README.md,按用途整理了阅读路径(安装与使用、理解框架分歧、阅读完整示例)。完整目录如下:
docs/MCP_SERVER.md:MCP 服务参考(工具、资源、提示词)docs/COOKBOOK.md:针对常见采用者任务的五个配方(Agent 提交前进行框架检查、决策点处的分歧、基于来源的验证、双大模型比较、自定义 FVS 规则)docs/FRAME_DIVERGENCE_CONTRACT_v1.md:框架分歧输出格式的接口契约(c1.0)data/frame_library/:包含 20 项的框架词汇标准目录data/worked_examples/:已发布的完整示例,含多大模型比较和逐文档框架检查分析(6 项)- 框架词汇标准背后的方法论见 frame.clarethium.com/corpus/methodology
- 框架检查简介(博客):四个分析层级及其输出示例
运行测试
pip install -e .[test]
python3 run_tests.py
或者直接通过 pytest 运行:
python3 -m pytest -q
tests/ 下有 26 个测试文件,端到端运行约需 30 秒。包括 tests/test_mcp_adversarial.py 中的 40 个对抗性调度器测试函数(收集时参数化为 63 个测试)、针对七个 wheel-surface 模块的按模块 80% 覆盖率门槛(scripts/check_per_module_coverage.py)、配方契约测试套件(tests/test_cookbook_recipes.py),以及体裁分类器和框架分歧覆盖率测试。
许可证
代码采用 Apache-2.0 许可证;FVS 库和完整示例采用 CC-BY-4.0 许可证
(各目录的具体清单见 NOTICE)。
引用
如果 Frame Check 对你的工作有帮助,请参阅 .github/CITATION.cff 获取可引用格式。Frame Check 由 Lovro Lucic 编写。
贡献
根据 .github/CONTRIBUTING.md,需要提供 Sign-off-by-DCO。治理规则见
.github/GOVERNANCE.md(采用 BDFL 模式,并为规范晋升决策指定了具名的强制职能)。
问题反馈
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。