玄龙(下):ACI 预判注入与三合一的活体总控台
系列:《宪法即代码》第 33 篇(下)| 标签建议:AI编程、Rust、智能体架构、AI治理、防御性公开
文章目录
- 玄龙(下):ACI 预判注入与三合一的活体总控台
-
- 五、ACI 预判注入:主动智能的"未问先答"
- 六、三合一总控台:一座真的能敲的活体
- 公开声明
- 可证伪
- 快问快答
- 下一篇
- 系列目录(持续更新中)
接(中)篇:记忆存下来了,但"存"不等于"用"。本篇讲玄龙怎么主动用记忆——ACI 预判注入("未问先答"的双路检索与充分性门),以及三合一总控台:一座真能敲的活体终端。
五、ACI 预判注入:主动智能的"未问先答"
第 393 条是玄龙之所以叫"主动"的原因。原文四个机制:
内容:玄龙必须具备ACI(Anticipatory Context Injection)预判注入能力。ACI核心机制:①记忆召回——根据当前任务上下文从SQLite记忆底座召回相关历史记忆;②充分性门——判断召回记忆是否充分,不充分则触发补充检索;③双路检索——语义检索(FTS5)+向量检索双路并行,结果融合排序;④置信度放大——对高置信度记忆权重放大。ACI由魄·玄龙164承载,精·玄龙·ACI为能力标签。响应时间<200ms,TopK默认10。
双路检索归拢器是已实装的,在 和_水_0003/和_火_0016/和_金_0166/元_L4_90523_clause.rs(逐字):
/// 金行·FTS5全文命中
pub struct FtsHit { pub id: u32, pub score: u32 }
/// 金行·向量命中
pub struct VecHit { pub id: u32, pub score: u32 }
/// 金行·双路检索归拢器:把两路命中收敛为一份TopK有序清单
pub struct DualRetrieval { top_k: usize }
impl DualRetrieval {
pub fn new() -> Self { Self { top_k: 10 } }
/// 归拢两路命中:按id合并得分,去重,降序收敛,截取TopK
pub fn converge(&self, fts: &[FtsHit], vec: &[VecHit]) -> Vec<u32> {
let mut combined: HashMap<u32, u32> = HashMap::new();
for h in fts {
let cur = combined.get(&h.id).copied().unwrap_or(0);
combined.insert(h.id, cur.saturating_add(h.score));
}
for h in vec {
let cur = combined.get(&h.id).copied().unwrap_or(0);
combined.insert(h.id, cur.saturating_add(h.score));
}
let mut ids: Vec<(u32, u32)> = combined.into_iter().collect();
ids.sort_by(|a, b| b.1.cmp(&a.1).then(a.0.cmp(&b.0)));
ids.into_iter().take(self.top_k).map(|(id, _)| id).collect()
}
}
这段代码有两个工程设计点值得公开:
排序 tie-break 是确定性的。 sort_by(|a, b| b.1.cmp(&a.1).then(a.0.cmp(&b.0)))——先按得分降序,得分相同时按 id 升序。这一句 .then(a.0.cmp(&b.0)) 是本系列第 26 篇(双跑断言)在 ACI 上的落点:如果 tie-break 不确定,同一输入会产出不同顺序的 TopK,双跑就会红。 确定性不是"顺便"做到的,是被写入排序键的。
得分合并用 saturating_add。 两路命中同一 id 时分数相加,饱和加法防溢出。这防止了"某条记忆两路都命中、分数溢出回绕成 0 反而被排到最后"的诡异 bug。
充分性门在第 401 条(同卷),原文四合一:
内容:玄龙ACI预判注入必须经过充分性门验证。机制:①记忆充分性——召回记忆是否覆盖关键上下文;②置信度充分性——置信度是否达阈值;③完整性充分性——是否无关键缺失;④时效性充分性——是否在有效时效内。四项全满足才放行,否则触发补充检索或降级。由魄·玄龙164承载,阈值默认0.8。
| 四合一放行 | 全部满足才放行 | 元_L4_90531_clause.rs(金行)/ 元_L4_90542_clause.rs(水行)双站 |
| 记忆充分性 | 0.8 | 常量 记忆充分性阈值=0.8 |
| 补充检索/降级 | 不充分则触发 | 分级流转逻辑 |
响应时间约束 <200ms 与 TopK =10,在 verify_clause_393_content 里以常量校验:aci_latency_ms = 150(150<200 通过)、ACI_TOP_K = 10。
ACI 是卷十里"实装完成度最高"的一条:数据结构(FtsHit/VecHit)、归拢算法(合并去重排序截断)、TopK 参数、tie-break 规则、充分性门阈值——全部在案且可跑。唯一没接上的是"双路中的 FTS5 那一路":底座第四节说了,SQLite 里跑的是 LIKE 不是 FTS5。所以 ACI 的"双路"目前是"LIKE 一路 + 词袋向量另一路",不是宪法写的"FTS5 + 向量"。这个不一致必须写出来。
六、三合一总控台:一座真的能敲的活体
第 429 条有一条"三合一融合扩展",把架构说清楚了(原文节选):
在玄龙万物融合基础上,宪法将融合扩展为三合一——玄龙(主脑/灵魂)+灵逍(身体)+控制台(脉络/全量面板)三者协同合一。融合强制要求:①玄龙TICK主循环作为主脑,在一进程内驱动灵逍宪法脉冲320闭环真实运行,并产出调度结果供控制台显示;②……③控制台全量面板作为脉络,在终端可见玄龙TICK调度、灵逍宪法裁决、真实开发进度,并向玄龙下达交互指令(tick/schedule/verify/start/report/progress/run)。
这条已实装并且真实可运行——和_水_0003/和_火_0016/main.rs 就是它。它是一个真实 HTTP 服务器 + 交互式终端(逐字):
/// 三合一脉络·真实HTTP服务器默认端口(控制台=脉络·全量面板)
const CONSOLE_PORT: u16 = 8970;
/// 第385条元条款种子基准
const CLAUSE_SEED: u64 = 385;
fn interactive_loop() {
let mut ticker = XuanlongTicker::awake();
let mut pulse = ConstitutionPulse::dawn();
loop {
// …
match parts[0] {
"tick" => { for i in 0..n { println!("{}", ticker.tick(i + 1)); } }
"schedule" => { println!("{}", ticker.schedule()); }
"verify" => match ticker.verify_clause_392_content() { /* … */ },
"focus" => { println!("玄龙焦点栈:当前 TICK 心跳 {} 拍·看门狗 30s·三级队列承载", ticker.beat_no()); }
"start" => { for _ in 0..n { pulse.beat(CLAUSE_SEED); } println!("{}", pulse.report()); }
"report" => { println!("{}", pulse.report()); }
"learn" | "evolve" => { println!("{}", run_learn_loop(&mut ticker)); }
// …
}
}
}
这里有三件事值得公开:
① HTTP 脉络面板是真实数据的。 面板 HTML 里的文件数、文件夹数不是硬编码,是现跑 find | wc -l;门禁结果现跑 ./generate_manifest –verify-h256 和 ./metrics_validator –lock-only。宪法不接受"100"这种装饰性数字(第 305 条附近反复强调"非硬编码100")。
② "主动学习"命令是真闭环。 learn 命令做五步:感知(真实跑 cargo test –workspace 采通过率作为"适应度")→ 记忆(写 SQLite)→ 决策/调参(通过率 ≥0.98 保持看门狗 30s;≥0.8 收紧到 20s;<0.8 紧急收紧到 10s)→ 进化(决策写回 SQLite)→ 可回溯。逐字:
let evolution = if fitness >= 0.98 {
"看门狗=30s(健康保持)·进化=稳定"
} else if fitness >= 0.8 {
"看门狗=20s(适度收紧)·进化=调优"
} else {
"看门狗=10s(紧急收紧)·进化=修复"
};
let _ = base.remember("evolution", evolution);
这是玄龙第一次真的"根据自身健康度调整自身参数"——虽然只有一维(看门狗阈值),但闭环是真的:采集→存储→决策→回写→可追溯。
③ “一键启动整个生命体”。 总控台维护一张器官二进制名表 ORGAN_BINS(阴五行 xuandao_wood/fire/earth/metal/water + 阳五行 xuandao_backend/frontend/security/database/openclaw + 和三极 xuandao_ontology/universe/allthings),一声令下把其余器官作为子进程真实拉起。按代码注释口径:15 个五行器官模块 = 玄龙自身(灵魂/主脑,即本总控台)+ 14 个作为子进程拉起的器官。
公开声明
本文所披露的技术方案(ACI 双路检索归拢算法及其确定性 tie-break 与饱和合并规则、充分性门四维 0.8 阈值、三合一总控台交互指令集、主动学习闭环的适应度—调参映射),均为本项目作者原创,特此公开发表,以期其成为公共知识。我们认为:成为时代标准远比收取授权费更有价值。
可证伪
三步:① 打开 和_金_0166/元_L4_90523_clause.rs,核对 DualRetrieval::converge 的 saturating_add 与 .then(a.0.cmp(&b.0));② 在仓库根执行 cargo run -p xuandao_dragon,敲 verify / learn 看真实输出;③ 核对充分性门 0.8 阈值。代码可跑,输出可看,回来验我。
快问快答
Q1:ACI 的"预判"是不是就是 RAG 检索? 形式上像,目标不同。RAG 是"用户问了,我查资料再答";ACI 是"任务刚开始,我预判你接下来会需要哪些历史记忆,先注入进去"。差别在触发时机:ACI 在任务开始前注入,RAG 在提问后检索。所以 ACI 必须配一个"充分性门"来判断"我预判得够不够",否则等于在上下文里灌噪音。
下一篇
第 33 篇(四):《玄龙(四):审计面、未实装清单与卷十总表》——数字都对上了,但有一处对不上;以及 TTL/FTS5/PSI/Qwen 这些"明确未实装"的边界声明。
系列目录(持续更新中)
(本文为《宪法即代码》系列第 33 篇(下),数据口径:宪法版本 XF58.23.0(09-24 颁·较前批第 30-32 篇实测时点的 XF58.19.0 已迭代四版——09-23~09-24 连续四次修宪颁出;各篇版本号均为各自实测时点的真实快照)、代码实测 2026-09-25)
网硕互联帮助中心





评论前必须登录!
注册