一、零接触 仍记得最初使用的是千问页面问答形式处理Bug每次都贴代码或者上传文件再向大模型解释需要处理什么问题。得到回答后还需要自行验证方案是否可行。这一套执行完虽说比人工排雷要轻松但也是耗时耗力的工作。 后来有了Cursor试了试让它帮我开发网站。换了好几个号的免费试用额度勉强完成了初版网站开发。说勉强因为对于新项目而言它写新代码确实是一把好手速度让人惊讶但调试问题时大量时间花在了提示词工程上反复调教才完成任务。这时AI编程工具或者说AI Agent的能力已经初见成效比页面问答好太多。 再后来AI编程工具遍地开花我先试了Trae、CodeBuddy、WorkBuddy、Qcoder等只能说各有所长也各有所短。印象最深的是有些任务Credits烧完了事情都没做完。Agent会陷入混乱状态俗称“瞎搞”。 于是最终开始尝试Claude Code。实话实说有种相见恨晚的感觉。因为初体验也由于是国内环境我选择了Deepseek v4作为大模型。从/init初始化开始到完成任务做完一个网站和一个小程序整体感受是它用起来真是丝滑。不论写新代码还是排查问题它都可以妥善地处理完任务。二、进化 我喜欢命令行的轻便以及不受系统平台限制因此主要通过命令行来使用Claude Code。通过命令行也可以看到Claude Code比较原始的状态这是我推荐使用命令行的原因之一。 下面从8个方面简单介绍一下我使用Claude Code的个人进化内容提示词的优化 提示词的优化是在与Claude Code命令行交互过程中持续关注大模型的命中缓存情况时不断领悟的。# 最初常用提示词# Tips十分不规范十分随意这样命中缓存会较低。请你根据《XXXX项目功能清单 - 完整》规划XXX项目的开发。 请继续规划。我添加了git和bin环境变量。 读取本地CLAUDE.md核对全部项目进度从暂停位置继续开发不用重新规划。 如果需要开发前端页面需使用frontend-design这个skill。# 使用一段时间后的提示词# 固定该固定的提示词读取本地CLAUDE.md核对全部项目进度从暂停位置继续开发不用重新规划如果需要开发前端页面需使用frontend-design这个skill。继续完成任务涉及数据库的使用本地docker完成测试。安装python包、conda包时需要使用虚拟环境不能直接用base环境保持base环境干净。docker的bin目录路径是C:\Program Files\Docker\Docker\resources\bin。使用docker安装必须的软件完成本地测试。docker的registry-mirrors:[https://docker.1ms.run,https://docker.xuanyuan.me]。 你是全栈工程师请协助我测试代码。环境要求1、python和conda使用虚拟环境python虚拟环境路径是\backend\.venv2、存储使用docker环境docker pull的镜像源是docker.1ms.run# 固化的提示词# 把系统架构、命令、配置、前端、编码风格等拆分到rules目录下CLAUDE.md不超过200行请严格按照 CLAUDE.md 和 .claude/rules 中的所有规则执行1、XXXXX 提示词工程目的有两点一个是未来清楚地指导AI完成具体的任务另一个是不论上下文多脏不论如何压缩上下文该保留的提示词信息必须保留。 固化后的提示词简短精炼而且可以多端使用不同Agent使用同一套规矩。开发环境的优化 在开发过程中我发现大模型经常会忘了使用虚拟环境来完成软件安装、软件测试等工作每次都需要通过提示词说明。而且提示词的效果也有时效性如果不每次都把开发环境相关的提示词写进去等上下文内容变大后大模型会“忘记”。 因此使用/init初始化Claude Code之后我会立刻进行第二项固定操作# 格式化CLAUDE.md和rules文件的提示词规范化重构CLAUDE.md保留不超过200行梳理分类所有规则合理拆分至.claude/rules文件夹分文件管理统一格式精简内容输出完整整理后文档。 格式化CLAUDE.md拆分rules后配合固定提示词不论上下文如何变化大模型该记住的东西都会记住。上下文的优化 使用过大模型的都知道对话次数多了大模型会变“笨”需要重新调教这是很麻烦的事情。Claude Code有个命令很好用# 用于压缩对话历史、提取关键信息并释放上下文空间/compact 个人有几条经验之谈当对话轮次达到3次我会手动使用该命令整理一下或者当命令行窗口右下角出现状态提示比如Context: 80%应该立刻压缩上下文。一次较大的开发任务使用一个上下文。每次使用/clear开启新的上下文之前完成内容的保存、提交等存储工作。上下文的恢复 有时候任务比较重处理一整天都处理不完或者仍未达到满意的地步需要隔天工作时间再处理。这种场景下退出Claude Code是完全可以的。每次退出命令行时Claude Code最后会输出一串字符串比如# 带唯一标识可直接复制执行会话恢复的命令claude--resume8bd847f1-xxxx-xxxx-xxxx-2e7d54xxxxxx 当然如果忘记复制“序列号”也没关系在同一台开发环境中使用–resume命令可以选择需要恢复的上下文。多环境的使用 前面提到恢复上下文需要同一台开发环境这是因为Claude Code本身并不支持云端共享上下文。我们需要通过各种方式实现这个需求。 我有居家办公的情况我采用两种解决方案远程连接不论是电脑、云服务器、VDI等环境都开启远程连接功能支持到处访问。哪台机器上的Claude Code任务未完成便远程连接到对应的服务器上。使用CLAUDE.md记录进度这种方式适用于本机器已经完成阶段性任务。使用提示词让大模型把计划的进度更新到CLAUDE.md文件内并推送至代码库。其他机器拉取代码库后可以提示词让大模型继续完成未完成的计划。需要注意的是不要把CLAUDE.md文件写入.gitignore文件提交代码库的优化 在开发环境的优化中我介绍了优化项目文档的提示词。这里补充介绍提交代码库之前优化其他文档的提示词# 这句提示词可以补充更新项目文档并执行推送代码库的确认任务。# 如需更新其他文档均可补充提示词。清理项目更新.gitignore、claude.md、readme.md等系统文件推送至github。总结 综上把整套提示词、文档优化、提交代码库的提示词整理如下# 步骤1初始化Claude Code/init# 步骤2格式化CLAUDE.md和rules文件规范化重构CLAUDE.md保留不超过200行梳理分类所有规则合理拆分至.claude/rules文件夹分文件管理统一格式精简内容输出完整整理后文档。# 标准高缓存命中率Prompt写法核心原则固定前缀 可变参数[固定前缀模板]你是一个专业的产品文案撰写师擅长撰写简洁明了、突出卖点的产品说明书。请根据以下产品信息生成一份适合电商平台使用的产品说明书。[可变参数1]产品信息[可变参数2]名称智能保温杯[可变参数3]价格99元[可变参数4]容量500ml# 步骤3固定提示词可提高命中缓存95%以上命中缓存属于正常# 可以把角色、系统架构、命令、配置、前端、编码风格等固化到CLAUDE.md和rules文件中# 每次提示词都复制执行只修改可变参数部分请严格按照 CLAUDE.md 和 .claude/rules 中的所有规则执行1、XXXXX2、xxxxx# 步骤4每完成一次阶段性的任务都进行上下文压缩、项目清理、文档更新、代码保存等善后工作。/compact 清理项目更新.gitignore、claude.md、readme.md等系统文件推送至github。# 其他# 如遇到任务中断大模型请求无反应等情况需要重启Claude Code可以使用恢复命令claude--resume三、Harness模式 原本我想研究一下Harmes Agent开发拼写错误发现了Harness模式。再细细一读这似乎和我操作Claude Code的工作流有点相似。Harness模式是一种围绕 AI Agent 构建约束、反馈和控制系统的工程实践用于确保模型输出可靠、可控并可持续改进。Harness Engineering驾驭工程是指在 AI Agent 系统中通过约束机制、反馈回路、工作流控制和持续改进循环来优化模型运行环境而非直接优化模型本身。其核心哲学是 “人类掌舵智能体执行Human Steer, Agent Execute”强调通过系统设计引导 AI 高效、稳定地完成任务。Harness 通常包括以下组件约束机制限制模型行为防止输出偏差或错误。工具调用集成外部 API、数据库或计算工具。文档与上下文管理确保模型获取正确信息。反馈循环记录错误并自动改进系统。工作流控制定义任务执行顺序和异常处理逻辑。沙箱环境与钩子中间件提供安全、可控的执行环境。 这里直接引用Copilot Search的回答是因为我确实暂未使用相关的开源工具、管理平台进行实践无法给出什么心得与体会。但值得一提的是因为其相关优化比我的工作流程更加规范我认为是很值得推广和继续尝试的。同时我自己也为悟出“类Harness模式”感到开心后面将更加规范化自己的工作流程更加深入学习Harness模式。
从零接触到悟出Claude Code类Harness模式
一、零接触 仍记得最初使用的是千问页面问答形式处理Bug每次都贴代码或者上传文件再向大模型解释需要处理什么问题。得到回答后还需要自行验证方案是否可行。这一套执行完虽说比人工排雷要轻松但也是耗时耗力的工作。 后来有了Cursor试了试让它帮我开发网站。换了好几个号的免费试用额度勉强完成了初版网站开发。说勉强因为对于新项目而言它写新代码确实是一把好手速度让人惊讶但调试问题时大量时间花在了提示词工程上反复调教才完成任务。这时AI编程工具或者说AI Agent的能力已经初见成效比页面问答好太多。 再后来AI编程工具遍地开花我先试了Trae、CodeBuddy、WorkBuddy、Qcoder等只能说各有所长也各有所短。印象最深的是有些任务Credits烧完了事情都没做完。Agent会陷入混乱状态俗称“瞎搞”。 于是最终开始尝试Claude Code。实话实说有种相见恨晚的感觉。因为初体验也由于是国内环境我选择了Deepseek v4作为大模型。从/init初始化开始到完成任务做完一个网站和一个小程序整体感受是它用起来真是丝滑。不论写新代码还是排查问题它都可以妥善地处理完任务。二、进化 我喜欢命令行的轻便以及不受系统平台限制因此主要通过命令行来使用Claude Code。通过命令行也可以看到Claude Code比较原始的状态这是我推荐使用命令行的原因之一。 下面从8个方面简单介绍一下我使用Claude Code的个人进化内容提示词的优化 提示词的优化是在与Claude Code命令行交互过程中持续关注大模型的命中缓存情况时不断领悟的。# 最初常用提示词# Tips十分不规范十分随意这样命中缓存会较低。请你根据《XXXX项目功能清单 - 完整》规划XXX项目的开发。 请继续规划。我添加了git和bin环境变量。 读取本地CLAUDE.md核对全部项目进度从暂停位置继续开发不用重新规划。 如果需要开发前端页面需使用frontend-design这个skill。# 使用一段时间后的提示词# 固定该固定的提示词读取本地CLAUDE.md核对全部项目进度从暂停位置继续开发不用重新规划如果需要开发前端页面需使用frontend-design这个skill。继续完成任务涉及数据库的使用本地docker完成测试。安装python包、conda包时需要使用虚拟环境不能直接用base环境保持base环境干净。docker的bin目录路径是C:\Program Files\Docker\Docker\resources\bin。使用docker安装必须的软件完成本地测试。docker的registry-mirrors:[https://docker.1ms.run,https://docker.xuanyuan.me]。 你是全栈工程师请协助我测试代码。环境要求1、python和conda使用虚拟环境python虚拟环境路径是\backend\.venv2、存储使用docker环境docker pull的镜像源是docker.1ms.run# 固化的提示词# 把系统架构、命令、配置、前端、编码风格等拆分到rules目录下CLAUDE.md不超过200行请严格按照 CLAUDE.md 和 .claude/rules 中的所有规则执行1、XXXXX 提示词工程目的有两点一个是未来清楚地指导AI完成具体的任务另一个是不论上下文多脏不论如何压缩上下文该保留的提示词信息必须保留。 固化后的提示词简短精炼而且可以多端使用不同Agent使用同一套规矩。开发环境的优化 在开发过程中我发现大模型经常会忘了使用虚拟环境来完成软件安装、软件测试等工作每次都需要通过提示词说明。而且提示词的效果也有时效性如果不每次都把开发环境相关的提示词写进去等上下文内容变大后大模型会“忘记”。 因此使用/init初始化Claude Code之后我会立刻进行第二项固定操作# 格式化CLAUDE.md和rules文件的提示词规范化重构CLAUDE.md保留不超过200行梳理分类所有规则合理拆分至.claude/rules文件夹分文件管理统一格式精简内容输出完整整理后文档。 格式化CLAUDE.md拆分rules后配合固定提示词不论上下文如何变化大模型该记住的东西都会记住。上下文的优化 使用过大模型的都知道对话次数多了大模型会变“笨”需要重新调教这是很麻烦的事情。Claude Code有个命令很好用# 用于压缩对话历史、提取关键信息并释放上下文空间/compact 个人有几条经验之谈当对话轮次达到3次我会手动使用该命令整理一下或者当命令行窗口右下角出现状态提示比如Context: 80%应该立刻压缩上下文。一次较大的开发任务使用一个上下文。每次使用/clear开启新的上下文之前完成内容的保存、提交等存储工作。上下文的恢复 有时候任务比较重处理一整天都处理不完或者仍未达到满意的地步需要隔天工作时间再处理。这种场景下退出Claude Code是完全可以的。每次退出命令行时Claude Code最后会输出一串字符串比如# 带唯一标识可直接复制执行会话恢复的命令claude--resume8bd847f1-xxxx-xxxx-xxxx-2e7d54xxxxxx 当然如果忘记复制“序列号”也没关系在同一台开发环境中使用–resume命令可以选择需要恢复的上下文。多环境的使用 前面提到恢复上下文需要同一台开发环境这是因为Claude Code本身并不支持云端共享上下文。我们需要通过各种方式实现这个需求。 我有居家办公的情况我采用两种解决方案远程连接不论是电脑、云服务器、VDI等环境都开启远程连接功能支持到处访问。哪台机器上的Claude Code任务未完成便远程连接到对应的服务器上。使用CLAUDE.md记录进度这种方式适用于本机器已经完成阶段性任务。使用提示词让大模型把计划的进度更新到CLAUDE.md文件内并推送至代码库。其他机器拉取代码库后可以提示词让大模型继续完成未完成的计划。需要注意的是不要把CLAUDE.md文件写入.gitignore文件提交代码库的优化 在开发环境的优化中我介绍了优化项目文档的提示词。这里补充介绍提交代码库之前优化其他文档的提示词# 这句提示词可以补充更新项目文档并执行推送代码库的确认任务。# 如需更新其他文档均可补充提示词。清理项目更新.gitignore、claude.md、readme.md等系统文件推送至github。总结 综上把整套提示词、文档优化、提交代码库的提示词整理如下# 步骤1初始化Claude Code/init# 步骤2格式化CLAUDE.md和rules文件规范化重构CLAUDE.md保留不超过200行梳理分类所有规则合理拆分至.claude/rules文件夹分文件管理统一格式精简内容输出完整整理后文档。# 标准高缓存命中率Prompt写法核心原则固定前缀 可变参数[固定前缀模板]你是一个专业的产品文案撰写师擅长撰写简洁明了、突出卖点的产品说明书。请根据以下产品信息生成一份适合电商平台使用的产品说明书。[可变参数1]产品信息[可变参数2]名称智能保温杯[可变参数3]价格99元[可变参数4]容量500ml# 步骤3固定提示词可提高命中缓存95%以上命中缓存属于正常# 可以把角色、系统架构、命令、配置、前端、编码风格等固化到CLAUDE.md和rules文件中# 每次提示词都复制执行只修改可变参数部分请严格按照 CLAUDE.md 和 .claude/rules 中的所有规则执行1、XXXXX2、xxxxx# 步骤4每完成一次阶段性的任务都进行上下文压缩、项目清理、文档更新、代码保存等善后工作。/compact 清理项目更新.gitignore、claude.md、readme.md等系统文件推送至github。# 其他# 如遇到任务中断大模型请求无反应等情况需要重启Claude Code可以使用恢复命令claude--resume三、Harness模式 原本我想研究一下Harmes Agent开发拼写错误发现了Harness模式。再细细一读这似乎和我操作Claude Code的工作流有点相似。Harness模式是一种围绕 AI Agent 构建约束、反馈和控制系统的工程实践用于确保模型输出可靠、可控并可持续改进。Harness Engineering驾驭工程是指在 AI Agent 系统中通过约束机制、反馈回路、工作流控制和持续改进循环来优化模型运行环境而非直接优化模型本身。其核心哲学是 “人类掌舵智能体执行Human Steer, Agent Execute”强调通过系统设计引导 AI 高效、稳定地完成任务。Harness 通常包括以下组件约束机制限制模型行为防止输出偏差或错误。工具调用集成外部 API、数据库或计算工具。文档与上下文管理确保模型获取正确信息。反馈循环记录错误并自动改进系统。工作流控制定义任务执行顺序和异常处理逻辑。沙箱环境与钩子中间件提供安全、可控的执行环境。 这里直接引用Copilot Search的回答是因为我确实暂未使用相关的开源工具、管理平台进行实践无法给出什么心得与体会。但值得一提的是因为其相关优化比我的工作流程更加规范我认为是很值得推广和继续尝试的。同时我自己也为悟出“类Harness模式”感到开心后面将更加规范化自己的工作流程更加深入学习Harness模式。