jevbooks

← 全部项目

graphify-jev

54Lynnn/graphify-jev

沿固定提交读懂 Graphify 的 Choice 路线、建图前置和失败出口,分清可借鉴的代码结构与仍待验证的效果。

Agent 决策0.99次选分类: 分类与路由

源码导读

Graphify-Jev 源码导读:从问题到候选代码节点

如果你在做代码导航,可以借鉴它如何让代码建图与遍历、让 Jev 缩小候选范围。真正值得复制的是这份分工,以及对“选中了一个节点”究竟能证明什么的限制。

源码核验 本地函数复现 · 未跑完整项目固定源码 85808c6a

1. 顺着输入、问题和代码分支读

从 pick_seeds_with_jev 开始:输入是已经建好的 NetworkX 图和开发者的问题。代码把节点聚成社区,用文件名和连接度较高的符号概括各社区。有多个社区时,用 Choice 选择相关范围;概率分布还可能让第二个社区进入搜索,总数最多两个。

选中的社区若有超过两个文件且超过 35 个节点,会再用一次 Choice 选文件;否则直接选节点。节点选项包含位置和 docstring(没有则用标签);超过 40 个时,代码按连接度保留前 40 个。最后一次 Choice 返回用于后续遍历的种子节点 ID。

实际路线是“社区 → 可选的文件层 → 节点”,调用次数随分支变化。本次核验的 bridge、pruner、audit 模块构造的是 Choice 问题;旧自动摘要中的 Score 用法,未在这些核心路径得到支持。

2. 选择失败,不等于答案为否

  • 没有 key、空图、社区请求失败,或社区 confidence 低于 0.35,都会返回 None,让调用方决定后续搜索路径。0.35 是这个项目的实现规则,不是适合你任务的已校准默认值。
  • 文件层选择失败后,节点层仍会考虑整个社区。节点请求失败就不追加种子;最终一个种子也没有时返回 None。因此部分成功的结果也可能只覆盖原计划搜索范围的一部分。
  • 架构审计请求失败会返回 diagnosis=UNKNOWN,却没有 is_malignant。扫描器对缺失字段默认取 false,于是把结果放入 benign_nodes。这是从源码推导出的失败风险,本站没有运行复现事故;使用该列表判断项目健康之前,应将未知单独保留。

3. 复制剪枝与缓存前,先看限制

剪枝器先过滤部分工具名称,让 Choice 选出一个邻居,再按候选原顺序补足剩余名额。失败时返回原邻居的前 max_keep 个。保留的全部邻居并未经过完整语义排序,问题里写“因果关系”也不等于验证了因果关系。

种子缓存 key 包含图路径(或对象标识)、节点数、边数和标准化后的 query,没有 Git commit 或内容哈希。图内容变化但数量相同时,只要旧 ID 仍存在,就可能重用旧种子;要求结果新鲜的应用应另加内容或版本指纹。

需要检查你自己仓库实际发出的文本。选节点、剪枝和审计除了路径与标签,还可能包含 docstring。这个提交不足以支持“只有路径和签名离开机器”的承诺。

4. 本地复现:计数未变的缓存与 40 个候选边界

2026-11-03,我们通过 AST 提取并执行了该提交中 _get_cache_key 与 pick_seeds_with_jev 的原函数体,配合合成图接口、mock 聚类和确定性 Choice 桩。环境为 Darwin arm64 / CPython 3.9.6,仅用标准库;没有 API 调用,也没有读取密钥或环境文件。这是函数级复现,不是 Graphify 完整集成或模型实跑。

缓存样本只有两个节点、一条边和同一个图路径。交换两节点的 docstring 并修改样本 commit 元数据后,key 仍为 /fixture/graph.json_2_1::target;第二次调用直接复用种子 a,没有再调用 Choice。清空缓存后改选 b。出现这个旧结果需要节点 ID 仍有效,同时路径/对象、计数和规范化查询不变;实验没有测量真实项目中发生的频率。

候选样本是单社区、单文件:40 个互相连接的枢纽加一个孤立目标。目标在 Choice 收到 40 个候选之前就被排除;去掉一个枢纽后剩 40 个节点,目标进入候选,同一个桩便选中了它。这说明即使选择器能认出已提供的目标,候选截断仍限制召回;它不测量 Jev 准确率或真实聚类算法。

复跑时先下载公开源码与下方脚本,再在本地执行。Python runner 本身不访问网络,并会拒绝 SHA-256 与固定快照不符的源文件。2026-11-02 的源码核对仍是原始基线,本次实验新增于 2026-11-03。

curl -fsSLo jev_bridge.py https://raw.githubusercontent.com/54lynnn/graphify-jev/85808c6a12ac48a4aa39d149df5f6d8b99f07d37/graphify/jev_bridge.py
curl -fsSLo graphify_offline.py https://jevbooks.com/examples/source-review-2026-11-03-graphify-offline.py
python3 graphify_offline.py jev_bridge.py

5. 先建图,再试 audit

以下顺序根据固定 README 整理,以 Graphify 自身仓库为分析对象。先准备与该提交兼容的 Python 环境,安装后提取图;audit 与 serve 才有图可读。这是文档核对后的步骤,本站尚未执行。

第一轮若想只检查本地流程,要确认没有配置 key;客户端还会读取本地 .env 和 ~/.graphify/.env。之后测试 Jev 时再配置 TYPESAFE_API_KEY,并记录 TYPESAFE_MODEL;有凭据的审计可能调用 API。

git clone https://github.com/54Lynnn/graphify-jev.git
cd graphify-jev
git checkout 85808c6a12ac48a4aa39d149df5f6d8b99f07d37
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
graphify-jev extract --code-only .
graphify-jev audit . --json
graphify-jev serve . --port 8899

6. 怎样才能证明它有帮助?

  • 源码已核验:上面的候选层级、数量限制、缓存字段和失败分支存在于这个提交。读过代码不等于集成环境已跑通。
  • 作者报告:README 提供了调用速度和重构案例。本站未复现其延迟、诊断准确度或重构收益。
  • 仍待运行:选一个固定的小仓库,检查提取出的图;测试没有 key 与注入请求失败时的分支;查看 UNKNOWN 最终如何进入 JSON 和界面。
  • 随后用固定问题对照原生搜索,由人先确定正确的文件或符号,保存图版本、实际模型、命中、调用数、tokens 和耗时。调用快本身不能说明导航更好。

迁移到你自己的工具

由代码枚举合法候选,提供足以区分它们的文本,最后返回候选 ID 或明确的未知。先选一小组你能人工检查正确答案的任务。借鉴这份职责拆分,限制和阈值则通过自己的评估确定。

README 自动摘要

根据 README 自动整理于 2026年9月27日,不是本站运行记录。上方编辑说明另行核对来源;旧摘要可能遗漏限制,请以导读标注的证据范围理解。

这是什么

Graphify-Jev 用本地 Tree-sitter AST 构建代码库知识图谱,并借助 Jev 帮助 Coding Agent 找到相关代码、修剪图谱噪声分支、诊断上帝类等架构问题。

它怎么用 Jev

Jev 驱动两阶段语义寻种(先锁定社区,再精确选点)、拓扑修枝以保留真实因果调用链,以及架构健康诊断:标记恶性上帝节点、放行良性基础设施。结果用于 Agent 的重构处方和本地雷达/卷帘大屏。

用到的原语:choicescore

值得抄的做法

两阶段 Jev 决策漏斗:先锁定社区再精确选点,斩断图谱噪声分支。

怎么试

pip install -e . ; graphify-jev install ; graphify-jev audit . --top 20 ; graphify-jev serve . --port 8899

去 GitHub 看

开始使用 Jev:API key 与第一个请求 →

README 片段的模型判断

项目信号使用仓库元信息、已有摘要与 README 前 700 个字符;没有通读完整项目。“未检出”仅表示这些材料中未检出,并不证明项目没有该能力。这里保留原始判断与实际记录的模型、日期,不是源码审计或运行验收。

模型与判定日期

收录门禁
jev-1.13.0
项目信号
jev-1.13.0
项目分类
jev-1.13.0
模式标签
jev-1.13.0

证据

这些信号只读取仓库元信息、已有摘要与清理后的 README 前 700 字符。≥ 0.60 表示片段中有提及,≤ 0.40 表示未检出,中间为未判定;都不是源码审查或运行结果。「可运行工具」题排除了研究实验,「推荐」题筛的是学习案例 Top 10,不是内容质量合格与否。

  • Jev 是项目的核心在材料中检出0.74
  • 展示了 System One 用法在材料中检出0.68
  • 写了怎么处理不确定片段中未检出0.04
  • 给出了实测数字在材料中检出0.63
  • 是能跑起来的工具在材料中检出0.81
  • 学习案例 Top 10 候选信号片段中未检出0.25
  • 是模型本身的复刻片段中未检出0.16
  • 解决的问题够普遍(0–2)按 0–2 打分1.79 / 2
  • 与 Jev 相关在材料中检出0.90
信号
Jev 是项目的核心0.74展示了 System One 用法0.68写了怎么处理不确定0.04给出了实测数字0.63是能跑起来的工具0.81学习案例 Top 10 候选信号0.25是模型本身的复刻0.1600.51解决的问题够普遍(0–2)1.79 / 2012

无判定区(0.40–0.60)

设计模式
漏斗0.43常开常闭0.28取景框0.2400.51

无判定区(0.40–0.60)

各阶段的 Jev 模型与判定日期见上方记录。简介由 DeepSeek V4.1 Flash 于 2026年9月27日 读 README 写成。