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 是目前国内最完整、最接地气的方案。

浙公网安备 33010602011771号