Skip to content

CodeBuddy Code:苏格拉底式程序员的对话艺术

发布日期: 2026年1月16日
来源: 腾讯云代码助手 CodeBuddy


在 AI 编程工具日益普及的今天,一个关键问题浮出水面:AI 真的理解你的需求吗?

传统模式:用户说一句话,AI 直接动手改代码。结果往往是"做得快,改得慢"——因为从一开始就走偏了。

CodeBuddy Code 推出的 AskUserQuestion 工具,提供了一种全新的解题思路:在动手之前,先确保理解正确。


一、什么是苏格拉底式提问?

苏格拉底式提问(Socratic Questioning)是一种古老的哲学方法,通过连续追问帮助人们理清思路、发现问题的本质。

经典案例:

学生:"我觉得人生没有意义。"

苏格拉底:"你说的'意义'是指什么?"

学生:"就是...值得活的东西。"

苏格拉底:"那你觉得什么值得活?"

学生:"快乐吧,能让我开心的事。"

苏格拉底:"那如果吸毒很快乐,它值得活吗?"

学生:"那不一样..."

苏格拉底:"哪里不一样?"

经过层层追问,学生开始思考"意义"真正含义,而不是停留在表面的情绪宣泄中。


二、AskUserQuestion 工具介绍

2.1 核心定位

AskUserQuestion 是 CodeBuddy Code IDE 中的智能交互组件,它的核心理念是:

"先问清楚,再动手做"

2.2 工具价值

传统模式苏格拉底模式
用户说一句话用户可以主动触发提问流程
AI 立即动手AI 先问关键问题
可能做无用功确保方向正确后再行动
返工率高一次做对

三、适用场景

3.1 推荐使用

  • 需求模糊时:想法在脑子里,但还没理清
  • 技术选型时:有多个方案,需要理清利弊
  • 设计复杂系统:涉及多个模块,需要全局考虑
  • 学习新技术:不确定从哪入手
  • 调试疑难 Bug:问题表现明显但原因不明

3.2 不需要使用

  • 简单明确的任务:如"把这个变量改成 const"
  • 常规的增量开发:已经确认过的任务续工作
  • 紧急修复:需要立即止血时

四、提问流程

4.1 问题类型组合

AskUserQuestion 工具支持 6 种问题类型,可以根据场景自由组合:

类型用途典型问题
choice从预设选项中选择"您想用什么语言?"
input输入自定义文本"您的函数名叫什么?"
confirm确认或否认"这个函数是异步的吗?"
select多选一个或多个"需要支持哪些平台?"
multi-input多个输入字段"请提供数据库连接信息"
conditional根据前序答案显示"如果选 A 显示 X,选 B 显示 Y"

4.2 完整流程示意

用户触发提问

AI 展示问题卡片(一次一个问题)

用户选择/输入

下一个问题(或展示摘要)

用户确认

AI 基于答案执行任务

五、对话特性

5.1 上下文保留

工具保留完整的对话历史,支持:

  • 返回修改:可以回到之前的问题修改答案
  • 跳过问题:如果某个问题不适用,可以跳过
  • 中断流程:随时可以取消整个流程

5.2 渐进式澄清

问题按照逻辑顺序逐步展示,避免一次性呈现大量选项造成的信息过载:

第一步:了解目标
  [您想要实现什么功能?]

第二步:了解约束
  [有什么技术限制吗?]

第三步:了解偏好
  [有什么个人偏好?]

第四步:确认理解
  [让我总结一下您的需求...]

六、设计理念

6.1 减少 AI 幻觉

通过提问确认关键信息,可以:

  • 避免因理解偏差导致的错误
  • 降低因假设不当产生的幻觉
  • 减少盲目自信带来的错误

6.2 赋能而非替代

工具的设计始终保留用户的控制权:

  • 可以选择预设选项
  • 可以输入自定义答案
  • 可以跳过问题
  • 可以返回修改之前的答案
  • 可以取消整个流程

AI 的角色是辅助决策,而非替代决策。最终的选择权永远在用户手中。

6.3 "慢就是快"

在规划阶段多花时间提问和确认,看似"慢"了,实则:

  • 减少了因误解导致的返工
  • 确保了方案与用户期望的一致
  • 建立了用户对 AI 的信任
  • 最终节省了整体时间

这正是软件工程中"前期设计"的价值所在。


七、实际对话示例

示例一:主动触发提问

用户:

帮我给这个 API 加上认证功能,请先用 AskUserQuestion 问我几个问题

AI 响应:

好的,在开始实现之前,我需要了解几个关键信息:

[认证方式] 您希望使用哪种认证机制?

  • JWT Token - 无状态,适合分布式系统
  • Session - 有状态,需要服务端存储
  • OAuth 2.0 - 支持第三方登录
  • 其他 - 请描述您的需求

[安全级别] 对安全性的要求?

  • 标准 - 基本的认证即可
  • 增强 - 需要刷新令牌、设备绑定等
  • 高安全 - 多因素认证、操作审计等

示例二:苏格拉底式探索

用户:

我想优化数据库查询性能,请用苏格拉底提问法帮我分析

AI 响应:

让我通过几个问题帮您定位优化方向:

[现状] 当前的性能瓶颈表现是?

  • 响应慢 - 单个查询耗时长
  • 吞吐量低 - 并发请求处理不过来
  • 资源占用高 - CPU/内存/IO 占用过大
  • 不确定 - 需要先做性能分析

[数据规模] 您的数据量级大概是?

  • 小型 - 万级记录
  • 中型 - 百万级记录
  • 大型 - 千万级以上

示例三:复杂任务前的确认

用户:

重构整个支付模块,这是个大工程,请先问我一些问题确保方向正确

AI 响应:

重构支付模块确实是个重要决策,让我先确认几个关键点:

[范围] 重构的范围是?

  • 仅代码结构 - 保持功能不变,优化代码组织
  • 功能增强 - 在重构同时添加新功能
  • 完全重写 - 基于新架构从头实现

[兼容性] 对现有接口的要求?

  • 完全兼容 - 不能改变任何现有 API
  • 允许小改动 - 可以调整非核心接口
  • 可以重新设计 - 允许全新的接口设计

[时间约束] 是否有上线时间压力?

  • 紧急 - 需要尽快完成
  • 正常 - 有合理的时间窗口
  • 不急 - 可以充分设计和测试

八、总结

核心要点

  • 主动触发:你可以明确告诉 AI 使用 AskUserQuestion 工具
  • 苏格拉底式:要求 AI 用提问的方式帮你理清思路
  • 先问后做:复杂任务开始前,让 AI 先问清楚再动手

触发话术速查

场景推荐话术
需求模糊"请先用 AskUserQuestion 问我几个问题"
技术选型"用苏格拉底提问法帮我分析方案"
复杂任务"先问我几个问题确保方向正确"
学习探索"用苏格拉底式提问引导我思考"

最终思考

AskUserQuestion 工具的价值可以用一句话概括:

它让 AI 学会了在行动之前先确保理解。

而你作为用户,可以主动利用这个工具:

通过明确要求 AI 提问,你可以获得更精准、更符合预期的结果。

当你学会主动说"请先问我几个问题",你就掌握了与 AI 高效协作的关键技巧。


关于 CodeBuddy

CodeBuddy 是腾讯云推出的 AI 代码助手,提供智能编程支持。点击了解更多信息:


本文档由 CodeBuddy 整理,原始内容来源:CodeBuddy 博客 - 苏格拉底式程序员的对话艺术

Built with VitePress