当所有人都在用 TS/Python 写 Agent,我们为什么坚持 Java

1. 先承认赛道默认栈:TS / Python 占主流,Java 几乎是空白

打开今天主流 Coding Agent / AI 编程助手的技术叙事,你会看到高度收敛的画面:

  • 运行时多是 Node / TypeScriptPython
  • 扩展生态习惯 npm / pip
  • 演示环境默认「开发者本机 + 现代 IDE + 外网模型 API」。

这并不奇怪。Agent 需要快速试错、大量胶水代码、丰富的脚本生态;TS/Python 在「个人开发者工具」赛道上确实更轻、更快出 demo。

于是很容易形成一种隐含偏见:

做 Agent = 用 TS/Python;用 Java = 企业遗留、重、慢、不适合 AI。

SolonCode 反其道而行:它公开声明自己是------

基于 Solon AIJava 实现的开源编码智能体,支持 Java 8 ~ Java 26 环境启动。

仓库:https://github.com/opensolon/soloncode

文档:https://solon.noear.org/article/soloncode

协议:MIT

官方差异说明里,第一条就是:

采用 Java 实现,100% 开源。兼容毕昇 JDK(Huawei BiSheng JDK),兼容鸿蒙 PC(Huawei Harmony PC)。

这不是「为了不一样而不同」。技术栈选择,本质上是在回答:你要优先服务哪类组织、哪类部署约束、哪类扩展方式。

2. 选型不是情怀:企业里真正卡住 Agent 的,往往不是模型

个人开发者装一个 CLI、配一个 API Key,一天就能玩起来。

企业里把「编码智能体」推到生产协作,卡住的经常是另一组问题:

约束 典型表现 对 Agent 运行时的要求
JDK / 运行时合规 指定 JDK 发行版、版本下限/上限、信创目录 能在既有 JVM 上跑,而不是强绑某一脚本运行时
网络与数据边界 代码不能随意出域;模型走内网网关 本地进程 + 可配置 API 端点,路径可解释
运维熟悉度 会管 JVM、会看日志、会做离线包分发 安装/更新/卸载路径清晰,可进服务器与批处理
长期可改造 要接内部权限、审计、工单、CMDB 扩展机制可被 Java 团队维护,而不是黑盒二进制
终端形态多样 开发机、跳板机、CI、无桌面 IDE 系统命令形态,有界面/无界面都能调度

你会发现:这些约束,和「模型能不能写好一段 React」关系不大,和 Agent 作为进程如何活在企业环境里 关系很大。

SolonCode 的 Java 选型,首先服务的是这类现实,而不是和 TS/Python 比「谁更潮」。

3. 四个硬理由:存量 JDK、信创路径、运维心智、单进程部署

3.1 企业 JDK 存量是基础设施,不是包袱

国内大量业务系统、构建机、运维脚本,仍以 JVM 为默认运行时。

要求每个要用 AI 编码的环境先装一套 Node 20 + 一堆原生依赖,或者维护一套与业务完全无关的 Python 虚拟环境,在团队里经常变成:

  • 权限审批多一轮;
  • 安全扫描多一类组件;
  • 「个人能跑、流水线不能跑」。

SolonCode 的前置条件非常直接(官方安装文档):

  • Java 8 或更高 (支持到 Java 26);
  • 支持 macOS / Linux / Windows (安装脚本亦覆盖 Harmony PC 路径)。

对很多团队来说,这意味着:机器上往往已经具备启动条件,Agent 不必再引入第二条运行时供应链。

3.2 毕昇 JDK 与鸿蒙 PC:不是口号,是可核对兼容声明

README 与官网FAQ明确写出:

  • 兼容 毕昇 JDK(Huawei BiSheng JDK)
  • 兼容 鸿蒙 PC(Huawei Harmony PC)

公开技术说明还进一步拆过因果链(架构层面):

  1. 后端是 纯 Java 应用(基于 Solon 体系)→ 有 JVM 即可启动;
  2. 鸿蒙 PC 兼容 毕昇 JDK 8 一类 JVM → 后端可运行;
  3. Web 交互走浏览器 → 系统有浏览器即可访问;
  4. CLI 走终端 → 有 Bash/终端即可。

结论不是「我们专门为鸿蒙重写了一版」,而是:

Java + 系统命令 + Web 外壳 这套结构,让跨平台/信创终端往往「无需额外适配语言运行时」。

这对政企与行业客户很重要:Agent 能否进短名单,有时先看 能否在指定 OS/JDK 上合法跑起来

3.3 运维熟悉度:日志、进程、安装目录,都是「企业语言」

官方安装后的主目录结构清晰可审计(文档《安装、更新、卸载详解》):

text 复制代码
~/.soloncode/
+-- AGENTS.md
+-- settings.json
+-- bin/
|   +-- soloncode-cli.jar
|   +-- soloncode
|   +-- ...
+-- skills/
+-- agents/
+-- commands/
+-- extensions/      # Java 扩展插件
+-- memory/

对习惯 JVM 服务的团队,这很眼熟:

  • 有明确的 bin / 配置 / 插件目录
  • 更新可重复执行安装命令,且说明会保留配置与定义文件
  • 内网可用「联网机下载 tar.gz → 拷贝 → install.sh / install.ps1」离线安装。

Agent 不再只是「开发者玩具」,而可以按 工具软件/轻量服务 的方式进入资产清单。

3.4 单进程、系统命令心智:服务器与 IDE 控制台同一套入口

SolonCode 强调系统命令形态:在任意工作区目录执行,例如:

bash 复制代码
soloncode cli          # 终端交互
soloncode web 0        # Web 交互(自动选端口)
soloncode run "......"     # 单次任务,跑完退出(可编程调度)

官方还说明:可通过编程方式调度(soloncode run "任务描述"),便于批处理、脚本、自动化链路调用。

这对应一种很「企业」的部署心智:

  • 一个可执行入口
  • 工作区 = 当前目录
  • 需要界面时开 Web,不需要界面时 CLI/run
  • 远程协作再叠加 Web / ACP 协议(官方差异点之一)。

TS/Python 工具当然也能做到类似事情;但「用 Java 团队已经熟悉的分发与进程模型去承载」,降低的是组织摩擦,不是语法糖。

4. 工程收益:Java 8--26、与 Solon AI 同源、可扩展而不是不可改

4.1 宽版本兼容:老构建机和新 JDK 都能谈

「支持 Java 8 到 Java 26」这件事,对宣传很容易被念成口号,对落地却很具体:

  • 仍停在 8/11 的业务线构建环境,不必为了试 Agent 强升全链路;
  • 已上 17/21/25 的团队,也不被卡在旧运行时;
  • 信创侧常见的 JDK 8 基线,与「追求新语言特性的本机开发」可以并存。

宽兼容的代价是工程纪律(要在旧 JDK 上保持可运行),收益是覆盖面

4.2 与 Solon AI / Harness 同源:不是「套壳调 API 的脚本」

Solon 生态把 SolonCode 明确放在智能体产品线中,并与 Solon AI 文档交叉引用:

  • Solon AI:Java AI 应用框架(LLM、Tool、Talent、RAG、MCP、Agent 等);
  • SolonCode:基于该体系实现的编码智能体产品(系统命令 + 多交互外壳)。

对用户的意义是:

  1. 能力演进有框架层支撑(模型方言、工具、代理、协议),不是单仓库堆脚本;
  2. 扩展语言与主栈一致------会 Java 的团队可以按官方扩展机制深入定制;
  3. 与「只用聊天 API + 本地 shell 胶水」相比,更接近可维护的长期产品

4.3 扩展是一等公民:HarnessExtension + ~/.soloncode/extensions/

官方文档《extensions 扩展开发》写得很清楚:

  • SolonCode Extensions 基于 Java 技术栈;
  • 类似其它产品里的 Hook / Plugin 定位;
  • 实现 HarnessExtension,在 configure(agentName, ReActAgent.Builder) 中介入装配;
  • 可添加 Tool、Interceptor 等;
  • 打包为 JAR 放入 ~/.soloncode/extensions/
  • 支持配置显式加载,或基于 Solon SPI / Plugin 自动装配。

依赖示意(文档原文结构):

xml 复制代码
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-ai-harness</artifactId>
    <scope>provided</scope>
</dependency>

这对「平台组要把 Agent 接到内部规范」极其关键:

  • 扩展作者是 Java 工程师,代码走公司既有评审与制品库;
  • 行为可以进 Git,而不是只能改黑盒配置;
  • 与 Skills(流程/提示资产)、Commands(斜杠命令)形成分层:
    规范与话术用文档资产,强逻辑与拦截用 Java 扩展。

5. 对用户的直接好处(把选型翻译成工作收益)

5.1 老项目、旧机器,也有机会「先跑起来」

你不需要先把公司全局升级到某一种前端运行时,才有资格试用编码智能体。

只要目标环境有合格 JDK,就可以按官方路径安装:

bash 复制代码
# Mac / Linux / Harmony PC
curl -fsSL https://solon.noear.org/soloncode/setup.sh | bash

# Windows PowerShell
irm https://solon.noear.org/soloncode/setup.ps1 | iex

新用户推荐:

bash 复制代码
soloncode web 0

在「设置 → 大语言模型」配置并测试连接(模型不预置绑定,按需接入你信任的供应商或内网网关)。

5.2 私有化 / 内网路径是写进文档的,不是销售口头承诺

官方安装文明确给出:

  • 在线安装/更新(重复执行安装命令即可更新,保留配置);
  • 离线安装 (Gitee Releases 下载 soloncode-cli-bin-*.tar.gz → 拷贝 → 本地 install 脚本)。

再叠加隐私说明(官网):

SolonCode 不会存储 您的代码或上下文数据。

所有处理均在本地完成 ,或通过直接 API 调用 发送至您的 AI 提供商。

使用信任的提供商或内部 AI 网关时,可以按该模型安全使用。

Java 选型在这里的作用,是让「本地进程 + 可审计目录 + 离线包」与企业既有软件交付方式对齐。

5.3 编码对象不限 Java:运行时是 Java,助手是多语言

需要特别澄清一个常见误解:

用 Java 实现 ≠ 只能帮你写 Java。

SolonCode 作为通用编码智能体,工作对象是工作区里的文件与命令 ;官方示例任务也包括分析协议、生成材料、以及「Solon + Java17 + Vue3」一类全栈需求。

运行时语言解决的是 Agent 自己如何启动与扩展;业务仓库仍可以是 Go、Python、前端、脚本等。

5.4 多端同一内核:CLI / Web / Desktop,服务不同工位

官方差异点写明同时支持:

  • 终端 CLI
  • 浏览器 Web
  • 桌面 Desktop
  • 以及 Web / ACP 远程通讯

Java 后端 + 多外壳,使「服务器上跑 CLI、评审时开 Web、桌面长会话用 Desktop」成为同一产品的不同入口,而不是三个技术栈分裂的项目。

6. 回应常见质疑(只使用可核对事实,不编造对标分数)

质疑 1:「Java 启动很慢、很重,不适合 CLI 工具」

可核对事实:

  • 产品形态是系统命令 + 本地进程 ,安装后通过 soloncode 启动;主程序以 soloncode-cli.jar 等形式存在于 ~/.soloncode/bin/
  • 早期官方发版说明(团队博客)曾公开描述过资源取向:内存占用小、启动快 ,并写过「启动内存约 70MB 左右」量级(不同版本/机器会有波动,请以你本机实测为准,本文不把它宣传成永恒基准)。
  • 后续发版亦多次强调体积轻量、跨平台;具体安装包尺寸随版本变化,应以 Releases 当前产物为准。

更稳妥的理解:

SolonCode 追求的是「可在企业环境接受的工具级开销」,而不是和最小 shell 脚本比冷启动毫秒数。真正的体感瓶颈,往往在 模型网络延迟与任务步数,不在 JVM 多出来的那一点启动成本。

质疑 2:「Java 生态做 AI Agent 是不是二流,扩展没人会」

可核对事实:

  • 上游有完整的 Solon AI 文档体系(ChatModel、Tool、Talent、Agent、Harness、MCP、ACP 等)。
  • SolonCode 扩展机制公开、接口明确(HarnessExtension),安装路径固定。
  • 技能(Skills)、子代理、命令、Loop、Memory 等能力在官方文档树中均有专题,不依赖「只能改闭源产品配置」。

是否「主流」,取决于你的团队语言构成。

Java 主力团队维护 Java 扩展,通常比维护另一套 Node 插件链更可持续。

质疑 3:「坚持 Java 是不是为了绑 Solon 框架做生态闭环?」

这里应诚实分层:

  • :SolonCode 明确基于 Solon AI 与 Java;与 Solon 生态协同是设计事实,不是隐藏关系。
  • 不是:它并不要求你的业务项目必须使用 Solon 框架才能被 Agent 修改;工作区可以是任意工程。
  • 开源协议是 MIT(SolonCode 仓库),源码可审计、可 fork;是否采用、如何改造,决策权在你。

技术选型服务产品目标;产品目标若是「让国内/企业环境可落地的编码智能体」,Java 是手段,不是宗教。

质疑 4:「那为什么不做成多语言运行时,全都要?」

「全都要」通常带来:

  • 安装包与安全扫描面膨胀;
  • 支持矩阵爆炸;
  • 企业验收说不清运行时边界。

SolonCode 选择 一条主运行时(JVM)+ 多交互外壳 + 模型可插拔 ,是典型的克制策略:

把复杂度放在「任务与模型」,而不是「再维护三条 Agent 内核」。

7. 边界:Java 选型证明不了什么

为了避免这篇文被读成「Java 沙文主义」,必须写清边界:

  1. 不证明 SolonCode 在所有场景强于 TS/Python 实现的 Agent。
  2. 不证明 模型效果由 Java 决定------效果首先取决于你配置的模型、提示、技能与仓库规范。
  3. 不证明 零学习成本------你仍要配置模型、理解权限与 HITL、学会用 AGENTS.md / Skills。
  4. 不适合 作为「全面替代开发者」的论据;人仍负责方向、边界与合并。
  5. 若团队完全没有 Java/JVM 运维能力,且环境禁止安装 JDK,那么 Java Agent 不是你的最优解------应如实换路径。

选型文章的价值,是帮你做 匹配 ,不是帮你做 信仰

8. 收束:技术栈选择 = 你决定服务谁

把全文压成一句决策语:

如果你更在意...... Java 路线(SolonCode)的匹配度
企业 JDK 存量、构建机一致性
毕昇 / 鸿蒙 / 内网离线包 高(有公开兼容与离线安装说明)
用 Java 做可评审的扩展与拦截 高(官方 Extensions)
与 Solon AI 体系长期演进
纯个人、极客式 TS 插件生态 未必是你的菜
「不装 JDK、只要一个静态二进制」 需另评估约束

SolonCode 坚持 Java,不是否认 TS/Python 在 Agent 赛道的成功,而是承认:

有一类用户的主战场在 JVM 企业环境里。

他们需要的不是又一个只能在演示视频里发光的 Agent,而是能进终端、进内网、进扩展目录、进审计清单的数字员工运行时

人仍然是架构者与审核者;

Agent 仍然只在可控边界里推进实现。

Java 在这里的角色,是让这套分工在真实组织里站得住

9. 你可以立刻做的 3 件事

  1. 看官方身份与差异点(5 分钟)

  2. 在已有 JDK 的机器上安装并打开 Web 设置(15 分钟)

    bash 复制代码
    curl -fsSL https://solon.noear.org/soloncode/setup.sh | bash   # 或 Windows 对应命令
    soloncode web 0

    配置你的模型提供商或内网网关,先完成「你好」级连通。

  3. 若你是平台组:打开扩展文档,评估是否用 Java 接内部规范

相关推荐
小王师傅661 小时前
英语学习记
java·学习
民乐团扒谱机2 小时前
【微科普】一文搞懂AI对话平台公式复制差异:DeepSeek一键粘贴PPT可编辑,豆包复制仅得到LaTeX源码底层原理
人工智能·ai·powerpoint·ai写作·deepseek
早点睡啊Y2 小时前
深入学LangChain官方文档:Observability 与 Studio——先看清 Agent 到底做了什么
java·数据库·langchain
雨落在了我的手上2 小时前
Java数据结构(六):链表的介绍
java·开发语言·数据结构
心疼你的一切2 小时前
Build-Your-Own-X 实战指南:从复刻经典到掌握核心原理
人工智能·ai·aigc
独隅2 小时前
DevEco Code Plan+Build 双 Agent 协同开发效率实测
java·开发语言
ajassi20002 小时前
AI语音智能体架构解析(四)AI 语音终端(执行器官)
人工智能·ai·架构·ai编程
艾斯特_3 小时前
混合检索与重排:提升召回与排序质量
后端·python·ai
羑悻的小杀马特3 小时前
AI判不了设备异常?缺的不是算法,是这层数据底座
数据库·人工智能·ai