























很多 AI 编程工具,但大多数都有一个共同的痛点:每次对话都要重新交代背景。
说实话,这个痛点困扰了我很久。你跟 AI 说"我项目用的是 MyBatis-Plus",它说"好的,记住了"。结果第二天开个新会话,它又开始给你写 JPA 的代码。你跟它说"我们团队的命名规范是驼峰式",它在同一次对话里记住了,下次又忘了。
每次都要重新交代技术栈、项目结构、团队规范——这种感觉就像每天换一个新同事,你得从头培训。
直到我遇到了 SolonCode CLI,确切地说,是遇到了它的 心智记忆(Memory) 功能。
如果你还没听说过 SolonCode,先花一分钟了解一下。
SolonCode 是 Solon 生态 的命令行 AI 编程助手,基于 Solon AI 框架构建,底层采用了 Harness 智能体架构。它不是一个 IDE 插件,而是一个独立的终端工具——只要能打开终端的地方就能用。
核心定位: 一个能真正"读懂项目、执行操作、自主推进"的编码智能体。它可以读取你的项目文件、执行终端命令、搜索网络资料、调度子代理并行工作,像一个真正的开发搭档一样帮你干活。
当前版本: v2026.5.15(文内功能描述基于 v2026.5.9 版本)。
两种交互模式:
几个关键特点:
好了,背景介绍完毕。接下来进入正题——心智记忆功能。
Memory(心智记忆)是 SolonCode 的长期认知系统。它在对话过程中自动提取关键信息并持久化存储,使得 AI 在后续会话中能"记住"用户的偏好、项目约定和历史上下文——用得越多,理解越精准。
划重点:自动提取,跨会话持久化,越用越懂你。
这意味着什么?意味着你不需要做任何额外操作,只需要像平时一样跟 SolonCode 对话,它就会在背后默默学习你的习惯、记住你的偏好、理解你的项目。
它会记住什么?
心智记忆的核心架构借鉴了认知科学的设计理念,提供五种记忆操作:
用户对话
│
▼
Agent 推理(LLM 自动判断是否需要记忆操作)
│
├── extract ──→ 发现新事实?存入记忆(key 已存在则触发认知对比)
├── recall ──→ 需要"回忆"某条具体记忆?按 key 精确召回
├── search ──→ 需要查找相关背景?语义搜索匹配记忆
├── consolidate ──→ 碎片太多?合并多条低层记忆为一条高层认知
└── prune ──→ 记忆过时?直接删除
│
▼
MemorySolution
├── MemoryStoreProvider ──→ RogueMap 本地 KV 持久化
└── MemorySearchProvider ──→ Lucene 全文语义索引
让我逐一解释:
提取(Extract)—— 模拟"注意到并记住"
当你在对话中透露了值得保存的信息,SolonCode 会自动识别并提取。比如你说"我们项目用的是 Solon 框架",它就会判断:这是一个重要的技术选型信息,值得记住。
如果提取时发现 key 已经存在,还会触发认知对比——新旧信息是否矛盾?如果矛盾,以新的为准。这就像人类在获取新知识时,会自动和已有认知进行对比和修正。
召回(Recall)—— 模拟"想起来"
当你提到某个话题,SolonCode 精确知道需要回忆哪条记忆,就通过 key 直接召回。就像你说"我之前说的那个 ORM 偏好来着",它会精确地把 MyBatis-Plus 的记忆调出来。
搜索(Search)—— 模拟"联想"
当话题涉及某个领域,SolonCode 会通过 Lucene 全文语义索引,搜索相关的记忆碎片。这是一种模糊匹配,不需要精确的 key,而是通过语义关联找到相关记忆。就像你闻到某种味道,突然想起小时候的事情——联想式回忆。
整合(Consolidate)—— 模拟"顿悟"
当记忆碎片积累到一定程度,SolonCode 会自动将多条低层记忆合并为一条高层认知。这不是简单的信息堆叠,而是真正的"认知升维"。
比如它分别记住了你用的 ORM、你用的框架、你的编码风格,整合之后就变成了一条高层认知:"团队使用 Solon + MyBatis-Plus 技术栈,偏好注解式开发。" 一条顶多条,更精准也更高效。
修剪(Prune)—— 模拟"遗忘"
过时的信息会被自动清理。你之前用的某个临时技术方案,现在已经不用了?Prune 操作会帮你把这些过时记忆清除,保持记忆库的精简和准确。
SolonCode 的心智记忆系统引入了 重要性分级 机制(1-10 级),不同级别的信息拥有不同的生命周期和权重:
| 级别 | 含义 | 示例 |
|---|---|---|
| 1-3 级 | 琐碎事实 | 临时文件名、一次性的路径信息 |
| 4-6 级 | 行为偏好 | 常用的工具、反复提及的关注点、代码风格偏好 |
| 7-9 级 | 核心规约 | 架构定义、长期技术选型、团队开发规范 |
| 10 级 | 重大决策 | 足以改变后续所有对话逻辑的关键决定 |
这个分级机制非常重要。它意味着 SolonCode 不会把"你提了一嘴的临时变量名"和"团队正式决定的技术栈"一视同仁。10 级的记忆会深刻影响后续所有的对话逻辑,而 1 级的记忆可能在整合时就被清理掉了。
这也是为什么心智记忆能"越用越聪明"——它不仅记住了信息,还理解了信息的重要性。
记忆数据完全保存在本地:
~/.soloncode/memory/
├── lucene/ # Lucene 全文索引(语义搜索用)
└── rogue/ # RogueMap KV 数据库(精确存取用)
默认所有项目共享一份统一记忆(跨项目积累认知),也可以通过 memoryIsolation 配置为项目隔离模式:
# .soloncode/config.yml
memoryIsolation: true # 长记忆是否工作区隔离
| 配置值 | 存储路径 | 说明 |
|---|---|---|
false(默认) |
~/.soloncode/memory/ |
所有项目共享一份记忆,跨项目积累认知 |
true |
<workspace>/.soloncode/memory/ |
每个工作区独立记忆,项目间互不干扰 |
我个人倾向于用默认的全局共享模式。因为很多偏好是跨项目的——你不太可能在 A 项目喜欢驼峰命名,到了 B 项目就想用下划线。
让我们来看一个真实的使用演进过程:
第一次对话:
用户: 我这个项目用的是 MyBatis-Plus,不要给我用 JPA
助手: 好的,我记住了。
[自动 extract] key=user_orm_preference, fact="项目使用 MyBatis-Plus,不使用 JPA", importance=7
第一次,SolonCode 提取了你的 ORM 偏好,重要性标为 7 级(核心规约)。
第二次对话(新会话):
用户: 帮我写一个用户查询接口
助手: [自动 search "用户ORM偏好"] → 命中 "项目使用 MyBatis-Plus"
好的,我使用 MyBatis-Plus 的 QueryWrapper 来实现...
第二次,你甚至没有提到 MyBatis-Plus,但 SolonCode 自动联想到了你之前的偏好,直接用 QueryWrapper 来写。这就是记忆的威力。
第三次对话:
用户: 我们团队决定统一用 Solon 框架了
助手: [自动 extract] key=user_framework, fact="团队统一使用 Solon 框架", importance=9
[自动 recall user_orm_preference] → 发现相关偏好
了解。后续我会基于 Solon + MyBatis-Plus 的组合来给你建议。
第三次,SolonCode 不仅记住了新的技术选型(9 级),还主动召回了之前的 ORM 偏好,进行了关联。
多次对话后:
[自动 consolidate]
碎片: user_orm_preference, user_framework, user_code_style...
↓ 合并为
高层认知: user_tech_stack = "团队使用 Solon + MyBatis-Plus 技术栈,偏好注解式开发"
经过多次对话,SolonCode 自动将碎片化的记忆整合为高层认知。从此以后,无论你问什么问题,它都会基于这个高层认知来回答。
整个过程完全自动化。你只需要正常对话,AI 会在背后持续积累和演化对你的理解。
这就是"越用越懂你"的真正含义。
心智记忆解决的是"记住你"的问题,而子代理系统解决的是"帮你干活"的问题。
SolonCode 预置了四个专业子代理,每个都有明确的职责分工和工具权限:
| 子代理 | 职责 | 可用工具 |
|---|---|---|
| explore | 信息探索专家 | 文件分析 + 全网检索(list, read, grep, glob, webfetch, websearch, codesearch) |
| bash | 命令执行专家 | 终端命令执行(list, read, bash) |
| plan | 规划与计划专家 | 任务拆解、执行步骤(list, read, grep, glob, webfetch, websearch, codesearch) |
| general | 通用全能专家 | 所有工具(*) |
主代理(ReActAgent)负责接收指令、分析任务、任务分解、委派调度和结果汇总。它就像一个项目经理,把不同的工作分给最合适的专家去做。
工作流程:
用户指令 → 主代理分析 → 任务分解 → 子代理执行 → 结果汇总 → 响应用户
举个例子:你说"帮我分析一下这个项目的架构,然后运行一下测试"。
主代理会这样调度:
更厉害的是,SolonCode 支持 multitask 并行分发。多个子任务之间互不干扰,高效执行。
比如你说:"帮我同时做三件事——搜索一下 Solon AI 的最新文档,检查一下项目里有没有安全漏洞,把 README 更新一下。"
主代理会并行启动三个子代理:
┌─→ explore: 搜索 Solon AI 文档
主代理 ─┼─→ explore: 检查项目安全漏洞
└─→ general: 更新 README
三个任务同时进行,最后主代理汇总汇报。这种并行能力在处理复杂任务时效率极高。
除了内置子代理,SolonCode 还支持通过自然语言动态创建子代理团队。你可以这样描述:
"帮我设计一个 agent team,至少要有架构师、前端开发、后端开发、测试员四个角色。架构师先做好设计,然后并行开发,之后测试。"
SolonCode 会根据你的描述,动态生成专属的子代理配置,然后按照你定义的协作模式(串行、并行)来推进工作。这就像临时组建了一个项目团队,各司其职。
如果子代理是"人",那技能就是"人手里的工具"。
SolonCode 内置了一系列专业级别的技能,其中几个特别值得关注:
Solon 开发技能
作为 Solon 生态的亲儿子,SolonCode 对 Solon 框架有原生级别的深度支持。它内置了完整的 Solon 开发知识,涵盖核心概念、Web 开发、数据访问、安全认证、AI 开发、云原生、测试等全部场景。你不需要给 SolonCode 解释 Solon 的注解体系,它天生就懂。
Spring → Solon 迁移技能
这个技能专门面向想把项目从 Spring 迁移到 Solon 的开发者。它提供了完整的注解映射、依赖替换指南和迁移策略。直接告诉 SolonCode "帮我把这个 Spring Boot 项目迁移到 Solon",它就能按步骤帮你完成。
全栈开发技能
前后端一把梭的技能包。REST API 设计、数据库操作、前端集成,一站式搞定。
Excel 处理技能
需要处理 Excel 文件?创建、读取、分析、编辑、验证,统统支持。
内置技能不够用?你可以通过 SKILL.md 文件定义自己的专家技能。
技能的本质是一份 Markdown 格式的指导文档,告诉 AI 在特定场景下应该怎么做。你可以把团队的最佳实践、项目特有的开发规范、常用工具的使用方法等都封装成技能。
技能可以放在两个位置:
~/.soloncode/skills/:全局技能,所有项目可用.soloncode/skills/:工作区技能,仅当前项目可用这个功能我特别喜欢。你不需要知道技能的确切名字,只需要用自然语言描述你的需求:
用户: 有没有处理 PDF 的技能?
助手: [自动调用 find-skills] 找到了以下相关技能...
1. pdf-parser - PDF 文件解析与提取
2. pdf-generator - PDF 文档生成
要安装哪个?
find-skills 支持从多个技能仓库中搜索,找到后可以直接安装,整个过程在对话中完成,不需要手动下载或配置。
写代码哪有不后悔的?跟 AI 对话也一样。
SolonCode 提供了 /rewind 命令(v2026.5.9 新增),支持对话回退功能。你可以回到之前的某个状态重新开始。
用户: /rewind
执行后,SolonCode 会显示对话历史的关键节点,你可以选择回退到哪一个点。回退后,之前的状态会被保存为快照,你可以随时通过 /resume 恢复。
这个功能在实际使用中非常实用。比如 AI 帮你改了三处代码,你发现第二处改错了,就可以回退到第二处之前的状态,重新指示 AI 怎么改。
SolonCode 不绑定特定 AI 提供商,这意味着你可以自由选择和切换不同的模型。
子代理可独立配置模型
每个子代理可以单独指定使用哪个模型。比如:
这样既保证了质量,又控制了成本。
运行时动态切换
在对话过程中,你可以随时切换模型。CLI 界面和 Web 界面都支持多模型选择。觉得当前模型回答不够好?切一个试试。
这种灵活性在 AI 模型快速迭代的今天尤其重要。模型在进步,你不需要被绑定在某个模型上。
虽然 CLI 模式已经很好用,但有些时候浏览器界面更加直观。soloncode web 启动 Web 模式后,你会得到一个功能完整的浏览器交互界面。
WebSocket 实时通信
Web 模式基于 WebSocket 实现实时通信,AI 的回答逐字流式输出,体验和 CLI 一样丝滑。
语音输入
Web 模式支持语音输入,而且交互设计是微信风格——按住说话,松开结束。这个设计很自然,不需要额外学习成本。在双手不方便打字的场景下(比如一边看文档一边提问),语音输入非常方便。
附件上传
附件上传功能分为两种模式:
微信通道支持
通过 Web 模式的微信通道命令,你可以把 SolonCode 接入微信,直接在微信里和 AI 对话。这对于习惯用微信沟通的团队来说非常方便。
此外还支持钉钉、飞书等企业通讯工具的绑定。
这是 SolonCode 的一个很有趣的功能——心跳机制。
你可以通过 /loop 命令或"干活"指令触发心跳模式。在这个模式下,SolonCode 会自主驱动任务执行,自动找事做:
甚至支持 cron 表达式:
/loop cron:'0 */5 * * * ?' check status
这条命令会让 SolonCode 每 5 分钟自动检查一次项目状态。
心跳机制把 AI 从"被动等指令"变成了"主动干活"。你开会去了,AI 在帮你整理文档;你下班了,AI 在帮你跑测试。这种自主性是传统编程工具完全不具备的。
说了这么多功能,来分享几个我实际使用的场景,展示心智记忆如何累积发挥作用。
我在三月份开始用 SolonCode 搭建一个新的微服务项目。第一次对话中,我告诉它:
这些信息全部被提取为 7-9 级的记忆。
到六月份的时候,我已经和 SolonCode 进行了几十次对话。每次对话它都会在记忆库中累积新的认知——哪些表是核心表、哪些接口是高频使用的、哪些地方有性能瓶颈。
有一天,一个新同事问我"这个用户的权限校验是在哪一层做的"。我想不起来具体代码位置了,就问 SolonCode。它直接给出了精确的答案,甚至附带了当初为什么这样设计的理由——因为三月份某次对话中,我解释过这个架构决策,它记住了。
这就是心智记忆的累积效应。它不像传统的上下文窗口,对话结束就消失了。它是真正的长期记忆。
有一次,我们把项目的缓存方案从 Redis 迁移到 Solon Cloud 的 Water 方案。我在对话中提到这个变更后:
这种"记住过去 + 关联现在 + 预判影响"的能力,已经不是简单的记忆了,而是真正的认知。
有一次我需要做一个比较复杂的任务:分析一个开源项目的架构,生成一份 PPT 报告,同时把项目跑起来做功能验证。
我对 SolonCode 说:"分析一下这个项目的架构,生成一份架构分析 PPT,然后把项目跑起来验证核心功能。"
SolonCode 的主代理迅速做了任务拆解:
┌─→ explore 子代理: 分析项目结构、核心模块、依赖关系
├─→ plan 子代理: 规划 PPT 的大纲和内容结构
└─→ bash 子代理: 准备运行环境,安装依赖
explore 子代理分析完后,把结果交给 plan 子代理。plan 子代理基于分析结果生成 PPT 大纲,再交给 general 子代理填充内容并生成最终文件。同时 bash 子代理在另一个线程里默默地把项目跑起来了。
整个过程大约 5 分钟,如果手动做至少需要一个小时。而且因为心智记忆的存在,SolonCode 已经知道我对 PPT 的风格偏好(简洁、技术导向),生成的报告格式直接就是我能用的。
有一次我在手机上通过微信通道和 SolonCode 对话。开会的时候不方便打字,就直接按住语音说:"帮我看看今天 CI 跑失败了没有,如果失败了帮我看下日志。"
SolonCode 收到语音后自动转文字,然后调用 bash 子代理查看 CI 状态。发现确实失败了,又自动分析了日志,找到失败原因,然后把修复建议通过微信发回来。
整个过程我只需要说一句话。
经过长时间使用,我发现 SolonCode 的回答质量明显提升了。有一天我好奇地查看了记忆文件,发现它已经积累了大量的高层认知:
这些都是通过 consolidate 操作,从数十次对话的碎片记忆中整合出来的。我从来没有一次性告诉过它这些总结性的结论,它是自己"悟"出来的。
这种体验很奇妙。就像一个新同事慢慢变成了老搭档,不需要你反复交代,他就知道怎么做。
看到这里,如果你也想体验 SolonCode CLI 的心智记忆功能,以下是安装步骤:
# Mac / Linux:
curl -fsSL https://solon.noear.org/soloncode/setup.sh | bash
# Windows (PowerShell):
irm https://solon.noear.org/soloncode/setup.ps1 | iex
安装完成后,编辑配置文件 ~/soloncode/config.yml,主要配置 models 部分(即你要使用的 AI 模型和 API 地址)。
# 在任意目录(即你的工作区)下启动 CLI 模式
soloncode
# 启动 Web 模式(默认端口 4808)
soloncode web
# 启动 Web 模式(指定端口)
soloncode web 1212
启动后,试试这样对话:
User
> 你好。我这个项目用的是 Solon 框架和 MyBatis-Plus,数据库是 MySQL 8.0。
我们团队喜欢用驼峰命名,代码要有充分的注释。
> (第一次对话结束,输入 /exit 退出)
> (重新启动 soloncode)
User
> 帮我写一个用户管理的增删改查接口
你会发现,第二次对话中,SolonCode 已经自动"想起"了你的技术栈和编码偏好,生成的代码完全符合你的风格。
回到文章开头那个痛点——"每次对话都要重新交代背景"。
SolonCode 的心智记忆功能给出了一个漂亮的解决方案。它不是简单的"记住你说的话",而是一个完整的认知系统:自动提取、分级存储、语义搜索、认知整合、主动遗忘。这些能力组合在一起,让 AI 编程助手真正实现了"越用越懂你"。
再加上子代理系统的分工协作、技能系统的专业工具箱、/rewind 的后悔药、多模型的灵活切换、Web 模式的丰富交互、心跳机制的自主驱动——SolonCode 已经不仅仅是一个代码补全工具,而是一个真正的编程搭档。
它记住你的习惯,理解你的项目,配合你的节奏。用得越久,默契越深。
这大概就是 AI 编程助手该有的样子吧。
相关链接:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。