Code Review、API 幻觉

共 46 题
📑 题目列表 46 题
#
★★★

1. 审查 AI 代码时,如何系统检查正确性、边界、并发、性能、安全、依赖和项目风格

审查 AI 代码时,如何系统检查正确性、边界、并发、性能、安全、依赖和项目风格?

  • 审查维度
  • 系统化检查
  • 边界与并发

审查 AI 代码应系统覆盖多维度:正确性(逻辑是否正确、是否符合需求)、边界(空值、异常、极限输入、溢出)、并发(竞态、死锁、线程安全、共享状态)、性能(N+1、复杂度、不必要的循环内调用)、安全(注入、越权、敏感数据、密钥)、依赖(版本、许可证、漏洞、来源)、风格(命名、结构、与项目一致)。按 checklist 逐项审查,重点攻击"看起来对但实际错"的高风险点(并发、安全、边界)。AI 代码审查不能只扫逻辑,要系统化。

系统化审查要"多维度 checklist"。AI 代码易在边界、并发、安全出错,需专项检查。性能与依赖是常见隐形问题。风格一致性降低维护成本。

#
★★★

2. 如何用官方文档、源码、编译和最小运行示例识别不存在或已过时的 API

如何用官方文档、源码、编译和最小运行示例识别不存在或已过时的 API?

  • API 真实性验证
  • 过时 API 识别
  • 多源验证

识别不存在/过时 API:官方文档(确认 API 存在、签名、状态)、源码(查看实际定义、deprecated 标注)、编译(编译错误暴露不存在的 API)、最小运行示例(运行验证行为)。AI 可能幻觉 API(引用不存在的类/方法)或使用过时 API。多源验证:文档 + 源码 + 编译 + 运行结合,确认 API 存在、签名正确、未过时。对 deprecated API 查替代方案。不能只信 AI 的 API 名称。

API 幻觉验证是"多源交叉确认"。文档/源码/编译/运行四层验证,缺一不可。编译与运行是硬证据,文档与源码给语义。防止"看起来存在但实际不存在"。

#
★★★

3. AI 生成的测试如何识别空断言、同源实现、过度 Mock 和只验证 happy path

AI 生成的测试如何识别空断言、同源实现、过度 Mock 和只验证 happy path?

  • 空断言识别
  • 同源实现
  • 过度 Mock

识别测试质量问题:空断言(无 assert 或断言无意义)、同源实现(断言复用实现逻辑,无法发现实现错误)、过度 Mock(mock 掉关键逻辑,只测被 mock 的调用)、happy path only(只测成功路径)。审查方法:检查断言强度(有具体值、有边界、有错误路径)、检查测试是否独立于实现(用需求推导断言)、检查 Mock 范围(不 mock 被测逻辑)、检查覆盖(边界/错误/异常)。用变异测试验证测试有效性。

测试质量是"有效性"与"独立性"的审查。空断言/同源/过度 Mock/只测 happy path 都让测试失真。审查断言强度、独立性、Mock 范围与覆盖,用变异测试验证。

#
★★★

4. Code Review 中如何系统化检查 AI 代码的并发(race condition、死锁)

Code Review 中如何系统化检查 AI 代码的并发(race condition、死锁)?

  • 并发问题识别
  • 共享状态
  • 死锁与竞态

系统化检查并发:检查共享状态(可变字段、静态状态、缓存、单例)是否被并发访问且线程安全;检查锁的使用(加锁顺序、锁粒度、死锁风险);检查原子性(读-改-写是否原子、竞态窗口);检查发布(对象是否安全发布)。用并发工具(ThreadSanitizer、竞态检测)辅助。重点检查:可变共享状态、非原子操作、锁顺序、线程池中的共享状态。AI 代码易在并发上出错(假设串行、漏同步)。

并发审查焦点是"共享状态 + 原子性 + 锁"。竞态源于非原子与共享状态,死锁源于锁顺序。系统化检查 + 工具检测,发现 AI 代码的并发隐患。

#
★★★

5. AI 引入的新依赖(npm、pip、Maven)应如何做许可证、维护活跃度、签名校验

AI 引入的新依赖(npm、pip、Maven)应如何做许可证、维护活跃度、签名校验?

  • 依赖审查
  • 许可证与维护
  • 签名校验

AI 引入新依赖需审查:许可证(是否合规、GPL/AGPL 传染性、是否与项目兼容)、维护活跃度(更新频率、issue 响应、社区规模、是否弃维护)、签名校验(校验制品签名/哈希,防供应链篡改)、来源可信(官方仓库、发布者)。配合 SCA 工具(Snyk、Socket)扫描漏洞与恶意包。审查通过才允许引入,依赖纳入 SBOM 与版本管理。高风险的依赖(不活跃、许可证冲突、来源不明)拒绝。

依赖审查是"许可证 + 维护 + 签名 + 来源"四维。AI 可能引入未知来源/不活跃/有隐患的依赖。SCA 扫描漏洞,签名校验防篡改,许可证审查防合规风险。

#
★★★

6. 如何快速识别 AI 生成的“看起来对但其实错”的测试(同源实现、空断言、过度 Mock)

如何快速识别 AI 生成的"看起来对但其实错"的测试(同源实现、空断言、过度 Mock)?

  • 测试失真识别
  • 同源/空断言/过度 Mock
  • 快速甄别

快速识别失真测试:同源实现——断言与实现逻辑相同(改实现测试也过),检查断言是否独立推导;空断言——无 assert 或断言恒真(如 assertTrue(true)),检查断言强度;过度 Mock——mock 掉被测逻辑,只验证 mock 交互,检查 Mock 是否替代了被测行为。快速甄别法:读测试是否能独立于实现验证需求;用变异测试(打断实现看测试是否失败);看断言是否覆盖边界与错误。失真测试"通过但无价值"。

快速甄别聚焦"测试能否独立验证需求"。同源/空断言/过度 Mock 让测试失真。变异测试验证,读断言独立性判断。核心是"测试能抓住错误吗"。

#
★★★

7. 如何阻止密钥、客户数据和未授权源码进入外部 Coding Agent,并保留审计证据

如何阻止密钥、客户数据和未授权源码进入外部 Coding Agent,并保留审计证据?

  • 数据出境控制
  • 密钥/敏感数据拦截
  • 审计

阻止敏感数据进入外部 Agent:数据分类(标记密钥、客户数据、未授权源码)、边界拦截(在 Agent 入口用 Hook/策略拦截敏感内容,如 .env 文件、密钥、客户数据路径)、网络隔离(外部 Agent 走沙箱,禁止敏感数据出境)、最小上下文(只给任务相关数据)。审计:记录 Agent 请求的内容、发送的数据、拦截命中、授权,保留完整审计证据。用 DLP/策略引擎检测并阻断敏感数据,审计满足合规。

阻止出境是"分类 + 拦截 + 隔离 + 审计"。数据分类识别敏感,Hook/策略拦截,沙箱隔离,审计追溯。审计证据是合规与责任追踪的关键。

#
★★★

8. 生成代码可能混入 GPL/AGPL 等片段时,团队应如何做来源与许可证处置

生成代码可能混入 GPL/AGPL 等片段时,团队应如何做来源与许可证处置?

  • 许可证风险
  • 来源追溯
  • 处置

AI 生成代码可能混入 GPL/AGPL 等传染性/ copyleft 片段,带来合规风险。处置:来源追溯(记录生成来源、训练数据、提示中的代码片段)、许可证扫描(SCA/license 扫描识别代码中的许可证)、风险评估(GPL/AGPL 传染性、与项目商业许可冲突)、处置(侵权片段替换/重写、隔离、或合规获取授权)。关键:AI 代码作为"代码"同样受许可证约束,需审查来源与许可证。建立 AI 代码许可证审查流程。

处置核心是"来源追溯 + 许可证扫描 + 风险评估 + 处置"。AI 代码不豁免许可证。GPL/AGPL 传染性需重点评估,侵权片段替换或重写。

#
★★★

9. Code Review 中 AI 注释(# Generated by AI、// TODO: verify this)应如何被强制要求保留还是去除

Code Review 中 AI 注释(如 # Generated by AI、// TODO: verify this)应如何被强制要求保留还是去除?

  • AI 注释管理
  • 保留 vs 去除
  • 审查要求

AI 注释应分类处理:标记来源的注释(# Generated by AI)在"转正/合并"时通常应去除或简化(生产代码无需标记来源,避免噪音),但审计/追溯场景可保留在元数据(PR/提交记录);"TODO: verify this" 是待验证标记,必须人工确认后处理——验证通过则去除标记,未验证则保留待办或拦截。审查要求:明确"求证型"注释(verify)必须被解决,来源型注释按策略去除或归档。避免 AI 注释成为无价值的噪音或隐藏的未验证点。

处理原则是"求证型必须解决,来源型按策略处理"。verify 注释是信号,须人工确认;来源标记可归档到元数据而非代码。避免噪音与未验证的隐患。

#
★★★

10. AI 生成代码的性能回归(N+1 查询、不必要的全表扫描、循环内远程调用)应如何纳入 Review checklist 与自动化检测

AI 生成代码的性能回归(N+1 查询、不必要的全表扫描、循环内远程调用)应如何纳入 Review checklist 与自动化检测?

  • 性能回归识别
  • Review checklist
  • 自动化检测

性能回归应纳入 Review checklist 专项项:N+1 查询(循环内查库)、全表扫描(无索引)、循环内远程调用(循环内 HTTP/DB)、复杂度过高、无缓冲/缓存。自动化检测:静态分析(检测循环内调用、N+1 模式)、DB 查询分析(慢查询、执行计划)、性能测试(压测比较基线)、代码扫描规则。review 时按 checklist 检查数据访问模式与热点。自动化检测把常见性能反模式固化为规则。

性能治理是"checklist + 自动化"。checklist 识别 N+1/全表扫描/循环内调用,自动化(静态分析、慢查询、压测)固化规则。性能回归需在 review 与 CI 双防线。

#
★★★

11. AI 生成的基础设施即代码(Terraform/K8s 清单)专项审查要点有哪些(公开存储桶、过宽策略、资源限额缺失),为何其风险高于普通业务代码

AI 生成的基础设施即代码(Terraform/K8s 清单)专项审查要点有哪些,为何其风险高于普通业务代码?

  • IaC 审查要点
  • 高风险原因
  • 安全配置

IaC 专项审查要点:公开存储桶(未设私有)、过宽策略(IAM 权限过大、*)、资源限额缺失(无 CPU/内存限制)、安全配置(密钥明文、网络暴露)、数据备份/审计缺失、环境误配。风险高于业务代码:IaC 直接作用于生产基础设施,错误影响面大(泄露、批漏、中断)、不可逆、难回滚、且常以特权执行。审查用工具(tfsec/checkov/OPA)扫描,人工审查架构与策略。应用前必须 plan/dry-run 与 diff 评审。

IaC 风险高因为"直接作用于生产 + 特权 + 不可逆"。公开存储桶、过宽策略、限额缺失是常见问题。工具扫描 + 人工审查 + plan 评审,层层把关。

#
★★★

12. Snyk、Socket 等工具能发现哪些供应链问题,为什么不能替代人工架构审查

Snyk、Socket 等工具能发现哪些供应链问题,为什么不能替代人工架构审查?

  • 供应链工具能力
  • 工具局限
  • 人工审查

Snyk/Socket 能发现:已知漏洞(CVE)、依赖许可证、维护状态、恶意包信号(行为、安装脚本、网络)、版本风险、typosquatting。但工具不能替代人工架构审查:工具基于已知信号,无法判断架构合理性、依赖的语义适配、业务风险、设计缺陷;工具可能误报/漏报;架构决策(是否引入、如何隔离、依赖层次)需人工判断。工具是"自动筛选",人工审查是"最终决策"。二者结合。

工具是"已知信号筛选",人工审查是"语义与架构判断"。工具发现漏洞/恶意/许可,但无法替代架构评估。工具+人工互补,AI 代码审查需双管齐下。

#
★★★

13. 如何在提交或 PR 中记录关键 AI 协作痕迹而不制造无价值的冗长日志

如何在提交或 PR 中记录关键 AI 协作痕迹而不制造无价值的冗长日志?

  • AI 协作痕迹
  • 审计与追溯
  • 避免噪音

记录关键 AI 协作痕迹:在 PR 描述/提交信息中标记"AI 辅助/生成"、涉及的文件、使用的模型/工具、人工审查点、验证证据。要"关键而非冗长":记录对审计与追溯有价值的信息(来源、审查、验证),而非每行/AI 的对话日志。用结构化字段(AI 协作标记、模型、验证)而非冗长叙述。痕迹服务于可追溯、可审计、可归因,避免成为噪音。制定"记录什么、不记录什么"的规范。

痕迹是"可追溯 + 可审计",但需避免噪音。记录来源、审查、验证等关键信息,结构化而非冗长。规范"记什么不记什么"平衡追溯与简洁。

#
★★★

14. 为什么不能用“AI 生成的测试通过”作为质量证据,必须做断言完整性 + 边界用例审查

为什么不能用"AI 生成的测试通过"作为质量证据,必须做断言完整性 + 边界用例审查?

  • 测试通过不可靠
  • 断言完整性
  • 边界用例

"AI 生成的测试通过"不能作为质量证据,因为测试可能失真(空断言、同源、happy path only、覆盖不足),通过不代表验证了需求。必须做断言完整性(断言覆盖需求、具体值、错误路径)+ 边界用例审查(空、极值、异常、并发、状态转换)。质量证据是"测试能捕获缺陷"而非"测试通过"。审查断言强度与边界覆盖,用变异测试验证。通过只是必要条件,断言完整才是充分的证据。

质量证据是"测试有效性"而非"通过"。失真测试通过无价值。断言完整 + 边界覆盖使测试能验证需求。变异测试验证测试能否捕获缺陷。

#
★★

15. 代码风格(命名、注释、缩进)一致性如何避免 AI 引入“风格污染”

代码风格(命名、注释、缩进)一致性如何避免 AI 引入"风格污染"?

  • 风格一致性
  • 风格污染
  • 自动化工具

避免 AI 引入风格污染:用统一的格式化工具(formatter/lint)强制风格一致(命名、缩进、注释规范),在 CI 中强制执行;AI 生成代码经过格式化与 lint 才能合并。风格规范(如 Java 的 Checkstyle/格式化)固化为配置,AI 输出自动对齐。人工 review 检查风格一致性。风格污染(AI 采用不同习惯)会降低可读性,通过工具强制 + 配置统一消除。风格是"软约束",但一致性由工具保障。

风格一致性靠"工具强制 + 配置统一"。formatter/lint 在 CI 强制执行,AI 输出自动对齐,避免风格污染。风格是软约束,但要一致由工具兜底。

#
★★

16. 如何让 Code Review 反馈回流到 Prompt / 仓库规则,形成“越用越好”的闭环

如何让 Code Review 反馈回流到 Prompt / 仓库规则,形成"越用越好"的闭环?

  • 反馈闭环
  • 规则沉淀
  • 持续改进

让 review 反馈回流:把 review 中发现的常见问题(AI 常犯的错误、遗漏的边界)沉淀为 Prompt 约束/仓库规则(AGENTS.md、checklist);review 的修正成为规则;规则版本化,AI 后续生成遵循。形成闭环:review 发现问题 → 沉淀到规则 → AI 生成规避 → 减少同类问题。定期审视 review 数据,提炼高频问题进规则。规则随 review 迭代,达到"越用越好"。

闭环是"反馈 → 规则 → 规避"。review 高频问题沉淀为规则,AI 遵循,减少返工。规则迭代让 AI 越用越好。这是人机协作的持续改进机制。

#
★★

17. AI 生成的代码中识别过时 API(已废弃、已改名)应依赖哪些权威源(官方文档、运行时警告)

AI 生成的代码中识别过时 API(已废弃、已改名)应依赖哪些权威源(官方文档、运行时警告)?

  • 过时 API 识别
  • 权威源
  • 运行时警告

识别过时 API 依赖权威源:官方文档(deprecated 标注、替代品)、运行时警告/弃用日志(DeprecationWarning、日志)、编译警告(@Deprecated)、API 变更记录(Changelog)。交叉验证:文档标注 deprecated + 编译警告 + 运行时警告,确认 API 已过时并找替代方案。不能只信 AI 的 API 名称。权威源优先级:官方文档/发布说明 > 运行时警告 > 编译警告。用 SCA 与依赖升级工具辅助识别。

权威源是"官方文档 + 运行时/编译警告 + 变更记录"。多源交叉确认过时,防止 AI 用旧 API。运行时警告是实际证据,文档给替代方案。

#
★★

18. AI 生成的 IaC 变更在应用前应如何做 plan/dry-run 与 diff 评审,防止直接 apply 到生产

AI 生成的 IaC 变更在应用前应如何做 plan/dry-run 与 diff 评审,防止直接 apply 到生产?

  • plan/dry-run
  • diff 评审
  • 防止直接 apply

AI 生成的 IaC 变更应用前必须:plan/dry-run(Terraform plan、kubectl dry-run)预览将执行的变化,人工审查 diff(新增/删除/修改的资源、权限、暴露);diff 评审确认变更符合预期、无意外(删资源、改策略、暴露);评审通过后才 apply。防止直接 apply:设置门禁(apply 需审批、CI 阻断)、plan 产物作为评审工件、高风险变更人工确认。apply 前必 plan,评审后 apply。

防止直接 apply 的核心是"plan + 评审门禁"。plan 预览变更,diff 评审拦截意外,审批控制 apply。IaC 变更不可逆,必须先审后 apply。

#
★★

19. 团队如何定义允许/禁止场景、数据等级、命令权限、网络访问和人工确认政策

团队如何定义允许/禁止场景、数据等级、命令权限、网络访问和人工确认政策?

  • 政策定义
  • 数据分级
  • 权限与确认

团队应定义 AI 工具政策:允许/禁止场景(哪些任务可用 AI、哪些禁止)、数据等级(敏感/机密/公开,按等级决定是否可送外部 Agent)、命令权限(允许哪些命令、禁止哪些危险命令)、网络访问(允许的网络出口、禁止外部上传)、人工确认(哪些操作需人工审批)。政策分级、可配置、强制(Hook/策略引擎)。按数据等级控制数据出境,按风险控制命令与网络,高危操作人工确认。政策写进仓库规则并审计。

政策是"分级 + 边界 + 强制"。数据分级控出境,命令/网络控边界,人工确认控高危。政策可配置、强制、审计,是 AI 工具治理的基础。

#
★★

20. Prompt、仓库规则、MCP 配置和工具版本为何都应纳入 Code Review 与发布门禁

Prompt、仓库规则、MCP 配置和工具版本为何都应纳入 Code Review 与发布门禁?

  • 配置/规则变更
  • 影响面
  • 发布门禁

Prompt、仓库规则、MCP 配置、工具版本直接影响 AI 行为与安全:Prompt 影响输出质量、仓库规则影响 Agent 行为、MCP 配置影响工具权限、工具版本影响能力与漏洞。它们变更如代码,需纳入 Code Review 与发布门禁:变更走评审、测试(Prompt 回归、规则验证)、兼容性检查(工具版本)、安全审查(MCP 权限)。纳入门禁保证这些"可执行配置"变更受控、可审计、可回滚。

这些配置"是可执行代码"。纳入 review 与门禁,保证受控、可审计、可回滚。Prompt/MCP/规则/版本变更影响行为与安全,不能脱离门禁。

#
★★

21. Coding Agent 误删、泄密或执行危险命令时,技术事件响应流程应如何设计

Coding Agent 误删、泄密或执行危险命令时,技术事件响应流程应如何设计?

  • 事件响应
  • 应急止损
  • 复盘与治理

事件响应流程:检测(日志/告警/审计发现异常)→ 止损(立即撤销权限、隔离、回滚、吊销 key)→ 评估影响(误删范围、泄密数据、命令影响)→ 修复(恢复数据、重置凭证、修复配置)→ 复盘(根因、漏洞、改进)→ 治理(更新规则、加 Hook/策略、补监控)。设计要点:及时发现(审计/监控)、快速止损(权限/凭证控制)、影响评估、复盘沉淀规则。审计日志是事件追踪的基础。

事件响应是"检测→止损→评估→修复→复盘→治理"。快速止损(权限/凭证)与审计追溯是关键。复盘转化为规则更新,形成治理闭环。

#
★★

22. 企业 AI 编程助手治理应覆盖哪些层,账号、数据、命令、网络、发布门禁

企业 AI 编程助手治理应覆盖哪些层(账号、数据、命令、网络、发布门禁)?

  • 治理分层
  • 账号/数据/命令/网络
  • 发布门禁

治理覆盖多层:账号(SSO、权限、最小权限、离职回收)、数据(数据分级、脱敏、出境控制、训练排除)、命令(命令白名单、危险命令拦截、审批)、网络(网络出口、沙箱、禁止上传)、发布门禁(代码审查、依赖审查、安全扫描、AI 痕迹)。各层协同:账号控身份,数据控敏感,命令控行为,网络控边界,门禁控质量。分层治理覆盖"身份、数据、行为、边界、质量"五个维度。

治理是"分层协同"。账号/数据/命令/网络/门禁分别控制身份、保密、行为、边界、质量。分层避免单点薄弱,覆盖完整。

#
★★

23. 如何用可观测指标(缺陷率、返工率、安全事件)评估 AI 编程助手的真实业务价值而非“代码生成量”

如何用可观测指标(缺陷率、返工率、安全事件)评估 AI 编程助手的真实业务价值,而非"代码生成量"?

  • 价值指标
  • 缺陷/返工/安全
  • 有效产出

评估 AI 助手价值用质量与业务指标,而非生成量:缺陷率(引入缺陷、线上缺陷)、返工率(review 修改、重做)、安全事件(漏洞、泄密)、交付周期(从需求到上线)、有效产出(通过审查+测试的代码)。这些反映"价值"而非"产量"。生成量高但缺陷/返工多则价值低。用对比(使用/未使用 AI 的基线)衡量净收益。避免用"生成量、接受率"此类过程指标。

价值指标是"结果导向"(缺陷、返工、安全、交付),而非过程(生成量、接受率)。评估真实业务价值需看质量与效率的综合净收益。生成量是误导。

#
★★

24. 如何用返工率、缺陷、安全事件、交付周期和成本验证治理效果,而不评价个人绩效

如何用返工率、缺陷、安全事件、交付周期和成本验证治理效果,而不评价个人绩效?

  • 治理效果指标
  • 团队级评估
  • 避免个人绩效

验证治理效果用团队级/系统级指标:返工率(review 修改比例)、缺陷(缺陷密度、线上缺陷)、安全事件(数量、severity)、交付周期(交付时长)、成本(token/工具成本)。评估"治理效果"而非"个人绩效":指标聚合到团队/流程层,不用于个人排名;对比治理前后(基线)判断改进。避免用指标评价个人(会引发博弈与失真),聚焦"流程是否改进"。治理效果 = 质量提升 + 风险下降 + 成本可控。

治理效果指标是"系统级、流程级"。聚焦团队/流程改进而非个人绩效,避免指标博弈。用基线对比验证治理实效,保障质量与安全。

#
★★

25. 企业账号、个人账号和本地模型在权限、数据政策与审计能力上如何分层管理

企业账号、个人账号和本地模型在权限、数据政策与审计能力上如何分层管理?

  • 账号分层
  • 数据政策
  • 审计能力

分层管理:企业账号(受控权限、SSO、数据不出境、审计完善、符合企业政策,适合敏感工程);个人账号(权限受限、数据默认不送企业敏感数据、审计较弱、需限制为低风险任务);本地模型(数据不出境、隐私最好,但能力/成本/运维受限)。按数据等级与任务风险选择:敏感数据用企业账号或本地模型,低风险可个人账号。权限、数据政策、审计能力里三层严、外三层松,审计能力与权限匹配。

分层是"权限、数据、审计"按敏感度分级。企业账号严控、本地模型隐私好、个人账号受限。按数据等级选层,审计与权限匹配,保障安全与合规。

#
★★

26. Agent Hooks 或策略引擎怎样阻断秘密读取、生产命令和未审批的网络上传

Agent Hooks 或策略引擎怎样阻断秘密读取、生产命令和未审批的网络上传?

  • Hooks/策略引擎
  • 阻断机制
  • 规则即代码

用 Agent Hooks/策略引擎在事件点阻断:pre-tool(工具调用前检查,拦截秘密读取、生产命令、网络上传)、pre-commit(提交前检查泄漏)、pre-publish(发布前检查)。规则即代码:把阻断规则(禁止读取 .env、禁止生产命令、网络上传需审批)写成策略,在事件点评估,命中即阻断/告警。策略引擎支持动态规则、审计、审批流。阻断 + 审计结合,让 Agent 无法执行危险操作,且记录被拦截尝试。

Hooks 是"事件点阻断"。规则即代码在 pre-tool/pre-commit/pre-publish 评估,拦截秘密/生产命令/网络上传。阻断 + 审计 + 审批流,实现强制安全边界。

#
★★

27. 企业内 Coding Agent 沙箱(网络隔离、命令白名单、文件访问限制)应如何搭建与验收,开发体验如何保持

企业内 Coding Agent 沙箱(网络隔离、命令白名单、文件访问限制)应如何搭建与验收,开发体验如何保持?

  • 沙箱搭建
  • 验收标准
  • 开发体验

沙箱搭建:网络隔离(白名单出口、禁外网/敏感网段)、命令白名单(允许构建/测试命令,禁危险命令)、文件访问限制(只读白名单路径、禁敏感目录)。验收:验证隔离有效性(无法访问禁止网络/文件/命令)、白名单生效、审计记录。开发体验:沙箱要"够用"(常用命令/依赖可用、构建快)、不阻碍正常流程(白名单覆盖常规开发)、报错清晰(危险操作被拦截有明确提示)。在安全与体验间平衡,用"默认拒绝 + 按需放行"。

沙箱是"隔离 + 放行"。网络/命令/文件三层限制,验收验证隔离,体验靠"够用 + 清晰提示"。平衡安全与开发效率,默认拒绝按需放行。

#
★★

28. 为什么代码生成量、接受率或工具排名不能单独衡量工程价值

为什么代码生成量、接受率或工具排名不能单独衡量工程价值?

  • 过程指标局限
  • 价值衡量
  • 误导性

生成量、接受率、工具排名是"过程指标",不能单独衡量价值:生成量高不代表质量高(可能返工多);接受率(接受建议比例)高不代表业务价值(可能接受低质量补全);工具排名是主观/抽样,不代表实际产出。价值应看"结果":缺陷、返工、交付、安全、成本、业务影响。过程指标易被优化(博弈)而失真,脱离"质量与业务结果"的单一指标会误导。综合结果指标 + 对比基线衡量价值。

过程指标易失真、被博弈。价值看结果(缺陷、返工、交付、安全、成本)。单一过程指标(生成量/接受率/排名)不能反映真实价值,需结果导向综合衡量。

#
★★

29. Agent Hooks / 策略引擎(pre-commit、pre-tool、pre-publish)应如何设计事件点与阻断规则,实现“规则即代码”

Agent Hooks / 策略引擎(pre-commit、pre-tool、pre-publish)应如何设计事件点与阻断规则,实现"规则即代码"?

  • 事件点设计
  • 阻断规则
  • 规则即代码

事件点设计:pre-tool(工具调用前,拦截命令/文件/网络)、pre-commit(提交前,拦截泄漏/危险代码)、pre-publish(发布前,拦截不安全变更)。阻断规则:规则即代码——把政策写成可版本化、可测试的策略(如 OPA、自定义规则引擎),在事件点评估,命中即阻断/告警/需审批。规则可配置、可审计、可回滚。设计:事件点覆盖"高危动作发生前",规则评估"是否有权",阻断返回明确原因。规则与代码一起版本化。

规则即代码是"策略可版本化、可测试、可强制"。事件点覆盖高危动作前,阻断带原因。规则随代码评审、可回滚,实现声明式治理。

#
★★

30. 如何让 Agent 仍然能高效执行,避免规则被忽略

如何让 Agent 仍然能高效执行,避免规则被忽略?

  • 规则与效率平衡
  • 规则可执行性
  • 避免过度限制

让 Agent 高效执行同时不忽略规则:规则要"可执行、清晰、不过度"——只设必要边界(安全红线),软约束给弹性;规则可验证(Agent 能自查),避免模糊;阻断时给明确原因与替代路径(不是简单拒绝);审批流程轻量(高频操作自动放行,高危人工)。避免规则膨胀(太多规则无法执行)与过度限制(阻断正常流程)。规则清晰地分层,让 Agent 知道"必须守什么、可权衡什么"。

效率与规则平衡是"必要的边界 + 不阻塞正常"。清晰规则、软硬分层、阻断给替代路径、轻量审批,让 Agent 高效且遵守规则。规则膨胀反噬效率。

#
★★

31. AI 编程助手的安全事件应如何记录、复盘并转化为规则更新(事故驱动治理)

AI 编程助手的安全事件应如何记录、复盘并转化为规则更新(事故驱动治理)?

  • 事件记录
  • 复盘
  • 事故驱动治理

安全事件处理:记录(审计日志:时间、Agent、操作、数据、结果)、复盘(根因、薄弱环节、漏洞)、转化为规则更新(把事件暴露的漏洞沉淀为规则/Hook/策略,堵住同类漏洞)。事故驱动治理:每起事件驱动规则更新,形成"事件→复盘→规则→防护"闭环。复盘要分析"为什么被绕过",规则更新要可验证(防止复发)。规则更新走评审,审计事件与规则关联。

事故驱动治理是"事件 → 复盘 → 规则"。记录事件、分析根因、沉淀规则、验证防复发。每起事件使治理更强,形成持续改进闭环。

#
★★

32. 团队从“全员禁用”到“沙箱试用”到“部分开放”的渐进式治理路径如何设计

团队从"全员禁用"到"沙箱试用"到"部分开放"的渐进式治理路径如何设计?

  • 渐进式治理
  • 阶段划分
  • 管控演进

渐进式治理路径:阶段一"全员禁用"(默认禁,试点队伍除外);阶段二"沙箱试用"(沙箱内放开,受控数据/命令/网络,收集数据与问题);阶段三"部分开放"(按风险分级开放,高风险仍限制,成熟团队放开);阶段四"全面开放"(成熟后标准化开放)。每阶段评估:安全事件、质量、效率、合规,达标才进入下一阶段。治理随成熟度演进,从"严控"到"受控开放"。每个阶段有明确准入与退出条件。

渐进式是"风险可控的开放"。默认禁→沙箱→部分开放→全面开放,每阶段评估达标再进。治理与成熟度匹配,平衡安全与效率。

#
★★

33. AI 工具治理应如何在不影响工程师体验的前提下强制安全边界(如 IDE 插件审批流程)

AI 工具治理应如何在不影响工程师体验的前提下强制安全边界(如 IDE 插件审批流程)?

  • 安全边界
  • 体验保持
  • 审批流程

在保持体验的同时强制安全边界:审批流程轻量(IDE 插件用一键审批、常用插件预审批、白名单);边界自动化(默认拦截危险,正常操作无感);安全控制透明(被拦截时明确提示与替代路径);按需审批(高危才人工,低危及常用自动放行)。平衡:安全边界"默认生效、异常时才打扰",审批流程"常用免审、高危必审"。定期评估审批对体验的影响并优化。

平衡是"默认拦截 + 异常打扰 + 轻量审批"。安全边界自动生效,高危才人工审批,避免常态打扰。体验与安全通过"分层审批、透明提示"兼顾。

#
★★

34. 治理规则如何通过事故与审计持续更新同时避免规则膨胀到 Agent 无法执行

治理规则如何通过事故与审计持续更新,同时避免规则膨胀到 Agent 无法执行?

  • 规则更新
  • 规则膨胀
  • 精简治理

规则持续更新(事故驱动 + 审计发现)但需防膨胀:更新时"新增即验证"(新规则可执行、可测试、必要);定期审计清理(删除过时/重复/低价值规则);规则分级(高价值红线保留,低价值软建议精简);用"必要性"判断(每规则对应真实风险)。避免规则膨胀:单一权威来源、合并重叠、Metrics 评估规则被跳过率。规则数量 vs 可执行性平衡,过期规则废弃。

规则治理是"持续更新 + 防膨胀"。更新有验证,膨胀靠清理与必要性判断。规则要"精而不滥",否则 Agent 无法执行反而失效。质量优先于数量。

#
★★

35. 治理框架升级时旧规则如何兼容,新规则如何不破坏现有 Agent 配置

治理框架升级时旧规则如何兼容,新规则如何不破坏现有 Agent 配置?

  • 规则兼容
  • 升级影响
  • 平滑迁移

治理框架升级时:旧规则兼容(保留旧规则语义、迁移转换、提供兼容层);新规则不破坏现有配置(新规则默认兼容、灰度启用、回滚机制)。升级流程:评估影响(哪些规则/配置受影响)、兼容性测试、灰度(先试点再全量)、回滚。规则迁移:旧规则转换到新格式,保留行为;新规则版本化,按需启用。避免"升级即破坏":兼容层 + 灰度 + 回滚,保证 Agent 配置平滑过渡。

升级平滑靠"兼容层 + 灰度 + 回滚"。旧规则语义保留,新规则灰度启用,影响可回滚。治理框架升级不破坏现有 Agent 配置。

#
★★

36. AI 工具治理的 SOP(标准操作流程)应如何文档化以便新成员快速理解

AI 工具治理的 SOP(标准操作流程)应如何文档化,以便新成员快速理解?

  • SOP 文档化
  • 可读性
  • 新成员上手

SOP 文档化:清晰流程(允许/禁止、审批、事件处理、工具使用步骤)、图示与示例、FAQ、决策树(何时用 AI、何时审批)、可执行步骤(命令行、审批链接)。文档要"可读、可执行、可检索":层次化(政策 → 流程 → 操作手册)、用示例与模板、更新版本化。新成员入职即读 SOP,结合 onboarding 与演练。SOP 与规则文件关联,避免脱节。文档随规则更新。

SOP 是"政策 + 流程 + 操作"的可执行文档。清晰、层次化、示例化、可检索,让新成员快速上手。SOP 与规则同步更新,避免脱节。

#
★★

37. 企业允许使用 Coding Agent 时,如何制定代码库访问、凭证隔离、网络出口和数据保留的统一策略

企业允许使用 Coding Agent 时,如何制定代码库访问、凭证隔离、网络出口和数据保留的统一策略?

  • 统一策略
  • 凭证隔离
  • 数据保留

统一策略:代码库访问(按需授权、最小权限、只读默认、敏感库隔离)、凭证隔离(Agent 用隔离凭证,不接触生产密钥,按需注入)、网络出口(白名单、禁止外传敏感数据)、数据保留(Agent 数据保留策略、对话/审计保留期限、训练排除)。策略分层、可配置、强制(Hook/沙箱)。代码库访问控范围,凭证隔离防泄露,网络出口控边界,数据保留满足合规。策略统一、审计、可回滚。

统一策略是"访问、凭证、网络、数据"四维。最小权限 + 凭证隔离 + 出口白名单 + 保留策略,覆盖安全与合规。统一可配置、可审计、可强制。

#
★★

38. 如何为 AI 编程工具建立能力分级,从只读检索、生成补丁到执行部署逐步引入人工审批

如何为 AI 编程工具建立能力分级,从只读检索、生成补丁到执行部署逐步引入人工审批?

  • 能力分级
  • 审批引入
  • 渐进授权

能力分级:只读检索(无副作用,默认开放)→ 生成补丁/代码(需 review)→ 执行命令/测试(需审批)→ 修改生产/部署(强审批)。按能力逐步引入人工审批:能力越高,审批越强。分级授权:低危能力自动放行,高危能力强制审批。审批粒度与能力风险匹配。能力分级可配置、可审计,支持按角色/团队调整。Agent 按能力等级执行,超能力需升级授权。

能力分级是"风险驱动授权"。只读→补丁→命令→部署,高危引入强审批。分级授权控风险,审批与能力匹配,渐进开放。

#

39. Agent 产生的提交怎样关联模型、Prompt、工具轨迹和测试结果,才能满足审计与责任追踪

Agent 产生的提交怎样关联模型、Prompt、工具轨迹和测试结果,才能满足审计与责任追踪?

  • 提交关联
  • 溯源
  • 审计

Agent 提交需关联元数据:模型(版本)、Prompt(模板/版本)、工具轨迹(调用的工具、参数)、测试结果(通过/失败)、指令(任务)。通过提交信息/PR 元数据/外部审计系统关联,形成"提交 → 生成过程 → 验证"的完整溯源链。这样可审计:谁(Agent/人)、用什么(模型/Prompt)、做了什么(工具轨迹)、结果如何(测试)。关联数据可版本化、可查询,满足审计与责任追踪。避免只记录"提交"不记录"生成过程"。

溯源是"提交 + 生成过程 + 验证"关联。模型/Prompt/工具轨迹/测试结果关联,满足审计与责任追踪。完整溯源链是合规与可追溯的关键。

#

40. 如何在 CI 中检测 AI 生成代码引入的秘密、许可证冲突、危险依赖和不安全 API 调用

如何在 CI 中检测 AI 生成代码引入的秘密、许可证冲突、危险依赖和不安全 API 调用?

  • CI 检测
  • 秘密/许可证/依赖/API
  • 自动化门禁

CI 中集成检测:secret 扫描(Gitleaks/trufflehog 检测密钥泄漏)、许可证扫描(license 检查冲突)、依赖扫描(SCA 检测漏洞/危险依赖)、不安全 API 检测(静态分析检测危险调用,如不安全的 deserialization、注入)。这些工具作为 CI 门禁,AI 代码提交前自动扫描,命中即阻断。检测结果与 PR 关联,人工确认。CI 门禁把安全检测自动化,覆盖"秘密、许可证、依赖、API"四类风险。

CI 检测是"自动化安全门禁"。secret/许可证/依赖/API 扫描在 CI 阻断,覆盖 AI 代码的高危引入。工具自动化 + 人工确认,防 AI 代码引入安全风险。

#

41. 团队应如何管理共享规则文件、仓库指令和个人偏好,避免高优先级提示覆盖安全约束

团队应如何管理共享规则文件、仓库指令和个人偏好,避免高优先级提示覆盖安全约束?

  • 规则优先级
  • 安全约束保护
  • 避免覆盖

管理共享规则/仓库指令/个人偏好:明确优先级(团队共享规则/安全约束 > 仓库指令 > 个人偏好),防止高优先级提示覆盖安全约束。安全约束用"不可覆盖"标记(优先级最高、不可被忽略)。个人偏好置于低优先级,不能覆盖安全红线。规则合并策略:冲突时以高优先级为准,安全约束最高优先。集中管理共享规则(版本化),个人偏好隔离。审计谁覆盖了什么。

核心是"安全约束不可被覆盖"。优先级层级(安全 > 团队 > 仓库 > 个人)+ 不可覆盖标记,防高优先级提示覆盖安全。个人偏好受限,安全红线最高。

#

42. 怎样以测试和架构决策记录替代“模型投票”

怎样以测试和架构决策记录替代"模型投票"?

  • 模型投票 vs 证据
  • 测试驱动决策
  • ADR

用"测试和架构决策记录"替代"模型投票":技术选型/架构决策以测试证据(基准、实验、对比测试)和 ADR(Architecture Decision Record,记录决策背景、选项、权衡、依据)为准,而非"多个模型投票"或"众数"。模型投票是主观、无证据的,测试与 ADR 是客观、可追溯的。决策时用基准测试验证、用 ADR 记录依据,评审基于证据。模型可辅助分析,但决策以测试与记录为准。

"模型投票"是主观聚合,无证据与可追溯性。测试与 ADR 是客观、可审计的决策依据。用证据驱动决策,避免用"投票"替代工程判断。

#

43. 如何设计 AI 工具的供应商切换方案,确保提示、工具 Schema、审计和成本指标可迁移

如何设计 AI 工具的供应商切换方案,确保提示、工具 Schema、审计和成本指标可迁移?

  • 供应商切换
  • 可迁移性
  • 标准与抽象

供应商切换方案要保证可迁移:提示(Prompt 模板与供应商无关,用标准格式/版本管理)、工具 Schema(工具定义标准化,可导出/导入)、审计(审计日志统一格式,跨供应商可读)、成本指标(成本记录标准化,可横向对比)。通过抽象层(统一接口、标准格式)隔离供应商,切换时迁移数据与配置。设计:提示/工具/Schema/审计/成本都标准化、版本化,切换只需替换适配层,不重构业务。评估迁移成本与数据导出。

可迁移性靠"标准化 + 抽象层"。提示/工具/Schema/审计/成本标准化,切换替换适配层。避免供应商锁定,评估迁移成本。标准化是切换的关键。

#

44. 新依赖应如何经过许可证、维护状态、签名、SBOM、SCA 与 typosquatting 检查

新依赖应如何经过许可证、维护状态、签名、SBOM、SCA 与 typosquatting 检查?

  • 依赖多维检查
  • 供应链安全
  • SBOM/SCA

新依赖检查:许可证(合规、传染性)、维护状态(活跃、弃维护)、签名(校验制品签名/哈希)、SBOM(纳入软件物料清单)、SCA(漏洞扫描)、typosquatting(防相似包名伪装)。多维度覆盖:许可证合规、维护可靠、签名可信、SBOM 可追溯、SCA 查漏洞、typosquatting 防恶意。检查通过才引入,纳入依赖管理。自动化(SCA/签名校验)+ 人工(评估维护/来源)。构建完整供应链审查。

依赖检查是"合规 + 可信 + 可追溯 + 防恶意"多维。许可证/维护/签名/SBOM/SCA/typosquatting 覆盖供应链风险。自动化 + 人工评估,防供应链攻击。

#

45. 供应链攻击(typosquatting、恶意包)应如何结合 SCA 工具(Snyk、Socket)

供应链攻击(typosquatting、恶意包)应如何结合 SCA 工具(Snyk、Socket)加以防护?

  • 供应链攻击
  • SCA 工具
  • 防护

防护供应链攻击:typosquatting(注册相似包名,用 SCA 工具识别可疑包名相似度、来源差异)、恶意包(Socket 检测运行行为、安装脚本、网络外联、可疑依赖)。SCA 工具(Snyk 查漏洞、Socket 查恶意行为)自动化扫描;人工结合:审查新包来源、作者、下载量、行为。结合:工具自动检测已知漏洞/恶意信号,人工评估可疑包。加锁版本(防止版本漂移到恶意版)、校验签名。供应链攻击防"新引入 + 版本漂移"。

供应链防护是"工具自动化 + 人工审查 + 版本锁定"。SCA 检测漏洞与恶意,人工评估可疑,锁版本防漂移。typosquatting 靠包名相似检测 + 来源审查。

#

46. AI 代码审查工具(CodeRabbit、Sourcery、Qodana)与人工评审应如何分工,误报率与采纳率如何评估

AI 代码审查工具(CodeRabbit、Sourcery、Qodana)与人工评审应如何分工,误报率与采纳率如何评估?

  • 工具与人工分工
  • 误报率
  • 采纳率

分工:AI 审查工具用于"自动扫面"(静态问题、风格、安全隐患、已知模式),人工评审用于"语义与架构判断"(设计、业务、权衡、上下文)。AI 工具处理机械/可检测问题,人工处理需要判断的问题。评估:误报率(工具报的 false positive 比例,过高则噪音)、采纳率(开发者采纳的建议比例,反映价值)。据此调优工具配置(降误报、提采纳)。工具是辅助,人工是最终裁决。

分工是"自动扫面 vs 语义判断"。误报率与采纳率衡量工具价值,调优配置。工具辅助、人工裁决,避免完全依赖工具或完全人工。