一、环境安装1、claude code 安装命令npm install -g anthropic-ai/claude-code2、绕过登陆——windows步骤1定位配置文件首先需要找到Claude Code的配置文件。在Windows系统中配置文件位于# 配置文件路径C:\Users\{用户名}\.claude.json步骤2编辑配置文件使用文本编辑器如Notepad 、VS Code等打开配置文件添加或修改以下配置项{ hasCompletedOnboarding: true }macOS系统在macOS系统中配置文件位于# 配置文件路径~/.claude.json3、安装node3.1 更改镜像站为国内地址npm config set registry https://registry.npmmirror.com3.2 验证npm -V # 验证是否安装成功npm config get registry #验证镜像站是否更改成功4、安装CC Switch5、在CC Switch更改对应大模型为deepseek6、终端中命令行重启claude命令行输入claude二、ai编程实现步骤进入终端在工程目录启动claude整体的项目概况和整体的约束不能过长精简内容/init 生成claud.md自己审视做调整先进入plan模式先规划 审核没问题之后再让ai执行/init 生成claud.md自己审视做调整claud.md 通用指导约束修改ai生成的规划自己需要审视看一下是否合理上下文管理上下文压缩上下文过多时只保留重要信息上下文清理(/clear): 上下步骤之前的实现没有关联时有异常时直接打断(esc) 退出三、快捷键、常用操作/init # 代码执行前生成claud.md/clear 上下文没有关联时清空上下文/compact 对上下文进行压缩shifttab 进入plan 模式CTRL G 修改ai生成的规划四、如何提高Claude code成功率1.让claude自己进行验证给出一些测试用例当claude完成coding之后可以自己进行验证。Claude 会反复跑测试、读报错、改代码、再跑——直到测试全过。整个过程不用你介入。例如claude实现手机号验证案例写一个validatePhone函数。测试用例• 13812345678 → true• 138123456710 位→ false• 8613812345678带国家码→ true• 138-1234-5678带分隔符→ true• 12345678901不是 1 开头→ false写完后跑一下这些用例全部通过再交给我。其它验证方式任务类型验证方式 修 Bug让它先写一个能复现 Bug 的失败测试用例再去修 改 UI让它截图对比设计稿列出差异并修正 修构建编译/打包报错让它跑构建命令看到完整报错再修 调接口让它用 curl/httpie 请求看返回对比期望值 部署后让它 curl 健康检查接口确认 2002.先探索 → 再规划 → 最后写代码概念prompt - 规划 - 查看规划是否正确、可行 - ctrl g 修改规划 - claud执行规划是否正确标准【重要】是否更改了其它额外的文件实现的逻辑是否正确、可行调用api查询的数据文件实现用到的包、方法 是否是你想要的实现步骤shift tab 切换到规划模式确认下边为: plan mode on查看claude生成的规划是否正确确认规划没有问题让claud进行执行3.发现错了立刻打断概念当发现claude执行异常执行跑偏时立刻打断执行修改、细化 提示词再次执行打断方式esc(按一次)Claude 干活的时候按 Esc它立刻停。上下文保留你可以重新引导。esc(连按两次): 按两次 Esc或者输入 /rewind打开回退菜单✅只回退对话保留代码✅只回退代码保留对话✅都回退到某个检查点✅从某条消息开始重新总结Undo that: 直接输入Undo that 或 撤销刚才的改动。简单粗暴最常用4.做好上下文管理前边的对话信息会影响模型对之后对话的处理。Claude Code 现在确实支持 100 万 token但上下文越满模型表现越差。要求历史会话信息及时 /clear不让长时间保留任务执行结束之后没有相关任务及时/clear纠正超过两次还没改对立刻 /clear 重来长任务到 60-70% 主动 /compact。/compact 会把历史对话总结成摘要腾出空间/statusline状态栏输入/statusline让 Claude 帮你生成一个状态栏脚本把当前目录、Git 分支、上下文使用率实时显示在终端底部5.写一份精简的 CLAUDE.md5.1 为什么要claude.md要尽可能精简claude位于项目的根目录作为项目专属的上下文和指令claude每次启动时都会自动读它索引放置的信息不能过多一般不超800行。5.2 需包含哪些信息项目级一个团队的开发规范一个合格claud.md就像给新同事的一个 项目速查卡包含 项目意图、架构和可执行细节—必须让Claude时刻注意的才写进去。项目概览项目是干什么的、面向谁、核心价值技术栈与依赖使用什么环境特定的版本目录结构速览常用命令代码规范和约定架构原则与涉及准测环境变量和配置测试验证策略外部服务依赖注意事项6.别说我不要什么要说我要什么不要说你做错了而是告诉大模型应该怎么做及具体实现步骤场景❌ 模糊版✅ 具体版限定范围给 OrderService 加测试给OrderService.cancelOrder 写测试重点覆盖已支付订单超过 24 小时不能取消不用 mock指明信息源这个接口为啥这么奇怪翻一下这个接口的 git 历史总结它是怎么演化成今天这样的参照已有模式加个商品筛选组件看下首页 ProductFilter.vue 怎么实现按这个模式写订单筛选组件描述症状定位修一下登录 Bug用户反馈 token 过期后登录就 502。看 src/auth/refreshToken.ts先写一个能复现的失败测试再修使用技巧技巧 1用 引用具体文件例如对照src/types/order.ts里的类型给 OrderService 加上类型注解技巧 2用 ! 直接执行命令例如netstate -autlp | grep 8080 查看端口运行状态! git status 查看工作目录和暂存区的文件状态技巧 3粘贴截图看到 Bug 的页面 →截图 → CmdV 直接粘进去。Claude 能看图。比你打一段描述准确十倍——尤其是 UI 问题。7. 【重要】进阶玩法让 Claude 来面试你适用情况当需求复杂或你也不清楚具体实现时可以让claud反问你示例我想做一个购物车合并功能用户登录时把游客购物车合并到账号。请你用 AskUserQuestion 工具来面试我把技术实现、UI/UX、边界情况都问一遍。不要问太显而易见的问题挖那些我可能没考虑到的难点比如商品下架、库存变化、价格变化怎么办。所有问题问完后把完整规格写到 SPEC.md。8.让 Subagent子代理 替你干读很多文件的苦差8.1 为什么需要subagent例如你接手了一个老项目里面充斥着屎山代码。你想让 Claude 先帮你了解{这个项目里订单状态是怎么流转的哪些地方会修改订单状态}Claude 一头扎进代码库读了 30 个文件——每个文件都进了你的上下文等它读完出结论你的上下文已经用掉一半了。然后你想让它真正动手改个 Bug——上下文不够用了。8.2 subagent使用在请求前面加一句用 subagent之后claud就会开启一个或多个子任务去执行不会影响主对话的上下文示例用一个 subagent 调研我们项目里订单状态是怎么流转的哪些地方会修改订单状态最后给我一份订单状态机图Mermaid 格式 涉及文件清单。8.3 适用场景✅调研类「看看 X 是怎么实现的」✅大范围搜索「找出所有用了过期 API 的地方」✅验证类「用一个 subagent 检查这段代码的边界情况」✅输出长但结论短的任务8.4 进阶玩法分两轮或多轮实现第一轮先执行具体需求第二轮任务再去对第一轮的结果进行验证、筛选出正确、有效的。示例第一轮用三个 subagent 分别实现检查代码风格翻项目历史看类似改动有没有踩过坑查明显 Bug第二轮用五个subagent 去验证上边的子任务的输出把假阳性筛掉。五、具体实现示例1. claud.mdclaud.md 放什么项目级的主要放置团队的开发规范、易踩坑点、使用什么环境EduRAG 开发指南1. 项目目标本项目是面向教育咨询场景的集成问答系统。目标是把结构化 FAQ 检索与非结构化知识库 RAG 组合为可评估、可服务化、可部署的完整应用。开发必须基于仓库当前事实渐进推进。本文记录的实现状态是 2026-07-18 的快照每次修改前都要重新读取相关文件不得仅凭本文假设代码仍未变化。优先保证安全、正确、可运行、可验证。不要为追求架构完整而一次性重写项目。2. 目标架构在线查询主链路用户请求- 参数校验与会话上下文- Redis 缓存 / MySQL FAQ / BM25 Softmax- FAQ 置信度足够直接返回- FAQ 未命中Query 分类与检索策略选择- Milvus 稠密 稀疏混合检索- BGE reranker 重排并恢复父块- Prompt 组装上下文、问题与会话历史- LLM 生成有依据的回答- 返回答案、来源和必要的诊断信息离线知识入库链路PDF / DOCX / PPTX / 图片 / Markdown- 文档解析与 OCR- 文本清洗- 父块与子块切分- 元数据标准化- BGE-M3 稠密/稀疏向量- Milvus upsert外部依赖包括 MySQL、Redis、Milvus、本地 BERT/BGE 模型和兼容 OpenAI SDK 的 LLM 服务。代码不得假设这些服务始终在线。3. 目录职责base/全局配置与日志。mysql_qa/MySQL FAQ、Redis 缓存、中文预处理和 BM25 检索。rag_qa/core/分类、策略、向量检索、Prompt 与 RAG 编排。rag_qa/edu_document_loaders/PDF、Word、PPT、图片及 OCR 加载器。rag_qa/edu_text_spliter/中文递归切分和模型辅助切分。rag_qa/data/知识库原始数据不要在测试中覆盖。rag_qa/models/本地模型文件不要复制、改写或提交新的大模型权重。rag_qa/main.py预定的集成问答入口当前为空。verify_vector_store.py文档处理、Milvus 入库和检索的三级验证脚本依赖本地模型与 Milvus。requirements.txt当前 Python 依赖基线。新增模块应放进职责最接近的目录。不要继续通过随意修改sys.path掩盖包结构问题。4. 统一配置使用规范生成或修改代码前必须先读取base/config.py确认项目已有的配置项及其命名需要了解具体部署值或配置来源时再检查仓库根目录的config.ini和对应环境变量。仓库当前没有base/conf.py不得根据习惯臆造该文件或从中导入配置。业务代码统一通过from base.config import config或现有的from base import config使用配置不得在业务模块中重复创建Config实例。文件与目录路径优先使用config.PROJECT_ROOT、config.LOG_DIR、config.DATA_DIR、config.MODELS_DIR、config.EDU_DOCUMENT_LOADERS_DIR和config.LOG_FILE不得硬编码本机绝对路径也不要依赖当前工作目录拼接项目资源。大模型调用必须复用config.LLM_MODEL、config.DASHSCOPE_BASE_URL和config.DASHSCOPE_API_KEY不得在调用处另写模型名、服务地址或密钥。单元测试应注入 fake client 或显式测试配置不能调用真实模型服务。MySQL、Redis 和 Milvus 连接参数必须分别复用config.MYSQL_*、config.REDIS_*和config.MILVUS_*检索、切分和候选数量使用config.PARENT_CHUNK_SIZE、config.CHILD_CHUNK_SIZE、config.CHUNK_OVERLAP、config.RETRIEVAL_K、config.CANDIDATE_M。新需求所需配置已存在时直接复用不得创建同义常量或复制默认值。配置缺失时先在base/config.py中增加语义明确的配置属性并按“环境变量优先、config.ini次之、安全默认值最后”的顺序读取再由业务模块引用。密码、API Key 等敏感值只能来自环境变量新增配置不得提供真实凭据或可用密钥作为 fallback也不得把敏感值写入日志、测试夹具或示例文件。函数参数若允许调用方显式覆盖配置应使用None作为默认值并在函数内部读取config避免在导入阶段固化配置同时保留依赖注入能力便于测试。若配置名、类型或来源不确定先用rg检查base/config.py和现有调用方不得凭记忆猜测。配置变化需要验证默认值、环境变量覆盖、类型转换以及缺失配置时的行为。5. 当前实现状态已实现MySQL 连接、FAQ 表操作和 CSV 导入。Redis 基础读写与答案缓存。中文分词、BM25 Softmax FAQ 检索。配置读取和日志记录。多格式文档加载器、OCR 和中文文本切分器。统一文档处理入口递归发现文件、选择加载器、补充元数据并进行父子分块。BGE-M3 稠密/稀疏向量、Milvus schema 与混合检索的基础代码。BGE reranker 基础调用。RAG Prompt、HyDE、子查询和回溯 Prompt 模板。“已实现”只表示存在主体代码不代表已通过端到端验证。部分实现或已知故障rag_qa/core/document_processor.py已存在但缺少测试加载异常目前只记日志并继续父块 ID 只基于遍历序号尚未验证重复入库的稳定性。process_documents()当前只接收directory_path切分参数直接读取全局配置后续公开接口需先由测试固定。rag_qa/core/vector_store.py中父块去重错误地追加了列表自身应先用测试复现再修复。hybrid_search_with_rerank()的k与部分 limit 配置没有形成一致行为。verify_vector_store.py已能找到文档处理模块但会加载大型本地模型、连接/创建 Milvus 数据库并写入 collection不能把它当作无副作用的基础测试。配置文件包含凭据base/config.py还存在敏感默认值与eval()必须优先治理。尚未实现rag_qa/core/query_classifier.py为空Query 分类尚未实现。rag_qa/core/rag_system.py为空RAG 检索与生成编排尚未实现。rag_qa/core/strategy_selector.py为空。rag_qa/main.py为空正式集成入口尚未实现。可靠的 FAQ - RAG 回退编排与错误隔离。会话创建、最近历史、历史查询、更新和清除。FastAPI 请求/响应模型、非流式接口和 WebSocket 流式接口。健康检查、学科列表和静态资源服务。RAGAS 评估脚本、固定评估集和指标基线。Dockerfile、部署脚本和 API 使用说明。自动化测试目录及稳定的单元/集成测试基线。Query 改写 Prompt 对应的实际执行与检索融合。6. 实现路线图除非用户明确指定任务按以下顺序选择最靠前、尚未完成且可独立验证的一项安全与运行基线移除源码中的敏感默认值使用环境变量替换eval()建立最小测试框架。文档处理基线为文件发现、加载失败、父子分块和元数据补测试统一process_documents()调用接口。向量检索修复修复父块去重、参数传递、空结果、过滤表达式和重排稳定性。Query 分类与策略实现可独立训练/加载/预测的分类器及确定性的策略选择定义模型缺失时的降级行为。RAG 核心实现直接检索、HyDE、子查询、回溯检索、上下文组装、LLM 调用和无答案兜底。集成问答实现正式入口融合 FAQ 优先与 RAG 回退并保证数据库、缓存和模型资源正确关闭。会话能力实现有界历史存储、读取、更新、清理和历史相关性控制。API 服务实现 FastAPI 非流式查询、WebSocket 流式查询、会话、健康检查和学科接口。质量评估建立固定数据集与 RAGAS 指标基线保存可比较的结果。生产部署补充 Dockerfile、启动方式、健康检查、配置注入和接口说明。可选增强Query 改写、多查询融合、评估集生成和性能优化。不要同时推进多个阶段。后续阶段依赖前序接口时先固定接口并用测试锁定行为。7. 每次任务的强制流程检查阅读目标文件、调用方、配置和现有验证脚本用rg确认真实引用关系。定界用 36 行说明目标、非目标、涉及文件、外部依赖与风险。验证失败优先补充能复现问题的最小测试没有测试框架时使用不依赖生产数据的独立验证。最小实现只修改当前目标需要的代码保持现有公开接口除非接口本身就是问题。分层验证先做静态与单元检查再做组件集成最后才运行完整外部服务链路。复查检查异常路径、资源释放、日志泄密、硬编码路径和无关改动。汇报列出改动、实际运行的命令、结果、未验证项和下一优先事项。修改前不要大段复述项目背景。若用户请求明确且安全直接执行只有会显著改变架构或数据时才询问。8. 编码与安全约束Python 代码保持职责单一优先小函数、显式类型和依赖注入。不新增全局单例来隐藏数据库、模型或网络依赖。导入模块不得自动连接服务、创建数据库、加载大型模型或写入数据重操作放入显式函数或入口。所有连接、游标、文件、模型调用和 WebSocket 都要有明确的异常处理与释放路径。不使用裸except日志要保留可诊断上下文但不得记录密码、API Key、完整 Prompt、私人数据或整篇文档。密钥只从环境变量读取。提交配置示例时只能使用明确无效的示例值。禁止使用eval()解析配置使用 JSON、ast.literal_eval或明确的列表解析。不修改或删除用户数据、Milvus collection、MySQL 表和 Redis 全库除非用户明确授权。测试使用临时目录、mock/fake 客户端或专用测试库不依赖现有业务数据。不提交__pycache__、日志、IDE 状态、密钥、模型权重、生成数据或本地数据库文件。新增依赖前先确认现有依赖不能满足需求同步更新依赖文件并说明原因。遵循当前锁定版本的 API。遇到版本差异时先检查本地包签名或官方文档不凭记忆猜测。不以“顺手优化”为由改写无关模块不做无验收标准的大规模重构。9. 验证要求从仓库根目录运行命令。优先使用当前 Python 环境不擅自重装全部依赖。基础检查python -m compileall base mysql_qa rag_qapython -m pytest -q如果尚无tests/或 pytest 未安装要明确报告而不是声称测试通过。新增首个测试时再补充最小测试依赖。按需执行组件检查配置/纯函数不得连接任何外部服务。MySQL/Redis分别验证连接失败、空数据、缓存命中与缓存未命中。文档处理使用小型 fixture 验证格式识别、父子块关系和元数据完整性。Milvus验证建库/加载、幂等 upsert、空检索、source 过滤、去重和重排顺序。LLM单元测试使用 fake callable真实 API 调用只能作为显式集成测试。FastAPI使用测试客户端验证状态码、schema、错误响应和会话隔离。WebSocket验证正常流、客户端断开和生成异常后的关闭行为。RAGAS使用固定数据集和确定的配置结果需带时间、模型与检索参数。MySQL、Redis、Milvus、本地模型或 LLM 服务不可用时不要降低断言或吞掉异常来制造通过结果。完成可运行的静态、单元和 fake-client 验证。明确列出未执行的集成测试及其所需条件。verify_vector_store.py是有外部依赖且会写 Milvus 的手动集成检查不是单元测试。运行前先确认目标 host、database、collection 和数据目录未经用户授权不得对现有业务 collection 执行写入。10. RAG 专项验收标准检索结果必须保留source、timestamp、parent_id和父块内容等必要元数据。父块去重应稳定且保持最相关顺序相同父块不能重复进入 Prompt。稠密、稀疏检索和 reranker 的候选数、权重与最终数量必须来自配置且可测试。source 过滤必须使用白名单校验不能直接拼接任意用户输入。没有检索结果时不得崩溃应执行明确的直答或无答案策略。专业咨询进入知识库链路分类模型未训练或加载失败时必须有可观察的降级策略。回答应忠于上下文信息不足时使用统一兜底不得编造培训项目、价格、教师或联系方式。FAQ 命中、RAG 回退和直答路径必须能从结构化日志或返回元数据中区分。性能优化必须同时记录质量指标不能只凭耗时降低就认定改进有效。11. 完成任务时的输出最终回复保持简洁并包含完成了什么以及关键文件。实际运行的验证命令和结果。哪些外部集成未验证及原因。是否存在数据迁移、配置变化或兼容性风险。最合理的下一项工作不要擅自开始下一阶段。禁止使用“应该可以”“理论上通过”代替验证证据。没有运行就明确写“未运行”。2. 实现QueryClassifier需规定文件、接口名称、返回值需要和外部进行对接接口方法名称一般是固定的需明确已经构建的配置文件路径、用到的方法名明确实现的功能按步骤书写有需要的工具、方法可以指定实现 QueryClassifier请先阅读项目根目录的CLAUDE.md并检查base/config.pybase/logger.pybase/__init__.py项目中现有的配置与日志调用方式当前 Transformers 版本的TrainingArguments参数然后在rag_qa/core/query_classifier.py中实现基于本地中文 BERT 的 Query 二分类器将问题分类为通用知识专业咨询要求实现以下功能从项目现有配置中获取基础 BERT 模型路径、训练数据路径和训练模型保存路径不重复硬编码已有配置。仅加载本地模型禁止联网。如果已有训练模型则自动加载否则从基础 BERT 初始化二分类模型。读取 JSONL 训练数据按 8:2 划分训练集和验证集。使用 Hugging FaceTrainer完成训练。使用验证集输出 accuracy、classification report 和 confusion matrix。保存训练后的模型和 tokenizer。自动支持 CUDA、MPS 和 CPU。模型未训练或加载失败时提供明确日志和安全降级策略。提供公开方法classifier QueryClassifier() classifier.train_model() category classifier.predict_category(人工智能课程多少钱)其中predict_category(query: str) - str返回通用知识或专业咨询。要完整实现以上功能。不要修改无关文件。完成后按CLAUDE.md要求执行静态检查能运行的验证必须实际运行并报告结果未运行的测试要明确说明原因。