得物数仓AI开发痛点多,Harness工程四层分工让研发流水线更可靠!
一、AI Coding 现状与痛点:为什么需要 Harness
得物离线数仓各小组已基本完成 AI Coding 工具的覆盖,主力工具为 Claude Code,辅以数据平台的 IDE 插件,应对重复性工作时效率提升明显。但团队在实际使用中暴露出三类结构性痛点。痛点一:AI 不记得上下文约束,开发过程中反复"失忆",这是 Claude Code 的 context compact 机制的系统性限制。痛点二:规范执行不稳定,靠记忆兜底的部分最容易出问题,人工和 AI 的规范遵守率都不高。痛点三:大型需求开发中,context 很快被撑满,越到后期 AI 越不可靠。针对这些痛点,Harness 工程的目标是把"执行层"的不稳定因素系统性地消掉。
二、先搞清楚"Harness"是什么
Harness = Claude Code 的宿主运行框架,即 Claude Code 客户端本身这个"工具链容器"。它管理 context window 生命周期,在 LLM 推理循环之外确定性地执行 hooks,协调 subagents 的生命周期,不依赖模型判断,直接执行配置的自动化行为。
三、核心问题:compact 到底丢掉什么?
每次数仓开发 context 接近满时,auto-compact 触发,会把整个对话历史替换为一份摘要,token 缩减到原来的约 12%。数仓场景中,对话中的约束、SKILL 文件内容、自测结果等在 compact 后容易丢失。
四、五层防御体系(从简单到复杂)
第一层:写死进 CLAUDE.md,将当前迭代的关键信息写入,每次 compact 后从磁盘重新注入。第二层:Auto Memory 自动积累,Claude 自动将跨会话发现写入 ~/.claude/projects//memory/MEMORY.md,每次 compact 后重新注入。第三层:hooks 自动验证,是解决"每次写完 SQL 自动检查"的关键机制,包含配置文件位置、settings.json 完整配置、SQL 规范自动检查脚本、危险 DDL 拦截脚本等。第四层:subagents 做上下文隔离,把"高 token 消耗但结果只需要摘要"的操作放到 subagent 的独立 context 中执行。第五层:SKILL 文件改造,把 SKILL 文件的"执行步骤"提炼成 subagent 指令,主 context 只接收结果摘要。
五、可行落地方案:数仓 Harness 架构
整体架构设计的核心逻辑是职责分层,持久化层解决"失忆"问题,Harness 层(Hooks)解决"规范靠记忆"的问题,Subagent 层解决"context 被撑满"的问题。数仓的研发流程可按"对 context 的影响"分成两类,不同步骤以最合适的方式运行。
六、基于 SKILL 规范的数仓工作流设计
数仓 8 步 SKILL 规范天然对应 Harness 的三层机制,核心思路是主对话只读规范结论,实际执行由 subagent 或 hook 完成。各步骤有推荐提示词与工作流,同时对 SKILL 调用方式进行改造,减少主 context 消耗,还设计了精准对话流。
七、落地步骤
步骤一:项目级上下文持久化,在数仓项目目录下创建 .claude/CLAUDE.md。步骤二:配置 hooks 自动验证,创建 .claude/settings.json + hooks/ 目录。步骤三:创建 subagents 隔离高 token 操作,创建三个核心 subagent 文件。
八、Harness 工程能解决的核心问题
数仓 AI 开发当前的本质瓶颈是语义理解,Harness 工程的本质是把"语义"和"规范"从不可靠的 LLM 记忆中迁移到确定性的 hooks + 持久化文件里。它能解决字段口径遗忘导致的计算错误、需求理解偏差导致的返工、SQL 规范执行不一致、大型需求开发中的 context 耗尽四类问题,与传统数仓 AI 开发方式相比有明显优势,让数仓 AI 开发从"对话驱动的一次性辅助"升级为"规则嵌入的流水线自动化"。
