• 请不要在回答技术问题时复制粘贴 AI 生成的内容
L1ch404
V2EX  ›  程序员

我写了一个开源工具,想让 AI 像 Java 开发一样工作

  •  
  •   L1ch404 · 8h 15m ago · 1395 views

    背景

    我本人是一个 Java 后端开发,大概有两次接触 AI 写代码,第一次是去年十一月份左右,用的是 Cursor,当时高强度使用了一个月后 发现很容易出现幻觉,而且括号经常搞不明白,当时体验是比较差的,就没用了;第二次是今年四月份左右,使用的是 Copilot 说实话我被 AI 的成长给震惊到了,随后我逐步将自己的开发工作转移给 ai 去完成,经过我几个月的使用,很明显的发现 AI 写代码有个短板就是: ai 是根据代码去推测结果的 他几乎不会去运行代码 最多只会根据某些场景写单元测试,这样会导致出什么结果呢 第一个 写完代码后 实际的运行结果达不到期望,有时甚至编译都不通过,原因可能是 当需求稍微复杂一些,就很难根据代码推算出结果。第二个 排查问题很容易钻牛角尖,就是可能某段代码确实有问题 但是问题并不出在这个代码段,这个问题说白了 就是有的时候信息有噪音,导致大模型的注意力全在噪声上面了。我就在想,面对上面这两个比较常见的问题,人类开发者是怎么解决的?其实很简单 写完需求后把项目启动起来,然后实际的去跑一次看下结果对不对,遇到复杂问题的直接 debug 一步一步的走 看问题实际出现在哪里。基于这种需求我在七月初的时候 开始开发 joLink 了

    joLink

    joLink 大概开发了四个多月,是用 Python 写的,MCP 提供执行能力,Skill 告诉 Agent 如何使用这些能力,还有一套全局规则开发要求: 尽量以“事上磨练”的方式写代码,用简单直接的方式,而不是提前解决所有问题,再根据实际运行取得相关证据,而不是等用户单独要求验证。代码基本都是 gpt 写的,我做的项目管理和技术选型以及验收,中间是遇到了非常多的困难,就比如启动,Java 项目一般都是先将代码编译成字节码文件,编译这部分是非常麻烦的,主流使用的 idea 是有增量编译的功能,就是只编译有改动和改动影响到的代码,这点是非常难实现的,如果没有就只能改一行代码,然后用 maven 去编译整个项目,这里大概摸索了两个多月,经过大量的实验和测试最后选择使用 Eclipse JDT 包去实现这个功能。个人从产品的角度去看增量编译是非常重要 如果不解决就无法实现 写代码->启动->验证->有问题 继续改代码->启动 这个开发闭环的。

    dogfood

    因为我本人是 Java 开发,所以我自己是 joLink 的一个用户,会在实际的工作中去使用他,经过不断的使用和调整: 目前 joLink 能让 coding agent 交付的代码大概率可信,就是我基本不会去看 ai 写的代码了,但是实际的上线前还需要专业的测试去测试,因为 jolink 目前还是针对开发这个阶段。主要是 joLink 补全了目前 coding agent 的短板:写完代码后能看到实际运行结果,AI 再根据反馈去调整代码。但是这只是我个人的工作流,在其他人身上不知道能不能稳定工作,另外 joLink 的边界还是比较浅的,目前能确定的是能运行大部分 Maven/Gradle 构建的 Spring Boot 的项目 以及 JDK8 到 JDK17,可能还不够稳定,joLink 还在早期阶段,我后续也会继续在 GitHub 上找不同开源 Java 项目来试探并且扩大它的边界。但是我期望大家能尝试一下 joLink 看看他能否对大家的工作有帮助,如果没有帮助,也希望知道原因。

    github: https://github.com/L1ch404/jolink-runtime
    最后感谢大家能看完这篇文章

    26 replies  •  2026-10-28 22:11:51 +08:00
    L1ch404
        1
    L1ch404  
    OP
       7h 59m ago
    假如说 joLink 这种能力能被证实有效,未来应该会支持其他编程语言,主要是现在样本还太少了,只有我一个人用,上来就支持多语言 工程量太大了
    Zhuzhuchenyan
        2
    Zhuzhuchenyan  
       7h 50m ago   ❤️ 1
    想法是很好的,只不过晚了一年

    > ai 是根据代码去推测结果的 他几乎不会去运行代码

    这个结论目前已经不成立了,随着基模的迭代和 Harness 工具迭代,这类夹在中间的工具很难有竞争力
    ricciz
        3
    ricciz  
       7h 44m ago   ❤️ 1
    ai 已经会在自己觉得合适的时候编译了,而且测试用例也越来越实用
    L1ch404
        4
    L1ch404  
    OP
       7h 31m ago
    @Zhuzhuchenyan 感谢您的评论,现在的工具确实能让 LLM 去启动项目,其实启动一个企业级的项目还是比较困难的,就拿 maven 项目来说要么打成 jar 包启动,或者用 classpath 再去拼依赖包路径启动,这主要就是一个启动成本的问题,而且绝大数情况启动和单元测试都需要编译整个项目,相对耗时,就很容易导致 LLM 即使能运行代码 它也不太愿意去做这件事,这个我在项目初期是有过相对深刻的研究和探索的,这个就有点像 k8s 初期 大家说用 shell 或者脚本也能实现,确实是能实现,只是比较复杂和麻烦,joLink 不完全在于让 LLM 去启动项目 主要还提供了如何快捷、方便的让 LLM 去启动项目
    wxlwsy
        5
    wxlwsy  
       7h 28m ago
    我自己的经验,如果服务器启动复杂,比如需要连环启动,且有顺序地启动,ai 就没办法实际跑, 简单工程 ai 会自己启动取验证.ai 最多只编译看看有没有语法错误.
    L1ch404
        6
    L1ch404  
    OP
       7h 25m ago
    @ricciz 感谢您的评论,确实是会,我在做 A\B 测试的时候发现这个现象了,只不过可能比较慢而已,joLink 提供了一套更方便快捷的方式去执行单元测试
    fridaythx
        7
    fridaythx  
       7h 23m ago
    听起来是在重新造一个自己的 agent harness ,为什么不研究一下比较流行且轻量的 pi coding agent ,或许能少踩很多坑。
    L1ch404
        8
    L1ch404  
    OP
       7h 21m ago
    @fridaythx 不是 agent ,是一个 mcp ,是给 agent 提功能能力的,可以接入目前市面大部分 agent
    ryougifujino
        9
    ryougifujino  
       6h 53m ago
    AI 不会去实际跑一下来验证,你告诉它每次写完后都去跑一下不就行了么,现在的 AI 没这么笨。
    ricciz
        10
    ricciz  
       6h 42m ago
    @L1ch404 承认 OP 的工作是很有意义的,只是对 OP 的项目能否追得上 ai 的进化脚步感到担忧
    L1ch404
        11
    L1ch404  
    OP
       6h 30m ago
    @ryougifujino 感谢回复,是可以这样做,joLink 主要还提供了一套更方便 更快捷的能力供 AI 去启动、测试,就有点像现在大家写代码都用 IDE ,如果脱离 IDE 也能写,只不过没那么方便而已
    crazy0x
        12
    crazy0x  
       6h 29m ago
    看了眼时间,确认是 2026 年
    L1ch404
        13
    L1ch404  
    OP
       6h 27m ago
    @ricciz 哈哈哈,你说的这点没毛病,没准未来 AI 能力大幅度提升、非常智能的话 joLink 确实是没多大意义,不过我觉得 joLink 能做出来就已经很不错了
    lsls931011
        14
    lsls931011  
       3h 59m ago
    我记得 GPT 在写代码的时候就有大量的测试,而且他还会启动我的项目去进行检测,甚至可以自己发送请求或者打开浏览器等等验证, 只要知识库规则设置好就行了。而且 Claude Code 就更加智能了,至于你说的增量编译,Java 我没试过,但是,类似之前使用 AI 进行编译谷歌浏览器内核的时候,第一次是全量编译,后续修改内容也可以增量编译。

    当然,我使用的都是官方的 GPT 桌面版或者 Claude Code 桌面版。

    建议 OP 也使用一下,别使用 Cursor 、Copilot 等第三方的,使用官方完整的 agent 体验一下。
    refear99
        15
    refear99  
       3h 48m ago
    说的是 2026 年的事儿吗,现在 codex 和 claude 还能跑不起来你的项目?
    coefu
        16
    coefu  
       3h 39m ago
    这个世界的迭代速度之快,早就超越了你自以为是且固步自封的小聪明。

    你能想到的任何一件事,在你还没有完成之前,就已经落后于这个世界。

    就算是再聪明的脑袋持续跟进,也感到疲惫乏力。
    stardust21
        17
    stardust21  
       2h 14m ago   ❤️ 1
    @coefu 所以你这一通教训有什么意义呢,说明你很疲惫乏力了么?我理解 LZ 做了一个 Java 垂直方向的 harness 插件,如果能节省一些 token 和时间,为什么不是聪明的表现呢
    chenluo0429
        18
    chenluo0429  
       2h 2m ago via Android
    @stardust21 因为插件的能力已经被大模型原生覆盖了啊。按照现在的主流模型,这个插件大概率只能兼容于某些特定的项目,对于绝大部分项目来说是限制而非是助力。最终的结果是不节省 token 和时间,反而降低性能
    moyupai
        19
    moyupai  
       1h 53m ago
    出来的太晚了,如果你的项目对外部依赖比较少,测试库配好,ai 完全可以一把梭,写完代码就连测试库验证场景,各种测试夹具看的你眼花缭乱,测完还帮你提交代码,你就在那逼逼赖赖的打字就行了
    fovecifer
        20
    fovecifer  
       1h 47m ago
    你说的这个在一年前可能还有点道理,但是现在完全不是了。
    alamaya
        21
    alamaya  
       1h 36m ago
    估计没咋用过现在的 ai ,ai 怎么会不愿意去运行代码,我现在遇到一个 bug 可以只描述现象,ai 会自己看代码分析然后写验证代码进行复现,复现成功了才确认问题,而不是直接就改代码。说实话,你只要给到足够的信息,ai 做得只会比人更好更细致。
    wantDoraemon
        22
    wantDoraemon  
       1h 31m ago
    现在 AI agent 的能力超乎想象,你能把测试方法封装成 MCP ,那对现在的 AI 来说都不算难,给项目配上 harness ,写个 SOP 基本上就能干了。一年前 AI 写的代码我都会 review 一下,现在代码不看了,甚至文档我也不看了,只能说 AI 发展太快了,翻天覆地,彻底的改变了工作方式。不知道自己的饭碗还能保留多久,现在也是很迷茫了
    JasonYip
        23
    JasonYip  
       1h 27m ago
    其实还真不是 以前我用 zcode 的时候他自己就会把一个 jar 包拉到/tmp ,自己写一个 Java 小 demo ,编译运行,然后自己看字节码,我没有提示他这么干,是他自己自发的
    L1ch404
        24
    L1ch404  
    OP
       1h 13m ago
    @chenluo0429 怎么说呢,能用和好用之间还是有些区别的,joLink 更像是给 AI 做的一个 IDE 吧,就是提供了一些方便的入口吧,如果 java bin 去启动一个企业级的 Java 项目还是比较麻烦的,也不说不能,就像以前古法编程一样 用记事本一样可以写代码 只是不好用而已,不过我也没有说 joLink 一定有用或者怎么样,我只是想探索一下,毕竟失败的探索也是有意义的,最后感谢你的回复
    L1ch404
        25
    L1ch404  
    OP
       55 mins ago
    @crazy0x
    @lsls931011
    @refear99
    @moyupai
    @fovecifer
    @alamaya
    @wantDoraemon
    @JasonYip 我上面表达的有问题,不是说跑不起来,只是启动一个企业级多模块的 Java 项目还是比较麻烦,可以用 classpath 拼接依赖包或者先编译再用 jar 、war 的方式启动,在我有限的测试中发现 ai 不太愿意这样做,这个东西就是给了 AI 一个快捷的启动、测试入口,其次启动前的编译也会快些,并不是说开创了一个什么东西,只是想在这方面做了一个尝试而已,想探索一下 让 ai 快捷的启动、测试对于 vibe coding 这件事情有没有帮助,最后感谢大家的回复,我没有一一回复 我就找了相同疑问的评论一起回复了🙏🏻
    quxiaojuncuiyue
        26
    quxiaojuncuiyue  
       Just Now via Android
    我没看懂这个产品 主要解决了啥问题呀 如果只是为了企业级产品全量编译比较耗时的话 这个又不是 ai 的问题 没有 ai 之前 这个问题也存在 解决它的方法论 不是微服务 不是 osgi 再不行你用 ddd 再不行纯技术领域 就是啥 maven 增量编译 jenkins 增量编译 前面是跟 ai 无关的工程方法论 后面是增量编译技术的现有技术方案 后面这个对于 ai 来说 就是一个全局规则和一个命令行调用的事 再说测试理论和事实理论 根据事实推断这个是 ai agent 的指导规则的 harness 而测试目前来说是要靠你自己想出来的一套黑盒验证方法 感觉这些包不出来一个 mcp 呀
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2679 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 14:12 · PVG 22:12 · LAX 07:12 · JFK 10:12
    ♥ Do have faith in what you're doing.