Claude Code Harness 工程实践:数据仓库侧解决方案|得物技术

作者:袖梨 2026-05-24

随着AI编码工具在数仓开发中的普及,团队效率显著提升的同时也暴露出三大痛点:上下文遗忘、规范执行不稳定和context耗尽问题。本文将系统分析这些挑战并提出Harness工程解决方案。

一、AI Coding 现状与痛点:为什么需要 Harness

当前使用情况

目前主流AI编码工具Claude Code已覆盖得物离线数仓各小组,配合数据平台IDE插件能有效提升重复性工作的处理效率。

核心痛点

尽管整体效率有所提升,但实际应用中暴露出三类结构性痛点。

痛点一:AI存在上下文遗忘问题。开发过程中临时告知的约束条件经常丢失,例如"金额字段单位是千元"的约束在后续对话中被遗忘,导致SQL计算单位错误。这是Claude Code上下文压缩机制的系统性缺陷:当对话token接近95%上限时,历史内容会被自动压缩为摘要。

痛点二:规范执行缺乏稳定性。无论是人工还是AI,在工期紧张时规范遵守率都会明显下降。将规范从记忆性内容转变为强制执行机制是当务之急。

痛点三:大型需求开发时context极易耗尽。复杂需求的典型开发过程涉及大量token消耗,导致context快速膨胀触发压缩机制。

血缘查询结果(500~3000 tokens) 自测23条SQL执行结果(5000~15000 tokens) SKILL规范文件内容(~10000 tokens) 数据比对两表样本(大量行)= context迅速膨胀 → compact触发 → 关键约束遗忘 → AI开始犯低级错误

这一矛盾表现为:越是复杂的需求越依赖AI,但复杂需求又最容易导致context耗尽。

从"随手问AI"到"能力封装"

Harness工程的核心目标是将执行层的不稳定因素系统化消除:通过hooks固化规范检查、持久化文件保存迭代约束、subagent隔离高token操作。

二、Harness概念解析

Harness是Claude Code的宿主运行框架,作为工具链容器管理context生命周期、执行hooks、协调subagents等确定性行为。

img_6a118cdc303b930.webp

三、context压缩机制分析

当context使用率达到95%时触发auto-compact,对话历史被替换为摘要,token缩减至12%。关键业务约束最易在压缩过程中丢失。

img_6a118cdc303be31.webp

四、五层防御体系

第一层:CLAUDE.md持久化

项目根目录下的CLAUDE.md文件在每次compact后重新注入,是最可靠的持久化方案。建议包含迭代状态、约束条件和全局规范三部分内容。

# 当前迭代状态
## 正在开发
- 表:db_a.dws_table_a
 版本:V1.0
 node_id:1000000001
 状态:ETL开发阶段(Step 3/8)

## 本次迭代约束
- 禁止修改:dwd_table_b(已上线,只读)
 分区字段:partition_dt(格式 yyyyMMdd,不是 dt)
 amount字段单位:千元(不是元)

## 数仓全局规范
 建表:分区字段必须是 partition_dt string
 禁止:SELECT *,UPDATE/DELETE 无 WHERE
 金额字段用 DECIMAL(20,4),不用 DOUBLE
 INSERT必须带PARTITION子句

第二层:Auto Memory

跨会话的重要发现自动写入MEMORY.md,compact后重新注入。可通过特定指令触发记忆写入。

第三层:hooks自动化验证

通过PostToolUse hook实现SQL文件写入后的自动规范检查,违规时强制阻断。

配置文件结构

数仓项目根目录/
└── .claude/
    ├── settings.json          ← hooks配置
    ├── CLAUDE.md              ← 数仓规范
    └── hooks/
        ├── validate_sql.sh          ← SQL规范检查
        ├── block_dangerous_ddl.sh   ← 危险DDL拦截
        └── inject_context.sh        ← compact后重注入上下文

第四层:subagents上下文隔离

将高token消耗操作下放到subagent独立context执行,主context仅接收摘要。

第五层:SKILL文件改造

将SKILL文件的执行步骤提炼为subagent指令,主context只接收结果摘要。

五、数仓Harness架构

整体架构采用职责分层设计,不同类型工作由最适合的机制处理。

img_6a118cdc303c534.webp

三层机制明确分工:hooks处理规范检查、subagent处理读操作隔离、CLAUDE.md处理状态持久化。

六、基于SKILL的工作流

数仓8步开发流程天然适配Harness三层机制,通过改变SKILL调用方式减少主context消耗。

img_6a118cdc303c936.webp

七、落地实施步骤

分三步实施:项目级上下文持久化、配置hooks自动验证、创建subagents隔离高token操作。

八、核心问题解决方案

Harness工程通过确定性的hooks+持久化文件,将语义理解和规范执行从LLM记忆中迁移出来,显著提升开发准确率。

img_6a118cdc303d1310.webp

Harness工程通过系统化的五层防御体系,有效解决了AI编码在数仓开发中的三大痛点问题,将AI辅助从对话驱动升级为规则嵌入的流水线自动化,大幅提升了开发效率和规范执行率。

相关文章

精彩推荐