一站式科研:VS Code 与大模型实操应用
操作手册
1 使用方式
这份手册供课后练习和项目搭建时查用。你可以照着它把 VS Code、大模型、Git/GitHub 和常用计量工具放进同一个研究项目,让数据、代码、结果和写作材料能重跑、能检查、能交接。
演示项目位于 demo-project/,使用合成企业面板数据模拟“数字化转型与企业生产率”研究。这里的估计结果只用于演示工作流,不对应真实企业结论。
2 安装与环境清单
2.1 必装软件
| 工具 | 用途 | 建议 |
|---|---|---|
| VS Code | 统一项目空间 | 主工作台 |
| Python 3.10+ | 数据清洗、图表、脚本 | 建议使用虚拟环境 |
| Jupyter | 快速研究备忘录 | 代码、图、表和文字放在同一页 |
| LaTeX Workshop | 正式论文与学术汇报 | 写论文、Beamer、BibTeX、PDF 预览 |
| Quarto | 讲座材料渲染 | 仅在重建本讲座 slides/handout 时需要 |
| Git | 版本控制 | 每个阶段可回退 |
| GitHub | 远程备份与协作 | 换电脑、课堂演示、合作者接手 |
| GitHub Copilot | 行内补全与对话辅助 | 适合低风险机械代码 |
| Claude Code | 项目级读写与验证 | 适合多文件工作流 |
| Codex / Trae | AI 编程与项目协作 | 可作为 agent 型工作台补充 |
2.2 按需要安装
| 工具 | 适合场景 |
|---|---|
| Stata + Stata-MCP | 面板回归、DID、IV、聚类标准误 |
| Matlab + Matlab-MCP | 数值优化、结构估计、仿真 |
| Zotero | 文献管理与引用 |
| R / Julia | 统计建模、可视化、数值实验 |
2.3 VS Code 扩展
先装这些扩展即可:
- Python
- Jupyter
- GitHub Copilot
- GitHub Copilot Chat
- LaTeX Workshop
- Stata Enhanced
- MATLAB
- GitLens
- Markdown All in One
Quarto 主要用于重建本讲座材料。日常研究中,Jupyter 更适合快速备忘录和便携 slides;LaTeX Workshop 更适合论文、Beamer 和参考文献管理。
3 项目结构模板
新项目可以先按下面的结构搭起来。演示项目采用这个轻量版本:
demo-project/
├── data/raw/ # 原始数据,只读
├── scripts/ # 可重复脚本
├── notebooks/digital_stata_did.ipynb # Stata DID 调试
├── notebooks/digital_matlab_model.ipynb # Matlab 理论模型
├── notebooks/research_memo.ipynb # 快速研究备忘录
├── output/ # 表格、图、日志
├── prompts/prompt-cards.md # 可复用提问模板
├── paper/ # LaTeX 论文或汇报稿
└── audit-log.md # 研究辅助记录
基本原则:原始数据只读;结果从脚本生成;notebook 记录探索过程;正式文本进入 LaTeX;AI 协助过什么,要留下记录。
项目变大以后,再扩展出 data/interim/、data/processed/、output/tables/、output/figures/、output/logs/ 等目录。刚开始不用复杂,先保证最小流程能跑通、能审查。
4 Git 与 GitHub:AI 协作的安全网
让 AI 改文件前,先把项目交给 Git。原因很简单:一次提示可能改动多个脚本、notebook、论文和配置文件。Git 能告诉你改了哪里,哪些改动已经确认,哪些随时可以撤回。
| 做法 | 使用 AI 工具时的优势 |
|---|---|
| 每个任务一个 commit | 把 AI 修改切成可审阅、可回滚的小单元 |
git diff 先于接受结果 |
不被流畅解释带偏,直接检查代码和文字改动 |
| 分支或 draft PR | 让大改动先停在隔离区,不污染主线研究结果 |
| GitHub 远程备份 | 换电脑、课堂演示或合作者接手时仍可复现 |
| Issue / PR 讨论 | 把 prompt、修改理由、验证结果放进同一条记录 |
AI 可以提高修改速度,Git/GitHub 用来记录过程、审查改动,并在出错时恢复到稳定版本。
4.1 第一次把项目纳入版本控制
先进入项目文件夹,再初始化 Git 仓库。第一次提交相当于给当前研究状态拍一张可恢复的快照。
cd demo-project
git init -b main
git status
git add .
git commit -m "init: add reproducible research demo"常用命令:
| 命令 | 研究工作中的含义 |
|---|---|
git status |
看 AI 或自己改了哪些文件 |
git diff |
审查具体改动,再决定是否接受 |
git add . |
把本轮确认过的改动放入暂存区 |
git commit -m "..." |
保存一个可回退的研究节点 |
git log --oneline |
回看研究过程中的关键节点 |
4.2 GitHub 远程备份
如果只是自己电脑上的 .git,已经可以回退;如果要换电脑、课堂演示或合作者接手,就需要把本地仓库推送到 GitHub。
git remote add origin git@github.com:your-name/demo-project.git
git push -u origin main
# 或者用 GitHub CLI 一步创建远程仓库并推送
gh repo create demo-project --private --source=. --remote=origin --push给 AI 的最低要求:修改前先看 git status;修改后先看 git diff;验证通过再 commit。不要用一段流畅总结替代文件级审查。
5 工具分工
5.1 GitHub Copilot
Copilot 适合处理“我知道要写什么,只是不想手敲”的任务。
可以交给它:
- 读写 CSV、Excel、Stata 文件
- 变量重命名和类型转换
- 标准图表代码
- 回归规格模板
- docstring、README 初稿
不要交给它:
- 判断识别假设是否成立
- 决定是否控制某个变量
- 解释核心结果的经济含义
- 自动选择稳健性检验
用法很简单:先写注释,再让 Copilot 补代码;接受前逐行读懂;运行后检查结果是否符合预期。
5.2 Claude Code
Claude Code 适合项目级任务:读多个文件、提出修改方案、改代码、运行验证。
请求里最好写清楚四件事:
- 目标:要完成什么
- 边界:哪些文件可以改,哪些不能改
- 验证:运行什么命令算完成
- 汇报:要说明哪些变化
示例:
请检查这个 demo 项目是否可复现。先读 README 和 scripts/,不要直接改文件。
找出运行顺序、输出文件和潜在失败点。然后只做最小修改,确保下面命令能成功:
python scripts/generate_synthetic_did.py
stata -b do scripts/run_stata_did.do
matlab -batch "run('scripts/matlab_power_simulation.m')"
python scripts/analyze_did.py
最后总结改动和验证结果。
项目已经使用 Git 时,把版本控制要求直接加到请求末尾:
开始前请先汇报 git status。修改后请汇报 git diff 的摘要、实际运行过的验证命令、生成的输出文件,以及是否建议我 commit。本轮不要自行 commit。
5.3 Codex / Trae
Codex 或 Trae 这类 agent 型工具也可以处理项目内的代码修改、命令运行和上下文问答。把它们看成另一种项目工作台即可。
使用边界保持一致:先读项目,再提计划;先做低风险任务,再碰核心分析;每次修改后都要运行验证命令。
版本控制要求要写进任务本身:开始前汇报 git status,结束后汇报 git diff、验证命令和是否建议 commit。这样,AI 的工作不会只留在聊天记录里。
5.4 CLI 与 MCP
CLI(Command Line Interface)是命令行入口,例如:
stata -b do scripts/run_stata_did.do
matlab -batch "run('scripts/matlab_power_simulation.m')"CLI 适合稳定复现、批量运行和课堂备用方案。MCP(Model Context Protocol)是 AI 助手调用外部工具的协议,可以让 AI 在理解项目上下文后调用 Stata、Matlab、R、数据库或文件系统。
CLI 适合直接、稳定地运行命令;MCP 让 AI 助手可以在项目上下文中调用这些工具。先保证 CLI 命令能跑通,再尝试用 MCP 做自然语言协作。
5.5 Stata-MCP
Stata-MCP 可以把 Stata 这个计量工具接入 AI 工作流。你仍然使用熟悉的 reg、xtreg、reghdfe、ivregress 等命令;AI 可以帮助整理命令、运行脚本,并把 Stata 输出与 Python 结果交叉检查。
可以用来做:
- 面板固定效应回归
- DID / IV / RD 的标准命令
- 聚类标准误与回归表导出
- 复核 Python 或 R 的计量结果
如果 MCP 暂时不可用,就把同样命令写成 .do 文件运行。MCP 是增强项,不需要一开始就配好。
5.6 Matlab-MCP
Matlab-MCP 可以把既有 Matlab 代码、数值优化和仿真实验纳入 VS Code 项目。
可以用来做:
- 结构估计中的内外循环
- 数值优化与矩阵运算
- 旧项目的 Matlab 代码复用
- 仿真结果与 Python/Jupyter/LaTeX 写作衔接
5.7 Jupyter Notebook
Jupyter 适合快速研究备忘录。它可以把代码、图、表和初步解释放在同一个文件里,方便课堂展示、组会讨论和导师反馈。
常用命令:
jupyter nbconvert notebooks/research_memo.ipynb --to html --execute
jupyter nbconvert notebooks/research_memo.ipynb --to slides --execute探索性结果可以先写进 notebook:数据诊断、一张核心图、一张核心表、一段有边界的解释。正式论文不要停在 notebook 中,后续迁移到 LaTeX。
5.8 LaTeX Workshop
LaTeX Workshop 用于正式论文和学术汇报 slides。它提供 PDF 预览、自动编译、错误定位、BibTeX/Biber 支持和 SyncTeX 跳转。
这些内容适合放进 LaTeX:
- 正式模型设定
- 回归表和图题说明
- 论文 results subsection
- Beamer 学术汇报
- 参考文献与交叉引用
6 演示项目运行说明
进入演示项目:
cd InvitedLectures/one-stop-research-vscode-llm/demo-project创建数据:
python scripts/generate_synthetic_did.py运行分析:
python scripts/analyze_did.py打开或导出 notebook 备忘录:
jupyter nbconvert notebooks/research_memo.ipynb --to html --execute预期输出:
data/raw/digital_transformation_firm_panel.csvoutput/python_did_results.csvoutput/stata_did_results.csvoutput/stata_event_study.csvoutput/stata_placebo_results.csvoutput/digital_parallel_trends.pngoutput/digital_event_study.pngoutput/matlab_theory_estimates.csvoutput/matlab_theory_model.pngoutput/demo_summary.mdnotebooks/digital_stata_did.ipynbnotebooks/digital_matlab_model.ipynbnotebooks/research_memo.html
7 Prompt 卡片
7.1 项目检查
请先阅读这个项目的 README、scripts、notebooks/digital_stata_did.ipynb、notebooks/digital_matlab_model.ipynb 和 notebooks/research_memo.ipynb。请不要修改文件。
告诉我:运行顺序是什么?每一步应该生成什么输出?有哪些潜在失败点?
如果这是一个 Git 仓库,请先汇报 git status。
7.2 数据检查
请检查 data/raw/digital_transformation_firm_panel.csv 的变量、缺失值和面板结构。
输出一段简短诊断:企业数、处理组数量、年份数、是否存在重复 firm_id-year。
7.3 代码修复
请修复 scripts/analyze_did.py 中导致输出文件无法生成的问题。
只做最小修改。修改后运行脚本,并确认 python_did_results.csv、digital_parallel_trends.png 和 demo_summary.md 已生成。
开始前请汇报 git status;结束后请汇报 git diff 摘要、验证命令和是否建议 commit。本轮不要自行 commit。
7.4 结果写作
请根据 output/stata_did_results.csv、output/stata_placebo_results.csv、output/digital_event_study.png 和 output/matlab_theory_estimates.csv 改写 notebooks/research_memo.ipynb 中的结果段落。
要求:说明数据是合成的,不能推出真实企业数字化转型结论;不要虚构文献;保留 DID 估计对象、聚类标准误、平行趋势和安慰剂检验说明。
7.5 LaTeX 写作
请把 notebook 里的结果段落改写成论文风格的 LaTeX 小节。
要求:保留模型设定、聚类标准误说明、平行趋势/安慰剂检验、Matlab 理论机制和合成数据限制;不要虚构文献;不要改变估计对象;输出可直接放进 paper/main.tex。
7.6 审计日志
请根据本次修改更新 audit-log.md。每条记录包括:工具、任务、接受的输出、拒绝或修改的输出、验证方式。
8 常见故障
8.1 Python 找不到包
现象:ModuleNotFoundError。
解决:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt8.2 Notebook 找不到图片
检查图片是否已经由脚本生成,并确认 notebook 中的路径相对于当前文件。
8.3 Stata 或 Matlab 不在 PATH
讲座或课堂演示时,如果 PATH 一时配置不好,先使用备用方案,避免把演示时间耗在环境排查上。可以直接打开 Stata/Matlab GUI 运行备用脚本;时间紧的话,用准备好的输出讲 MCP 思路。
8.4 AI 改了太多文件
让它停下,运行 git diff 看改动。下次请求中明确写:“只允许修改 scripts/analyze_did.py,不要改其他文件。”
8.5 还没有第一次 commit
先不要把项目级修改交给 agent。运行 git status 看清楚当前文件,完成一次初始提交后再继续:
git add .
git commit -m "init: add reproducible research demo"如果 git status 显示很多自己还没看过的改动,先用 git diff 审查,再决定哪些进入本次 commit。
9 AI 使用审计模板
## YYYY-MM-DD HH:MM
- 工具:
- 任务:
- 接受的输出:
- 拒绝或修改的输出:
- 验证方式:
- 人工判断:10 7 天采用计划
10.1 第 1 天:搬项目
选一个正在做的小项目,放进 VS Code,建立 data/ scripts/ notebooks/ output/ paper/,运行 git init -b main,完成第一次 commit。
10.2 第 2 天:交给 Copilot 一个低风险任务
只交给它读数据、画图、导出表这些可验证任务。
10.3 第 3 天:请 Claude Code 检查项目
要求它只读不改,先汇报 git status,再找出项目不可复现之处。
10.4 第 4 天:脚本化一个结果
把一个手动步骤变成脚本输出文件。
10.5 第 5 天:写 notebook 备忘录
把一个表和一张图放进 Jupyter notebook,写出一段有边界的初步解释。
10.6 第 6 天:记一次 AI 协助过程
记录一次 AI 协助过程:它改了什么、你接受了什么、拒绝了什么、最后用什么方式验证。
10.7 第 7 天:复盘
从零运行整个项目。如果不能一键重现,就让 AI 帮你找断点。
11 最后一条
AI 能帮你多做几步,但题目怎么定、识别能不能站住、结论该不该写,仍然要自己负责。