一、为什么改
v0.6.6 标着"自我进化",但实际只有 Python CLI 版本有演化能力。HTML 版是静态检测器——检测完就完了,没有改写、没有对比、没有积累、没有调权。
梁总实际用了一天,亲手跑全流程,发现了三个根本问题:
- 演化闭环缺改写环节。 用户得手动把文章拷到 ChatGPT 里改,再贴回来。工具叫 Self-Evolving,但改写完全靠外部。
- "谁在进化"回答不了。 评分规则没变、检测引擎没变、大模型也没变。那 Self 到底是谁?
- 没有对比就没有演化。 不实际操作不知道——对比需要手动四步操作,用户大概率不点。没人点对比,演化永远不触发。
二、核心设计决策
谁在进化?
评分权重在进化。 14 维检测规则固定不变,但每维度在总分里乘多少——这个乘数会从用户的改写历史中学习。大模型只管改写(第二步),演化引擎是纯数学(第四步)。不调 API。
一句话:规则不变,权重自调。它学会了用户实际能改什么,不再对改不动的维度死扣分。
为什么裸分和加权分必须分离?
如果演化 Δ 用加权分算,会形成自噬循环:加权分高→Δ 小→维度看起来没改善→降权→加权分更高→Δ 更小。
正确做法:演化永远基于裸分计算,权重只影响展示给用户看的加权分。detect() 现在输出三套数据:裸分、加权分、每维裸分数组。
对比为什么自动化?
用户不会主动去点对比。改写后保存 → 自动找到上次保存的记录 → 自动对比 → 自动写演化日志 → 自动触发演化引擎。保存即对比,对比即演化。
AI 改写是什么定位?
可选快捷键,不是核心能力。 不接 AI 也能跑完完整闭环——用户自己找任何工具改写完贴回来,一样的。内置改写唯一价值是省掉复制粘贴 + 提示词受控。
提示词为什么不能点名弱项?
如果告诉 AI"你的 Structure 只有 40 分,请优化"——AI 猛攻 Structure → 演化数据显示 Structure 改善率高→proven→加权重。自我实现的预言。
正确做法:只告诉 AI"请优化这篇文章",带硬约束(不编造事实、不虚构来源、不机械堆关键词)。
演化安全机制
| 条件 | 处理 |
|---|---|
| 冷启动(<5 次对比) | 不调权,只展示对比 |
| 单维度样本不足(<8 次) | 保持权重 1.0 |
| 基线裸分 ≥ 85 | 饱和锁定,权重 1.0,退出追踪 |
| 改善率 ≥ 80%,Δ ≥ 5 | Proven,权重 1.15–1.25 |
| 改善率 50–80% | Fragile,权重 0.90–1.10 |
| 改善率 < 30% | Hard to improve,权重 0.85 |
| 连续 3 轮无改善 | 自动重置到 0.95,打破负循环 |
安全约束:±0.05 缓动、0.85 地板、14 维归一化、β 平滑。
三、改了什么
1. 检测引擎
detect(text, evoWeights) — 权重只影响展示分,不影响原始分。输出裸分+加权分+每维裸分数组。
2. JS 演化引擎(600+ 行)
浏览器端演化。读 localStorage 对比历史,分类维度,调整权重。纯前端,不依赖服务器。
3. AI 改写引擎(180 行)
内部 PM 版走服务端代理(无需填 Key)。外部版用户自配 Key 存浏览器 localStorage。
4. 服务端代理端点
POST /api/geo/ai-rewrite — 通过本地 DeepSeek 代理转发,Key 全程不暴露到浏览器。
5. 自动对比
AI 改写后保存 → 自动找到上次保存记录 → 自动对比 → 自动写演化日志 → 自动触发 evolveEngine()。
6. 导入导出
演化数据导出为 JSON,换设备或清缓存后可导入恢复。
7. 中英文 UI 切换
标题栏中文/EN 按钮一键切换。检测引擎自动根据内容语言切换维度标签。
8. 对比日志增强
日志新增改写来源(AI/手动)、模型名称、采纳标记。双写:服务端 API + 浏览器 localStorage。
四、压测发现的 Bug
Bug 1:检测后页面崩溃
L() 函数在 detect() 内部是局部变量,renderResult() 调用不到。每次点 Run Check 直接报 L is not defined。已修复。
Bug 2:Copy Result 不可用
copyResult() 引用了不存在的全局变量 _isCN。已修复。
五、效果对比
| 指标 | v0.6.6 | v0.7.0 |
|---|---|---|
| 演化能力 | Python CLI only | HTML 全功能 |
| 改写入口 | 手动复制到 ChatGPT | 一键 AI 改写(可选) |
| 对比触发 | 手动四步操作 | 保存即自动对比 |
| 数据安全 | 清缓存全丢 | 导入/导出 JSON |
| 中文支持 | 仅引擎自适应 | 全 UI 中英切换 |
| 评分体系 | 单一分数 | 裸分+加权分双轨 |
六、遗留问题
- 浏览器清缓存丢数据 — 导入导出是补偿方案,云端同步可作为 PRO 功能。
- 演化需要数据积累 — 冷启动 5 次对比、单维度 8 次才能分类。低频用户可能永远看不到效果。
- AI 改写 CORS 限制 — 浏览器直连大模型 API 可能遇跨域限制。
- 维度交叉污染 — 改写 Structure 可能附带改善 Readability,统计不绝对干净。v1 不处理。
常见问题
Q: GEO Auditor 免费吗?
A: 完全免费。MIT 开源协议。在线检测器 zhibi.xyz 纯浏览器端运行,零网络请求,无需注册,没有限制。
Q: 和 Originality.ai / GPTZero 有什么区别?
A: 那些工具检测"是不是 AI 写的"。GEO Auditor 检测"写得好不好被 AI 搜索引擎引用"——14 个可操作维度,从结论前置到去 AI 腔。而且评分权重会自我进化:积累 5 次以上改写对比后自动激活。
Q: 能训练我自己的 AI Agent 吗?
A: 能。积累改写数据后运行 python3 geo_auditor.py --agent-prompt,CLI 会导出基于演化历史的写作规则——加载为 Agent 的系统提示词,提升其写作基线。
Q: 演化引擎需要 API Key 吗?
A: 不需要。演化引擎是纯浏览器端 JS 数学运算,读 localStorage、分类维度、调整权重,不调用任何 API。AI 改写按钮是可选的——需要你自己配 Key,但你可以跳过它,用任何已有的 AI 工具改写后贴回来。