AI 能做什么,不能做什么
使用 AI Coding 前,最重要的不是先记住多少提示词技巧,而是建立正确的能力边界:AI 很擅长快速生成候选方案,但不擅长独立确认真实需求、保证事实正确或承担最终责任。 如果把 AI 当成万能专家,容易盲目接受错误;如果把它当成只能聊天的玩具,又会错过大量效率提升。更合理的定位是:AI 是速度很快、知识面很广,但需要明确任务、充分上下文和持续审查的开发助手。先做一个判断
假设你对 AI 说:“帮我做一个安全、好用、性能优秀的登录系统。” AI 可以迅速生成页面、接口和数据库代码,但它并不知道:- 你的真实用户是谁;
- 公司采用什么安全规范;
- 项目现有架构和历史约束;
- “性能优秀”的具体指标;
- 哪些登录方式符合业务成本和法律要求;
- 生成的代码在真实环境中是否一定正确。
AI 擅长做什么
1. 解释代码与技术概念
AI 可以把复杂代码翻译成更容易理解的语言,说明函数作用、数据流和常见设计模式。 适合的请求包括:- “逐步解释这个函数做了什么”;
- “比较 REST 与 GraphQL 的区别”;
- “解释这条报错信息中的每一部分”;
- “用零基础能理解的方式说明异步编程”。
2. 生成代码初稿和样板代码
AI 对常见、结构清晰、重复性高的代码通常表现较好,例如:- 表单、列表、接口调用等常见功能;
- 数据结构、类型定义和基础配置;
- CRUD 接口和样板模块;
- 正则表达式、脚本和数据转换;
- 测试、注释、README 和接口文档初稿。
3. 协助调试
当你提供完整报错、相关代码、输入数据和期望结果时,AI 可以:- 解释错误信息;
- 列出可能原因;
- 建议添加哪些日志;
- 帮助构造最小复现;
- 比较不同修复方案;
- 根据测试反馈继续缩小范围。
4. 审查与改进代码
AI 可以从多个角度快速扫描代码:- 潜在逻辑错误和遗漏的边界情况;
- 重复代码和可读性问题;
- 常见安全风险;
- 不一致的命名和风格;
- 可能缺失的测试;
- 文档与实现不一致之处。
5. 拆解任务和提供方案
面对一个较大的需求,AI 可以协助:- 澄清模糊点;
- 把目标拆成可执行步骤;
- 对比技术方案及其优缺点;
- 生成实施计划和验收清单;
- 识别依赖关系和潜在风险。
6. 执行重复性工作
连接编辑器或终端工具后,AI 可以协助完成:- 批量重命名和格式调整;
- 迁移重复的 API 用法;
- 生成多组相似测试;
- 更新注释和文档;
- 运行构建、检查和测试命令;
- 根据明确规则修改多个文件。
AI 不能可靠地做什么
这里的“不能”不是指永远无法生成某种结果,而是指:不能在缺少人工监督的情况下稳定保证正确。1. 不能自动知道你没有提供的信息
AI 不知道你的隐含想法、口头约定、未打开的文件和真实业务背景。如果提示词里没有说明,它通常只能根据常见模式猜测。 错误期待:你应该知道我想要什么。正确做法:提供目标、环境、相关代码、限制条件和验收标准。
2. 不能保证输出一定正确
AI 可能生成:- 不存在的函数、库或参数;
- 与当前版本不兼容的写法;
- 语法正确但业务逻辑错误的代码;
- 只处理正常流程、忽略异常情况的实现;
- 表面修复报错但破坏其他功能的改动。
3. 不能独立定义真实需求
AI 可以帮助提问和整理需求,却无法替代真实用户、产品负责人或业务团队决定:- 功能到底解决什么问题;
- 哪些需求优先;
- 什么体验可以接受;
- 成本、风险和时间如何权衡;
- 功能是否真正有价值。
4. 不能承担安全、隐私和合规责任
AI 可以指出常见风险,却不能保证系统绝对安全,也不能替组织承担责任。 高风险领域必须由人严格把关,例如:- 身份认证与权限控制;
- 密码、密钥和隐私数据处理;
- 支付与财务计算;
- 医疗、法律和监管相关功能;
- 删除数据、生产部署和权限变更。
5. 不能用流畅表达代替真实证据
AI 的回答可能结构完整、语气肯定,但“说得像真的”不等于“已经证明”。 当 AI 声称“测试全部通过”“没有安全风险”或“已经兼容旧版本”时,应继续追问:- 实际运行了哪些命令?
- 测试结果在哪里?
- 修改了哪些文件?
- 依据的是哪段代码或哪份官方文档?
- 哪些情况尚未验证?
6. 不能替你承担最终决策
是否合并代码、发布功能、迁移数据或执行高风险命令,必须由有责任和权限的人决定。不同任务的适合程度
判断一个任务能否放心交给 AI
可以用下面五个问题做快速检查:- **任务是否清晰?**是否有明确输入、输出和验收标准?
- **错误代价多大?**失败只是页面样式不佳,还是会造成数据、金钱或安全损失?
- **结果能否验证?**是否有测试、日志、预览或人工检查方法?
- **修改能否回滚?**是否使用版本控制、备份和小步提交?
- **AI 权限是否合适?**它是否只能访问完成任务所需的文件和工具?
一个对比例子:同样是“删除”
低风险:删除测试项目中的临时日志
AI 可以搜索特定日志、列出修改计划、删除后运行测试,再由人查看差异。任务明确、可回滚、影响范围有限。高风险:删除生产数据库中的重复用户
AI 可以协助分析重复规则和生成查询草案,但不能直接执行。人需要确认识别规则、备份数据、预览影响行数、设计恢复方案,并经过授权后再操作。 两者都叫“删除”,但风险和验证成本完全不同,因此人机分工也不同。小练习:哪些可以多交给 AI?
请判断以下任务中,哪些可以让 AI 多做,哪些需要人重点把关:- 给一个学习项目生成 README 初稿;
- 根据明确接口生成数据类型定义;
- 决定是否将全部用户数据迁移到新数据库;
- 分析一条带完整堆栈的测试报错;
- 审核支付接口是否可以直接上线;
- 批量重命名项目中的一个内部函数。
参考答案
**判断原则:**低风险、规则明确、容易验证和回滚的任务,可以让 AI 多做;高风险、需求模糊、难以验证或责任重大的任务,必须由人主导。