真实面经题目 · 原创解析
AI Coding 落地时,如何给模型提供有效仓库上下文,并限制它触碰事务、权限、资金等高风险链路?
这题考 AI Coding 的上下文工程和风险边界。答案要同时讲清如何给模型足够信息完成任务,以及如何通过范围控制、权限控制、测试和 review 防止它碰坏核心链路。
真实面经题目 · 原创解析
这题考 AI Coding 的上下文工程和风险边界。答案要同时讲清如何给模型足够信息完成任务,以及如何通过范围控制、权限控制、测试和 review 防止它碰坏核心链路。
我会把 AI Coding 的落地拆成两件事:给对上下文,以及管住改动边界。上下文不是把整个仓库丢给模型,而是按任务组织一个 context pack,包括目标、入口文件、相关接口、数据模型、调用链、错误日志、测试用例、代码规范、历史兼容约束和本次允许修改的文件范围。这样模型能理解局部业务,不会靠猜。风险边界上,要先给代码分级:普通展示和工具代码可以给较高自动化权限;事务、权限、资金、状态机、并发控制、数据迁移、加密密钥、发布脚本和公共基础库属于高风险区。高风险区默认只读或 plan-only,模型只能解释、定位和提出方案,不能直接写入;确需改动时要走小分支、明确 diff budget、强制 owner review、测试先行、CI、安全扫描和灰度发布。工程实现上可以用路径 allowlist/denylist、工具权限、沙箱 worktree、提交前 hook、危险 API 检测、secret scan、合并保护和审计日志。评价时看生成成功率、返工率、越权改动拦截率、测试通过率、review 发现问题数和线上回归,而不是只看生成速度。
模型需要的是和任务相关、结构化、可信的上下文。应包含需求目标、调用入口、相关类型和接口、业务规则、已有测试、错误日志、依赖约束、编码规范和不可改边界。全仓库塞进去会带来噪声、token 成本、旧代码误导和隐私风险,反而让模型更容易改偏。
一个好的 context pack 可以按任务生成:先定位入口和调用链,再抽取直接相关文件、接口契约、数据库字段、配置项、失败 case 和相邻实现。对模型明确输出要求,例如先解释影响面,再列修改计划,最后只在指定文件内给 patch。这样能提高命中率,也方便 review。
事务、权限、资金、状态机、并发控制、数据迁移、加密密钥和公共基础设施不是普通业务代码。它们的错误可能导致数据不一致、越权、资金损失或大面积故障。AI Coding 流程要把这些目录、函数、表和接口标成高风险资产,而不是等模型改完后再人工发现。
可以把模型权限分成只读分析、生成计划、生成 patch、运行测试和提交变更几档。对高风险资产默认只读或 plan-only;对低风险代码可允许写入沙箱分支。路径 allowlist/denylist、危险命令拦截、secret scan、写文件审批和审计日志,都能把抽象规则落到执行层。
AI 生成代码不能只靠编译通过。要跑单元测试、集成测试、契约测试、权限回归、并发或幂等测试、迁移 dry-run、安全扫描和静态检查。高风险改动还要有业务 owner review、最小 diff、灰度发布和回滚预案。重点是证明模型没有破坏隐含约束。
每次 AI Coding 失败都应回流到上下文构建和风险规则中:哪些文件缺失导致误判,哪些目录应该禁止写,哪些测试未覆盖,哪些 prompt 模板让模型过度自信。长期看,AI Coding 的质量来自上下文检索、权限治理和工程验证的组合,而不只是模型更强。
全仓库上下文噪声大、成本高、容易包含过时实现和敏感信息。模型更需要和任务相关的入口、调用链、接口契约、测试和边界约束。上下文越准,越容易生成可 review 的小改动。
不是绝对不能,而是不能让它无约束直接改。可以让 AI 做只读分析、风险枚举、测试设计和方案草稿;真正写入要走小范围 patch、强制 review、完整测试和灰度回滚。
可以部分自动化,例如基于调用图、依赖图、代码搜索、最近改动、失败日志和测试引用生成候选上下文。但最终要有任务范围和敏感资产规则,否则自动检索也可能把模型带到错误区域。
提交前比较 diff 和允许范围,检查高风险路径、危险 API、权限表、迁移脚本、配置和密钥文件是否被触碰。越界时阻断提交,要求人确认或重新生成受限 patch。
不能只看生成速度。还要看任务一次通过率、人工返工时间、测试失败类型、越权拦截、review 发现缺陷、上线回归和同类任务复用效果。