# 研究笔记：聚焦问题的技术答案

规范 HTML：https://aogavrilov.com/zh/research-notes/
英文版本：https://aogavrilov.com/research-notes/
文档语言：zh-Hans

面向问题检索的证据有边界答案。每篇笔记分别说明实用步骤、已发表证据和明确局限，不报告新的实验结果。

## 码空间与 token 空间掩码扩散：如何公平比较

当离散编解码器存在有损压缩时，用阶段一致的协议比较码空间与 token 空间掩码扩散语言模型，并单独测量编解码器重建损失。

问题：应如何比较码空间与 token 空间的掩码扩散语言建模？

直接回答：对源文本、编解码器重建、token 空间输出和解码后的码空间输出采用同一个外部评分器与同一套预处理。必须单独报告编解码器重建差距：码空间生成无法恢复编解码器已经丢失的信息。

规范笔记：https://aogavrilov.com/zh/research-notes/code-space-vs-token-space-masked-diffusion/
英文笔记：https://aogavrilov.com/research-notes/code-space-vs-token-space-masked-diffusion/

## 使用生成模型进行局部代码修改

在保留完成所需代码变更自由度的同时，避免生成模型无谓地重写整个函数，并共同验证编辑局部性、任务成功与生成多样性。

问题：如何让生成模型修改代码而不重写整个函数？

直接回答：在生成之前定义受保护区域与可编辑区域，复用或约束受保护表示，只生成候选变更，并拒绝任何修改受保护代码或未通过任务检查的输出。必须同时衡量局部性和任务成功。

规范笔记：https://aogavrilov.com/zh/research-notes/localized-code-modification-generative-models/
英文笔记：https://aogavrilov.com/research-notes/localized-code-modification-generative-models/

## 面向软件工程的受约束代码生成

区分语法约束、类型约束、保持边界和行为级验收检查，明确每种机制真正能够保证什么，避免把可解析输出误当成功能正确。

问题：受约束代码生成在软件工程流程中能够保证什么？

直接回答：它只能保证被显式执行的属性。语法约束解码可以保证输出属于某个语法；类型感知方法可以以类型有效性为目标；但两者都不能单独证明任务正确、语义等价、行为保持或编辑局部性。

规范笔记：https://aogavrilov.com/zh/research-notes/constrained-code-generation-software-engineering/
英文笔记：https://aogavrilov.com/research-notes/constrained-code-generation-software-engineering/

## AI 辅助重构：方法与证据

评估近期 AI 辅助重构方法时，不把看似合理的生成补丁误认为已经验证的行为保持，并要求编译、测试、静态检查与重构检测形成证据链。

问题：评估 AI 辅助、行为保持的重构时，哪些方法和证据最重要？

直接回答：把变换建议与可信执行和验证分开。条件允许时，让模型识别重构，再由重构引擎执行；随后要求编译、测试和静态检查通过，并确认预期变换确实发生。

规范笔记：https://aogavrilov.com/zh/research-notes/ai-assisted-refactoring-evidence/
英文笔记：https://aogavrilov.com/research-notes/ai-assisted-refactoring-evidence/

## 可预测代码生成需要保持契约

确定性采样并不等于可预测性；只有可观察的受保护属性和验收检查，才能让生成行为可测试，并报告拒绝率、稳定性与任务成功。

问题：什么使代码生成具有可预测性，而不只是可控制？

直接回答：可预测性需要在生成之前声明可观察契约：什么可以变化，什么必须稳定，如何测量每个属性，以及何时拒绝输出。固定提示、随机种子、掩码、语法或潜在码都只是机制。

规范笔记：https://aogavrilov.com/zh/research-notes/predictable-code-generation-preservation-contract/
英文笔记：https://aogavrilov.com/research-notes/predictable-code-generation-preservation-contract/
