当前位置: 首页 > article >正文

Harness Engineering 实战四:Java 项目的 Harness 层写在哪?附完整Demo

01先看目录结构一个标准的 Java AI Harness 工程长这样harness-java-demo/ ├── AGENTS.md # 约束层Java/Spring 专属红线 ├── .pre-commit-config.yaml # 校验层提交前快速拦截 ├── config/ │ └── harness.yaml # 执行层JVM 沙盒/内存/命令限制 ├── .github/ │ └── workflows/ │ └── ai-check.yml # 监控层CI 强制跑测试与覆盖率 ├── scripts/ │ └── check_ai_code.sh # 轻量级 Java 正则校验脚本 ├── pom.xml # Maven 依赖与插件 ├── src/main/java/... # Spring Boot 3.x 业务代码 └── src/test/java/... # JUnit 5 测试用例别嫌多。 每一层都在替你挡一个线上故障。02让我们来逐层拆解层一约束层AGENTS.md放哪 项目根目录。作用 AI 启动时自动读取定义 Java/Spring 专属红线。# AGENTS.md ## Context 你正在开发 Spring Boot 3.2 用户注册服务。 ## Java/Spring Constraints (红线) 1. 包名规范必须使用 jakarta.*禁止 javax.*Spring Boot 3 已全面迁移。 2. 参数校验Controller 入参必须加 ValidDTO 字段必须加 NotBlank/Email。 3. 事务管理涉及写操作的方法必须显式声明 Transactional(rollbackFor Exception.class)。 4. 日志规范禁止 System.out.println。必须使用 Slf4j 或 LoggerFactory。 5. 密码安全绝对禁止明文存储必须使用 BCryptPasswordEncoder。层二校验层.pre-commit-config.yaml放哪 项目根目录。作用 git commit 时快速拦截 AI 幻觉代码。repos: - repo: local hooks: - id: java-harness-fast-check name: Java AI 代码快速校验 entry: bash scripts/check_ai_code.sh language: system types: [java] 为什么不用 Maven 跑 pre-commitmvn checkstyle:check 启动 JVM 太慢通常 3-5 秒。pre-commit 需要毫秒级响应。解法 用轻量 Shell 脚本做正则拦截重型检查Checkstyle/SpotBugs交给 CI。层三执行层config/harness.yaml放哪 config/ 目录。作用 限制 AI Agent 的 JVM 参数与危险命令。agent: jvm: max_heap_size: 512m blocked_packages: - java.lang.Runtime - java.lang.ProcessBuilder allowed_paths: - ./src - ./target - ./logs limits: max_tokens_per_request: 8192 timeout_seconds: 45 max_file_edits_per_session: 10层四监控层.github/workflows/ai-check.yml放哪 .github/workflows/。作用 PR 合并前CI 强制跑完整测试与覆盖率。不达标不准合入。name: Java AI Harness Check on: [pull_request] jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Set up JDK 17 uses: actions/setup-javav4 with: { java-version: 17, distribution: temurin } - name: Cache Maven uses: actions/cachev4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles(**/pom.xml) }} - name: Build Test run: mvn clean verify jacoco:report03怎么跑起来3 步1.环境准备确保已安装Java 17、Maven 3.9 和 Git。 IDE 提示请在 IntelliJ IDEA/Eclipse 中安装 Lombok 插件/或者pom引入Lombok否则 Data 等注解会报错。2.挂载 Hook两种姿势任选姿势 A推荐毫秒级拦截使用pre-commit 框架Java 大厂项目标配管理 Hooks 最方便pip install pre-commit pre-commit install姿势 B纯 Java 极简免 Python不想装Python直接把脚本复制到 Git 目录# Mac/Linux/Git Bash cp scripts/check_ai_code.sh .git/hooks/pre-commit chmod x .git/hooks/pre-commit3.让 AI 生成代码 提交拦截正常写业务。提交时git add . git commit -m feat: add user registration # 若违反约束如明文存密码脚本直接阻断。⚠️ Windows 用户注意运行 Shell 脚本需使用 Git Bash 或 WSL 终端CMD/PowerShell 默认不支持。04踩过的 3 个坑坑 1Maven 编译慢CI 超时AI 生成代码后CI 每次全量编译耗时 2-3 分钟。解法 开启 Maven 并行编译 mvn clean verify -T 1C并配置 actions/cache 缓存 ~/.m2/repository。耗时压到 40 秒内。坑 2AI 乱加 Autowired 字段注入Spring 官方推荐构造器注入但 AI 默认生成字段注入。解法 在 AGENTS.md 加一条禁止字段注入必须使用构造器注入或 RequiredArgsConstructor。 配合 IDE 插件自动转换。坑 3Jacoco 覆盖率不达标AI 生成的测试经常漏边界值导致 CI 标红。解法 在 pom.xml 配置 Jacoco 规则强制要求核心 Service 覆盖率 ≥80%。不达标直接 BUILD FAILURE。05Java 不是包袱是底线。你给它的边界越清晰它给你的惊喜就越大。别指望一句“帮我写个 Spring Boot 接口”就能搞定一切。把约束写进文件把校验交给流水线把合并权握在自己手里。

相关文章:

Harness Engineering 实战四:Java 项目的 Harness 层写在哪?附完整Demo

01 先看目录结构 一个标准的 Java AI Harness 工程,长这样: harness-java-demo/ ├── AGENTS.md # 约束层:Java/Spring 专属红线 ├── .pre-commit-config.yaml # 校验层:提交前快速拦截 ├── config/ │ …...

MySQL数据库磁盘写满后如何紧急处理_清理日志与扩容空间

磁盘写满时MySQL卡住应先确认mysqld进程存活并检查deleted大文件;优先停用日志后删除slow/general log,binlog和redo log需停库操作;ibdata1膨胀只能通过导出、删文件、启用innodb_file_per_table重建解决。MySQL磁盘写满时,SHOW …...

从SiamFC到SiamMask:用PySOT工具包复现孪生网络跟踪算法全流程(附避坑指南)

从SiamFC到SiamMask:PySOT工具包实战指南与深度解析 在计算机视觉领域,目标跟踪一直是一个极具挑战性的研究方向。随着深度学习技术的快速发展,基于孪生网络的跟踪算法因其出色的性能和实时性而备受关注。本文将带您深入探索从SiamFC到SiamMa…...

python reno

## 关于Python Reno,你可能需要知道这些 如果你在Python社区里待得够久,大概会注意到一个现象:很多优秀的开源项目,比如OpenStack的那些组件,它们的版本发布说明(Release Notes)都长得特别规整。…...

Linux配置SSH密钥实现安全免密服务器登录

SSH的诞生:为Linux交互安全而生 它是一个加密的网络传输协议,旨在提供一个安全的方式来远程登录和执行命令,除了现在我们使用密码登录外还可用配置ssh密钥登录,好比现在智能门锁,默认输入密码就可以开锁,但…...

生成式推荐算法合规性悬崖:GDPR/《生成式AI服务管理暂行办法》双约束下,如何重构用户意图建模链路?

第一章:生成式推荐算法合规性悬崖:GDPR/《生成式AI服务管理暂行办法》双约束下,如何重构用户意图建模链路? 2026奇点智能技术大会(https://ml-summit.org) 在生成式推荐系统中,用户意图建模正面临前所未有的合规性临界…...

Unity ShaderGraph 主节点深度解析:从PBR物理渲染到Unlit无光照的实战应用

1. 认识ShaderGraph的两大核心主节点 第一次打开Unity的ShaderGraph时,我完全被各种节点搞懵了。直到弄明白PBR Master和Unlit Master这两个主节点的区别,才算真正入门。简单来说,PBR Master就像个"真实世界模拟器",而U…...

T536主板的UART功能(RS232/RS485)的使用-盈鹏飞嵌入式

CoM-T536产品特性:采用Allwinner公司Cortex-A55四核T536处理器,最高速度为1.6GHZ;支持2TOPS NPU,仅特定型号支持;支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;支持1-4G Bytes LPDDR4 SDRAM&#xf…...

Redis实战部署指南:从Windows桌面到Linux服务器的完整安装与验证

1. Redis入门:为什么你需要这份部署指南 Redis作为当下最流行的内存数据库之一,几乎成了高并发系统的标配。我第一次接触Redis是在一个电商秒杀项目中,当MySQL扛不住瞬时流量时,Redis轻松接住了每秒3万次的请求。这种性能表现让我…...

如何配置Oracle.DataAccess针对64位与32位环境的自适应编译与部署发布

...

Selenium WebDriver——必会知识

在介绍之前先来说一下HTML、Selenium、WebDriver的关系HTML(超文本标记语言):它是一个网页的骨架,通过各种标签和属性(id、class)定义了页面的元素DOM(模型):当浏览器解析…...

AppleRa1n:免费解锁iOS 15-16激活锁的终极解决方案

AppleRa1n:免费解锁iOS 15-16激活锁的终极解决方案 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n AppleRa1n是一款专为iOS 15-16系统设计的iCloud激活锁绕过工具,帮助用户恢复…...

2025届毕业生推荐的五大降重复率方案实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当人工智能生成内容被广泛运用的时候,把 AIGC 痕迹降低成为了内容创作者最为核心…...

无网环境下的救星:详解Win10离线部署.NET Framework 3.5的四种实战方案

1. 为什么需要离线部署.NET Framework 3.5? 很多企业内网环境出于安全考虑会限制外网访问,这时候安装.NET Framework 3.5就成了大问题。Win10默认不包含这个老版本框架,但大量老旧办公软件(比如财务系统、ERP客户端)又…...

为什么92%的开发者写的Prompt无法触发Code LLM最优推理路径?——基于17个主流模型的Token-level Prompt敏感性压测报告

第一章:智能代码生成Prompt工程指南 2026奇点智能技术大会(https://ml-summit.org) Prompt工程已从辅助技巧演变为智能代码生成系统的核心能力。高质量的Prompt不仅决定模型输出的准确性与可维护性,更直接影响开发效率、安全边界和跨团队协作质量。在现…...

为什么电机控制观测器要使用锁相环(PLL)---学习笔记

这是电机两相反电动势其中这就是转子的电角度反电势改写成这里先打住我们先了解锁相环是是干什么的,下面是PLL的大致结构通过PLL求出能够以θ_rPLL由三个部分组成1.鉴相器比较反电动势相位与算法估计相位差,在这里就是角度差2.LPF(环路滤波器…...

Xshell8与Xftp8免费版下载安装2026(附安装包)

一、下载 1、网盘自提: xshell和xftp安装包链接: https://pan.baidu.com/s/1phsX1lpQF_vY1tJvHKRNUw?pwd1111 提取码: 1111 2、官网下载: https://www.xshell.com/zh/free-for-home-school/二、Xshell安装 1、双击安装包,傻瓜式安装&#xf…...

NPJ Precis Oncol 加拿大蒙特利尔大学医院研究中心:多组学融合网络预测结直肠癌肝转移术后早期复发

01文献学习今天分享的文献是由加拿大蒙特利尔大学医院研究中心等团队于2026年1月10日在肿瘤学领域顶刊《npj Precision Oncology》(中科院1区,IF8)上发表的研究“Multi-omics fusion network for prediction of early recurrence in colorect…...

Python安装教程2026(附安装包)

1.浏览器打开网址:www.python.org 也可以网盘自提 python安装包https://pan.quark.cn/s/69bfcd430b83 2.根据电脑系统选择下载 3.确定电脑系统属性,此处我们以win10的64位操作系统为例 4.安装python 3.6.3 双击下载的安装包 python-3.6.3.exe 注意要勾选&#xf…...

消防主机组网通信质量有担忧?巧用光纤环网冗余方案,实现超远距离、高可靠CAN通讯

摘要:在大型园区、隧道、高层建筑等消防报警系统中,如何将分散各处的消防主机(如海湾、青鸟、利达等品牌)稳定可靠地联网,并实现长距离、抗干扰的数据传输,一直是工程实践的难点。本文分享我们如何利用LCAN…...

别再乱用concat了!FFmpeg合并视频文件前必须检查的3个细节(清单编码、路径、Profile)

FFmpeg视频合并避坑指南:3个必须检查的关键细节 第一次用FFmpeg合并视频时,我盯着屏幕上那串"Invalid data found when processing input"错误提示整整半小时。明明只是想把几个会议录像拼在一起,为什么连这么简单的操作都会出错&a…...

飞搭系列 | 列表组件效率倍升,数据操作一步到位

前言 飞搭低代码平台(FeiDa,以下简称“飞搭”),为企业提供在线化、灵活的业务应用构建工具,支持高低代码融合,助力企业低门槛、高效率和低成本地快速应对市场变化,加速复杂业务场景落地。 概要介…...

LVGL Spinner控件实战:5分钟搞定3种酷炫加载动画(附ESP32/STM32代码)

LVGL Spinner控件实战:5分钟搞定3种酷炫加载动画(附ESP32/STM32代码) 在嵌入式GUI开发中,加载动画是提升用户体验的关键细节。LVGL作为轻量级图形库,其Spinner控件能以极低资源消耗实现专业级视觉效果。本文将带你快速…...

C# OnnxRuntime 部署 DDColor

说明地址:https://github.com/piddnad/DDColor效果模型信息Model Properties ------------------------- ---------------------------------------------------------------Inputs ------------------------- name:input tensor:Float[1, 3,…...

告别Source Insight卡顿!用Vim + Ctags + Cscope打造Linux下丝滑的C/C++代码阅读环境

打造Linux下极致流畅的C/C代码阅读环境:Vim Ctags Cscope实战指南 第一次在Linux服务器上打开一个大型C项目时,我盯着终端里密密麻麻的代码手足无措。图形化IDE在远程桌面上的卡顿让我几乎无法工作,每次跳转定义都要等待数秒,开…...

基于Kotti-py312这个项目,帮我写一个AI 交流网站。先帮我规划一下!我的诉求是能实现AI资源的互助,大家互相帮着找点子,一起落地实践!

基于Kotti-py312这个项目,帮我写一个AI 交流网站。先帮我规划一下! 我的诉求是能实现AI资源的互助,大家互相帮着找点子,一起落地实践!Kotti-py312这个项目代码在:G:\dumatework核心理念:AI 资源…...

Sunshine游戏串流终极指南:15分钟打造你的跨设备游戏天堂

Sunshine游戏串流终极指南:15分钟打造你的跨设备游戏天堂 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源的自托管游戏串流服务器,专为M…...

g4f提供的模型调用:python JavaScript和curl

g4f提供模型的使用,例子页面:G4F - Providers and Models 可以这样: python from g4f.client import Clientclient Client() response client.chat.completions.create(model"",messages[{"role": "user"…...

告别Keil:在Windows上构建VSCode+GCC+OpenOCD一体化ARM开发环境

1. 为什么选择VSCodeGCCOpenOCD替代Keil? 作为一名在嵌入式领域摸爬滚打多年的开发者,我深知传统IDE(如Keil)给开发者带来的种种困扰。高昂的授权费用、臃肿的安装包、缓慢的编译速度,以及那仿佛停留在上个世纪的代码编…...

AI测试标准更新:2026年新规详解

从“野蛮生长”到“有标可依”的行业转折点进入2026年,人工智能技术已深度融入各行各业,从生成式内容创作到具身智能机器人,AI系统正以前所未有的速度重塑生产和生活。然而,技术狂奔的背后,是日益凸显的风险与挑战&…...