理解一个现有项目
目标
在不改动项目的情况下,让 Agent 说明项目用途、主要目录、启动入口、核心数据流和验证方式,并标出仍不确定的部分。
准备
- 准备一个你有权读取的本地项目目录。
- 确认至少有一个模型已在“设置 → 配置”中启用。
- 如果项目含有敏感代码,先确认所配置模型服务的隐私和数据处理政策。Agent 读取到、并用于回答的文件内容可能会随模型请求发送到该服务。
如果希望建立更硬的只读边界,可以先在“设置 → 常规”启用“自定义”权限,并把写入设为“禁止”;否则也可以使用默认权限,并拒绝任何意外的写入审批。
步骤
1. 添加项目
在新对话的项目选择器中选择“新建项目”,或前往“设置 → 环境”点击“添加项目”,然后选择项目根目录。Captain Who 记录的是这个工作区入口,不会因为添加项目就自动修改其中的文件。
2. 创建项目对话
从左侧项目区域新建对话,确认输入框显示的是目标项目。选择一个适合代码理解的模型。
3. 先要求建立地图
发送一条边界明确的任务,例如:
请只读分析这个项目,不要修改文件,也不要安装依赖。
请先查看仓库入口、依赖清单、主要源码目录和测试配置,然后回答:
1. 这个项目解决什么问题;
2. 主要模块分别负责什么;
3. 一次典型请求经过哪些模块;
4. 本地启动和验证通常使用什么命令;
5. 哪些结论有文件证据,哪些仍需确认。
引用关键文件的相对路径,不要逐文件罗列。Agent 会按需列出文件、搜索代码并读取少量关键内容。不要一开始要求“阅读全部文件”;先建立结构,再对重要链路深入,通常更快也更可靠。
4. 对一条链路追问
选择最关心的功能继续追问,例如:
沿着“用户提交任务”这条链路继续分析:从界面入口开始,追到后端执行和结果持久化。请给出调用顺序、每层职责和对应文件,并说明你没有验证到的部分。5. 核对结论
打开 Agent 引用的关键文件,抽查入口、配置和测试。若回答把推测写成事实,要求它重新区分“代码已证明”“测试已覆盖”“根据命名推断”。
预期结果
你应得到一份有层次的项目地图,而不是只有目录复述。它至少应包含:项目目标、模块边界、关键入口、数据流、常用验证命令和待确认事项,并能追溯到具体文件。
失败处理
- 找不到文件:确认对话绑定了正确项目;项目可能已移动,可在“设置 → 环境”重新添加。
- 分析范围过大:把任务缩小到一个入口、一条请求链路或一个目录。
- Agent 试图修改文件:拒绝审批,重申“只读分析”,或改用禁止写入的自定义权限。
- 命令需要审批:理解项目通常不必运行高影响命令。只在确认命令确实是只读检查后批准。
- 结论与代码不符:提供反例文件,请 Agent 基于证据修正,不要让它用更多猜测解释。