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

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

  •  
  •   L1ch404 · 6h 15m ago · 1132 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
    最后感谢大家能看完这篇文章

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

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

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

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

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

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

    就算是再聪明的脑袋持续跟进,也感到疲惫乏力。
    stardust21
        17
    stardust21  
       14 mins ago
    @coefu 所以你这一通教训有什么意义呢,说明你很疲惫乏力了么?我理解 LZ 做了一个 Java 垂直方向的 harness 插件,如果能节省一些 token 和时间,为什么不是聪明的表现呢
    chenluo0429
        18
    chenluo0429  
       2 mins ago via Android
    @stardust21 因为插件的能力已经被大模型原生覆盖了啊。按照现在的主流模型,这个插件大概率只能兼容于某些特定的项目,对于绝大部分项目来说是限制而非是助力。最终的结果是不节省 token 和时间,反而降低性能
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 12:13 · PVG 20:13 · LAX 05:13 · JFK 08:13
    ♥ Do have faith in what you're doing.