LLM 代码生成与审查:把补丁放回编译、测试和人工门禁
模型能生成补丁,也能生成看似合理的错误。接入研发流程时,输出必须回到现有类型检查、测试、安全扫描和代码审阅。
限制输入和修改范围
任务说明包含目标文件、禁止改变的接口与验收命令。敏感代码先确认数据边界。模型先提交候选 diff,不直接合并;解析失败、上下文不足或测试失败时停止,并把原因返回给审阅者。
下面的 Tokio 重试器只覆盖单次调用的重试。代码生成平台还要处理仓库边界、补丁验证和人工批准,并单独检查超时来源、幂等约束与错误分类:
use std::sync::Arc; use tokio::sync::Mutex; use std::time::Duration; pub struct ResilientEngine { max_retries: u32, timeout: Duration, } impl ResilientEngine { pub fn new(max_retries: u32) -> Self { Self { max_retries, timeout: Duration::from_millis(500), } } pub async fn execute_task(&self, payload: &str) -> Result<String, String> { for attempt in 1..=self.max_retries { if let Ok(res) = tokio::time::timeout(self.timeout, self.inner_call(payload)).await { return res; } tokio::time::sleep(Duration::from_millis(50 * attempt as u64)).await; } Err("Degraded fallback triggered".to_string()) } async fn inner_call(&self, payload: &str) -> Result<String, String> { Ok(format!("Processed payload: {}", payload)) } }审查结果如何评估
准备包含真实边界问题的脱敏变更集,记录有效发现、误报和遗漏。候选模型与基线使用同一输入和工具版本,延迟比较同时保存运行环境与统计口径。
最终责任仍在合并者。LLM 可以缩短搜索路径,但不能替代对公共 API、数据迁移和失败路径的判断。