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

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

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

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

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

    这个结论目前已经不成立了,随着基模的迭代和 Harness 工具迭代,这类夹在中间的工具很难有竞争力
    ricciz
        3
    ricciz  
       2h 28m ago   ❤️ 1
    ai 已经会在自己觉得合适的时候编译了,而且测试用例也越来越实用
    L1ch404
        4
    L1ch404  
    OP
       2h 15m ago
    @Zhuzhuchenyan 感谢您的评论,现在的工具确实能让 LLM 去启动项目,其实启动一个企业级的项目还是比较困难的,就拿 maven 项目来说要么打成 jar 包启动,或者用 classpath 再去拼依赖包路径启动,这主要就是一个启动成本的问题,而且绝大数情况启动和单元测试都需要编译整个项目,相对耗时,就很容易导致 LLM 即使能运行代码 它也不太愿意去做这件事,这个我在项目初期是有过相对深刻的研究和探索的,这个就有点像 k8s 初期 大家说用 shell 或者脚本也能实现,确实是能实现,只是比较复杂和麻烦,joLink 不完全在于让 LLM 去启动项目 主要还提供了如何快捷、方便的让 LLM 去启动项目
    wxlwsy
        5
    wxlwsy  
       2h 12m ago
    我自己的经验,如果服务器启动复杂,比如需要连环启动,且有顺序地启动,ai 就没办法实际跑, 简单工程 ai 会自己启动取验证.ai 最多只编译看看有没有语法错误.
    L1ch404
        6
    L1ch404  
    OP
       2h 9m ago
    @ricciz 感谢您的评论,确实是会,我在做 A\B 测试的时候发现这个现象了,只不过可能比较慢而已,joLink 提供了一套更方便快捷的方式去执行单元测试
    fridaythx
        7
    fridaythx  
       2h 7m ago
    听起来是在重新造一个自己的 agent harness ,为什么不研究一下比较流行且轻量的 pi coding agent ,或许能少踩很多坑。
    L1ch404
        8
    L1ch404  
    OP
       2h 5m ago
    @fridaythx 不是 agent ,是一个 mcp ,是给 agent 提功能能力的,可以接入目前市面大部分 agent
    ryougifujino
        9
    ryougifujino  
       1h 38m ago
    AI 不会去实际跑一下来验证,你告诉它每次写完后都去跑一下不就行了么,现在的 AI 没这么笨。
    ricciz
        10
    ricciz  
       1h 26m ago
    @L1ch404 承认 OP 的工作是很有意义的,只是对 OP 的项目能否追得上 ai 的进化脚步感到担忧
    L1ch404
        11
    L1ch404  
    OP
       1h 14m ago
    @ryougifujino 感谢回复,是可以这样做,joLink 主要还提供了一套更方便 更快捷的能力供 AI 去启动、测试,就有点像现在大家写代码都用 IDE ,如果脱离 IDE 也能写,只不过没那么方便而已
    crazy0x
        12
    crazy0x  
       1h 13m ago
    看了眼时间,确认是 2026 年
    L1ch404
        13
    L1ch404  
    OP
       1h 11m ago
    @ricciz 哈哈哈,你说的这点没毛病,没准未来 AI 能力大幅度提升、非常智能的话 joLink 确实是没多大意义,不过我觉得 joLink 能做出来就已经很不错了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4908 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 08:57 · PVG 16:57 · LAX 01:57 · JFK 04:57
    ♥ Do have faith in what you're doing.