SolonCode 是不是国产化替代 ClaudeCode 的优选?

安全审计、代码脱敏、数据本地化,是国内企业换掉 ClaudeCode(或任何海外 AI 编码助手)的三条真实理由。但「能换」和「换得舒服」之间,还隔着很多具体细节——安装、配置、模型选择、代码理解能力、与既有工程线的兼容性,一项项都比较清楚,才能判断谁才是「最优」。

本文不喊口号,逐条对照,结论在最后。

二、SolonCode 是什么

SolonCode 是杭州无耳科技从零构建的企业级终端编码智能体,底层架构自研,全中文驱动。它的定位:

  • 一个 soloncode web 0 命令启动 Web 工作台,浏览器打开即可用。
  • 自主理解需求、规划步骤、编写代码、执行 Shell。
  • 模型不绑定,支持 DeepSeek、QWen、GLM、Kimi、MiniMax、GPT、Claude、Gemini、Ollama 等,也可以接内部私有化网关。
  • 开源(GitHub / Gitee / GitCode 三端),支持 macOS / Linux / Windows / 鸿蒙 PC。

预览:

三、安装详解

3.1 系统要求

需要 Java 8 或更高版本(支持 Java 8 到 Java 26),提前安装好即可。

3.2 在线安装(推荐)

Mac / Linux / 鸿蒙 PC:

curl -fsSL https://solon.noear.org/soloncode/setup.sh | bash

Windows(PowerShell):

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

重复执行安装命令即可更新,安装器会更新程序文件,且保留你的配置或定义文件。

3.3 离线安装(内网 / 信创隔离环境)

如果目标机器没有外网,采用「一台联网机器下载 + 拷贝到目标机器安装」的方式:

第一步: 在联网机器下载最新版安装包

用浏览器打开 Gitee Releases 页面 手动下载 soloncode-cli-bin-*.tar.gz。

第二步: 拷贝到目标机器并解压

通过 U 盘、scp、内网共享等任意方式,把 tar.gz 传到目标机器,然后解压(里面有 install 安装脚本)。

第三步: 运行安装脚本

Mac / Linux / 鸿蒙 PC:

sh install.sh

Windows(PowerShell):

& "./install.ps1"

安装脚本会把程序文件写入 ~/.soloncode/,并尝试将 soloncode 命令注册到 PATH。

3.4 安装后的目录结构

~/.soloncode/
+-- AGENTS.md              # 全局智能体提示词
+-- settings.json          # Web 设置页维护的全局配置
+-- bin/
|   +-- soloncode-cli.jar
|   +-- soloncode
|   +-- soloncode.ps1
|   +-- uninstall.sh
|   +-- uninstall.ps1
|   +-- uninstall.cmd
+-- skills/                # 全局 Skills
+-- agents/                # 全局子代理
+-- commands/              # 全局自定义命令
+-- extensions/            # Java 扩展插件
+-- memory/                # 全局长期记忆(默认)

项目目录下还可以有工作区配置:

project-root/
+-- .soloncode/
    +-- settings.json
    +-- AGENTS.md
    +-- CODE.md
    +-- sessions/
    +-- skills/
    +-- agents/
    +-- commands/
    +-- logs/

3.5 首次配置模型

soloncode web 0

打开浏览器后进入「设置 → 大语言模型」,添加模型并测试连接。

3.6 快速验证

soloncode cli

进入 CLI 后可以输入:

你好啊

也可以启动 Web 模式:

soloncode web        # 默认端口 4808
soloncode web 0      # 自动选择可用端口
soloncode web 1212   # 指定端口

3.7 卸载

Mac / Linux:

sh ~/.soloncode/bin/uninstall.sh

Windows(PowerShell):

& "$HOME/.soloncode/bin/uninstall.ps1"

3.8 常见问题

问题 建议
soloncode 命令找不到 重新安装。或检查安装脚本是否已写入 PATH
模型连接失败 检查 apiUrl、apiKey、模型名与网络代理
Web 端口被占用 使用 soloncode web 0 或指定其他端口

四、SolonCode 的主要特点

4.1 全中文驱动的交互体验

SolonCode 从底层到界面都面向中文用户设计。

全中文界面:所有菜单、设置、提示、帮助文档均为中文,模型配置的完整路径是:

设置 → 模型 → 添加模型(填 API URL、API Key、模型名)→ 测试连接

22 种界面语言:除了简繁中文,还支持英日韩、德法西意俄葡,以及阿拉伯语、孟加拉语、挪威语等小语种,默认跟随系统语言。切换语言无需重启,即时生效。

字体与字号自由调节:v2026.8.4 起支持界面字体 12 个候选可搜索,代码字体独立选择,字号 85%~150% 无级缩放,字体与布局解耦,放大文字不会撑变形。

4.2 模型不绑定,国产模型优先支持

SolonCode 不绑定任何单一模型,用户可以自由选择:

  • DeepSeek:目前国内性价比最高的通用模型之一,编码任务效果接近 GPT-4 级别。
  • QWen / GLM / Kimi:国产主流模型,都有免费额度。
  • Ollama 私有部署:企业内网离线运行,数据完全不出门,成本仅为电力。
  • GPT / Claude / Gemini:如需使用海外模型,也可以接入,完全自主。

模型切换在 Web 面板里点一下就好,不需要改代码或重新部署。

代码、对话、记忆全部不出境,对于金融、政务、军工等强监管行业,这是基础能力,不是选配。

4.3 心智记忆 Web 化

SolonCode 内置长期记忆能力,记忆条目在 Web 界面中直接维护:

  • 按重要度与时间浏览所有记忆
  • 语义检索精准定位历史经验
  • 条目上百后也能快速找回

记忆是团队的资产,不是个人的——不同会话可以共享同一份记忆库,项目级的知识沉淀自动复用。

4.4 代码理解与工程能力

底层架构从零构建,自研 ReActAgent 推理引擎,具备:

  • 角色与指令系统:可以给智能体设定明确的角色和任务指令。
  • 子代理管理:内置 bash、explore、general、plan 四个子代理,除 general 外均无写权限,边界划在配置里。
  • ReAct 反思循环:执行 → 观察 → 反思 → 再执行的闭环,允许中途纠正方向。
  • /goal 简化命令:一键定义目标,智能体自主拆解任务。

实测案例:v2026.8.3 版本的 15 分钟第一次成功指南,记录了一个真实团队从零安装到产出可审查代码变更的完整路径,包含测试连接、模型配置、进入项目目录、下达代码审查指令、查看 Diff 四个环节,全部可截图验证。

4.5 与现有工程线无缝兼容

SolonCode 支持主流编程语言和框架,不强制要求特定技术栈:

  • 构建工具:Maven、Gradle、npm、pnpm、yarn、Go Modules 等
  • 语言:Java、Python、Go、JavaScript/TypeScript、Kotlin、C# 等
  • 操作系统:macOS、Linux、Windows、鸿蒙 PC

项目目录下可以放置 .soloncode/CODE.md 自定义规约,团队共享的工程规范会被智能体自动读取并遵守。

4.6 多工作区隔离架构

SolonCode 支持同时运行多个独立工作区,每个工作区拥有专属的引擎实例、会话历史、记忆库和工具配置,彼此完全隔离。

工作原理:

  • 工作区 ID 由物理路径的 MD5 哈希生成(格式 ws-xxx),确保同一目录永远映射到同一工作区
  • 每个工作区维护独立的 HarnessEngine、SessionManager、FileService、GitService 实例
  • 历史记录持久化在 ~/.soloncode/workspaces.json,支持快速切换最近工作区
  • LRU 闲置释放机制:30 分钟无访问且无 WebSocket 连接的工作区会自动释放资源

使用场景:

  • 同时维护多个项目,互不干扰
  • 不同项目使用不同模型或配置
  • 跨项目知识沉淀(通过全局记忆共享)

4.7 结构化任务列表

SolonCode 内置 TodoTalent,支持在长链路任务中使用结构化任务清单管理进度。

核心能力:

  • todowrite 工具:创建、更新、重构完整 Markdown 格式任务清单
  • todoread 工具:读取当前任务状态,同步进度
  • 状态标记:- [ ] 待办、- [/] 进行中、- [x] 已完成
  • 任务持久化:每个会话的 TODO 列表保存在 sessions/{sessionId}/TODO.md

典型工作流:

- [ ] 需求分析
- [ ] 架构设计
- [/] 编码实现
- [ ] 单元测试
- [x] 代码审查

前端实时渲染任务卡片,支持按状态过滤。AI 管家在复杂任务中会自动拆解子任务、实时更新进度,用户可随时查看全局状态。

4.8 安全沙盒模式

SolonCode 默认启用沙盒模式,为 AI 编码操作提供安全边界,防止误操作影响系统稳定性。

沙盒配置项(Settings → General):

配置项 默认值 说明
sandboxMode true 是否启用沙盒
sandboxAllowUserHome true 是否允许访问用户主目录
sandboxSystemRestrict false 是否启用系统级接口限制

沙盒保护范围:

  • 禁止执行 pkill java、kill -9 等危险进程操作
  • 禁止执行 exit 命令退出子进程
  • 禁止删除根目录或系统目录(/etc、/usr 等)
  • 禁止修改网络配置或安装系统驱动
  • 所有命令在 Java 进程子 shell 中运行,杀死父进程会导致智能体停止

适用场景:

  • 团队协作:多人共用同一台机器时防止 AI 误操作影响他人
  • 生产环境:在内网服务器部署时降低风险
  • 新手用户:学习 AI 编码时的安全网

4.9 文件挂载与逻辑路径

SolonCode 支持将任意目录挂载为逻辑路径,通过 @alias 前缀在命令中引用,实现跨目录、跨项目的统一访问。

挂载类型:

类型 说明 典型用途
FILES 文件/目录挂载 源码仓库、文档库、数据目录
SKILLS 技能包挂载 自定义技能、模板库
AGENTS 子代理挂载 共享的子代理定义

使用方式:

# 在设置中配置挂载点
# alias: @solon-ai-source, path: /path/to/solon-ai, type: FILES, writeable: false

# 在命令中使用逻辑路径
读取文件 @solon-ai-source/solon-ai-core/src/main/java/.../ChatModel.java

# 在代码理解中自动解析
grep pattern @solon-ai-source/src/
ls @solon-ai-source/

动态挂载管理:

  • 挂载点变更时自动触发文件监听,实时同步到前端
  • 支持启用/停用单个挂载点,不影响其他挂载
  • 挂载点权限独立配置(read-only / read-write)
  • 文件树浏览支持挂载别名作为根节点

典型配置示例:

{
  "mountPools": {
    "@solon-ai-source": {
      "description": "solon-ai 开源项目仓库源代码",
      "type": "FILES",
      "path": "/Users/dev/repos/solon-ai",
      "writeable": false,
      "scope": "user"
    },
    "@workspace-skills": {
      "description": "工作区技能包",
      "type": "SKILLS",
      "path": "./.soloncode/skills",
      "writeable": true,
      "scope": "workspace"
    }
  }
}

挂载机制让 SolonCode 能够访问项目外的参考源码、共享技能库,同时保持工作区边界的清晰性。

4.10 定时心跳循环任务

SolonCode 支持定时心跳循环任务,让 AI 可以按固定间隔或 cron 表达式自主执行巡检、监控、轮询类任务,无需人工干预。

创建心跳任务:

/loop 5m check if deployment finished     # 每 5 分钟执行一次
/loop 30s check CI status                 # 每 30 秒(自动向上取整为 1 分钟)
/loop check CI status                     # 默认 5 分钟
/loop cron:"0 */5 * * * ?" check status   # 使用 cron 表达式
/loop 5m --now check status               # 立即执行首次

管理命令:

命令 说明
/loop 列出当前会话所有活跃任务
/loop stop <id> 停止指定任务
/loop stop-all 停止当前会话所有任务

适用场景:

  • 定时检查 CI/CD 构建状态
  • 轮询部署进度
  • 周期性备份验证
  • 监控系统告警

心跳任务持久化在会话目录的 loop-tasks.json 中,进程重启后自动恢复调度。

4.11 目标驱动(Goal)模式

除了定时心跳,SolonCode 还支持目标驱动模式(Goal)——设定一个目标,AI 自主推进直至达成,无需逐轮人工介入。这是 SolonCode 实现自主持续运行的核心能力。

创建 Goal 任务:

/loop goal fix auth module                # 简化 Goal 模式,立即执行
/loop goal write a readme.md              # 编写文档
/loop goal --max-tokens:50000 refactor    # 限制 Token 预算
/loop goal --max-duration:30 fix tests    # 限制时间预算(分钟)

Goal 状态机:

Goal 模式拥有完整的 6 态状态机,实现可中断、可恢复的自主推进:

PURSUING ⇄ PAUSED → ACHIEVED | BUDGET_LIMITED | ITERATION_LIMITED
    ↓
  BLOCKED → (resume) → PURSUING
状态 说明 可恢复
PURSUING 正在推进中,AI 持续执行 —
PAUSED 用户手动暂停(/loop pause) 是
BLOCKED AI 主动声明阻塞(通过 goal_update(blocked)) 是
ACHIEVED AI 调用 goal_update(complete) 标记完成 否(终态)
BUDGET_LIMITED Token/时间预算耗尽 可通过扩容恢复
ITERATION_LIMITED 轮次预算耗尽 否(终态)

管理命令:

命令 说明
/loop pause <id> 暂停一个 Goal 任务
/loop resume <id> 恢复暂停/阻塞的 Goal 任务
/loop stop <id> 停止任务

AI 侧工具(动态暴露):

Goal 模式下,系统向 AI 暴露两个工具(仅在存在活跃 Goal 时加载):

工具 说明
goal_get 查询当前 Goal 状态(目标、进度、预算消耗、耗时)
goal_update 标记完成(complete)或声明阻塞(blocked)

预算管理:

Goal 模式支持 Token 和时间双重预算控制:

配置 说明 默认值
--max-tokens:<N> Token 预算上限 settings.json 中配置
--max-duration:<N> 时间预算上限(分钟) settings.json 中配置

预算阈值体系:

  • 警告阈值(默认 70%):引导词中提示 AI 调整策略
  • 紧急阈值(默认 85%):引导词中增加紧急提示
  • 预算耗尽:触发 wrap-up 收尾回合,AI 总结进展后状态转为 BUDGET_LIMITED

预算感知引导词(Budget-Aware Prompting):

剩余预算 引导词模式 章节数
≥ 30% 完整模式 7 章节(证据驱动、忠于目标、审计完成、阻塞审计等)
15% ~ 30% 精简模式 3 章节(目标延续、审计完成、上一轮摘要)
< 15% 极简模式 单段落

运行时兜底机制:

机制 说明
无进展检测 通过指纹对比(工具调用 + 结果长度桶 + 行数桶)检测停滞,连续 3 轮无进展则触发告警
连续异常重试 异常时递增延迟重试(5s → 10s → 15s...),连续 3 次后标记 BLOCKED
事件驱动续行 Goal 每轮执行完成后自动调度下一轮(1s 冷却间隙)
ShutdownHook JVM 关闭时自动暂停所有活跃 Goal
崩溃恢复 进程重启后自动恢复未过期任务,自动 resume 暂停/阻塞的 Goal

Goal 验证器:

当 AI 调用 goal_update(complete) 标记目标完成时,系统会先执行客观验证:

  • 默认验证器(NoopValidator):始终返回通过
  • 自定义验证器:可注册实现 GoalValidator 接口的验证器,执行如运行测试套件、检查文件存在等客观校验
  • 插件化:通过 ValidatorFactory 根据目标条件自动匹配验证器

验证失败时,系统会返回错误信息,AI 继续改进后重新提交。

完整示例:

# 每隔 5 分钟检查构建状态
/loop 5m check if the CI build passed

# 查看所有任务
/loop ls

# 发现构建失败,创建 Goal 任务修复
/loop goal --max-tokens:50000 fix the CI build failure

# 查看 Goal 进展
/loop ls

# 临时暂停 Goal
/loop pause a1b2c3d4

# 恢复 Goal
/loop resume a1b2c3d4

# Goal 完成后,停止定时检查
/loop stop b2c3d4e5

提示:每个会话同一时间只能有一个活跃的 Goal。需先 /loop stop <id> 才能创建新 Goal。

与 /continue 的区别:

特性 /loop goal /continue
驱动方式 事件驱动,自动持续推进 手动触发
状态管理 完整状态机(暂停/恢复/完成/预算) 无状态管理
预算控制 Token + 时间预算 无预算
持久化 自动持久化,进程重启可恢复 仅恢复会话历史
适用场景 需要多轮自主完成的复杂任务 从上一次中断处继续聊天

五、总结

SolonCode 的定位很明确:把 AI 编码能力从海外模型换到国产模型,让数据不出境、让团队用中文、让工程线不重写。

如果你正在寻找一个:

  • 模型可接 DeepSeek/QWen/GLM 等国产 API
  • 代码、对话、记忆全链路不出境
  • 中文界面开箱即用
  • 安装简单、离线可用、内网部署无障碍

的编码智能体,SolonCode 是目前国内最完整、最接地气的方案。

posted @ 2026-08-21 18:01  带刺的坐椅  阅读(54)  评论(0)    收藏  举报