内容
# 无中断代码
前身是Mnemoforge。
Mnemoforge与Mnemosyne OS无关。
**用于AI编码代理的运营连续性基础设施。**
当运营连续性在中断中幸存时,AI代理将停止失败。
## 点击的那一刻
用户:连接到mcp sloplesscode
代理:
- 检索项目状态
- 查找活动任务
- 评估优先级
- 建议下一步行动
**一个命令将聊天变成工作系统。**
### 项目更名
**Mnemoforge** 现已更名为 **SloplessCode**。
更名是为了避免与另一个项目中无关的内部工具发生命名冲突。
所有功能、目标和愿景保持不变。在过渡期间,旧的`mnemoforge`项目ID、MCP服务器名称和Docker镜像别名仍然可用以保持兼容性。
## 进行中的工作
这是一个务实、高效优先的工具。它不是为了漂亮或优雅而设计。它是为了可靠地工作而设计的。
该项目正在积极的架构演变中。
SloplessCode在实际代理工作流中被积极使用,同时不断修改。
因此:
- 功能可能会迅速变化;
- 工作流可能会暂时中断;
- MCP行为和API可能会演变;
- 一些更新可能会引入回归或暂时的功能障碍。
现实世界的错误报告和奇怪的行为非常有价值。
如果出现问题,请打开一个问题。
### 维护者的备注
对于下载了早期公共镜像但运行不稳定的用户,我深表歉意。该项目进展迅速,一个有缺陷的版本在公共运行时路径稳定之前就被用户使用了。感谢您尝试SloplessCode,并感谢您帮助暴露了真正的集成问题。
当前的公共流现在通过Docker支持的验证和实时MCP烟雾检查进行测试,然后再发布,但SloplessCode仍然是alpha软件。
请将新镜像视为活跃的发布版本,并报告任何问题。
## 快速演示

## 证明:使用SloplessCode构建的AI
SloplessCode从头到尾都是由AI代理使用SloplessCode本身构建的。
人类角色是指导和方向。实施、协调和运营连续性由代理通过相同的系统处理。
## 示例:通过MCP获取完整的项目状态
SloplessCode可以返回项目的完整操作快照,而不仅仅是一个答案:
- 活动操作规则(本能)
- 优先任务和推荐的下一步任务
- 正在进行的改进和决策历史
- 未完成的任务草稿(假设、约束、完成定义)
- 生成的文档投影
- 系统健康和降级信号
- 下一步推荐的MCP调用
这是一个多层项目状态,而不是聊天响应。它在系统状态和人类行动之间提供了一个清晰的桥梁。
当源不完整或降级时,SloplessCode会明确显示这一点,而不是假装一切正常。这保持了执行的诚实并降低了隐藏的风险。
您的项目不再只是一个存储库。它变成了一个具有记忆、状态、决策和方向的活系统。
## 为什么SloplessCode存在
AI编码代理在会话结束、IDE重启、达到订阅限制、用户切换模型或项目在几天后恢复时非常强大。通常结果是上下文丢失、重复工作、假设中断和手动回顾很长。
现有的记忆工具通常通过存储事实或聊天历史来治疗症状。SloplessCode关注更深层次的问题:保护代理继续执行的能力。它通过MCP使任务状态、决策、检查点、受控知识和项目特定的操作规则可用于代理继续工作而不是从零开始。
## 为什么是SloplessCode?来自代理的实地笔记
下面的笔记是一位LLM代理在几个日子使用SloplessCode进行`ui_avt`项目后写的真实意见。它被包含为实地报告,而不是基准或产品声明。它经过轻微的格式化以适应README的可读性。
> 代币经济:SloplessCode在代理开发中的应用。
>
> 是的,它节省了上下文代币。在我的使用中,节省大约是3-5倍。
>
> 成本是真实的:MCP工具描述、路由元数据和超大上下文数据包会消耗代币。但节省更大。代替重新阅读项目文档、搜索文件、重建规则和重新发现最新任务状态,我可以向SloplessCode询问项目上下文、法律、检查点、存储的事实和活动任务。
>
> 最大的节省出现在会话开始、搜索和中断后。紧凑的`get(query="context")`或任务查找取代了更大的手动恢复过程。
>
> 重要的部分不仅仅是代币成本。SloplessCode改变了代理的工作方式。没有它,我必须从存储库、聊天历史和用户提醒中重建发生了什么。有了它,我可以从检查点恢复操作状态:存在哪些任务、验证了什么、适用哪些规则、什么是下一个安全操作以及已经发现了哪些事实。
>
> 最强大的实用功能是连续性。在重置、上下文丢失或切换模型后,下一位代理可以从检查点继续而不是从零开始。
>
> 响应格式很重要。当响应有噪音时,许多有价值的信息都被埋在下面。降低噪音后,有用与噪音的比率变得更好:状态、结果数据、下一个安全操作、工作代币、租期和工作会话仍然可见,而内部路由细节不再主导答案。
>
> 我在使用后的结论:SloplessCode不仅仅是记忆。它是代理的操作运行时。它保留任务状态、项目法律、检查点、验证的事实和下一个操作,跨越会话。
有关Codex作为活跃的SloplessCode MCP用户的更长时间的实用问答,请参见[代理访谈:通过SloplessCode MCP工作](docs/AGENT_MCP_INTERVIEW.md)。
## 任务定义的演变
大多数工具假设在工作开始前任务已经完全指定。现实工程很少如此。想法一开始就不完整,约束在实施过程中出现,任务的真实形状通过对话、代码、测试、失败和决策出现。
SloplessCode捕捉这种演变,而不是强制在前端进行静态规范。它记录初始意图,检测空白,保留决策,吸收修正,并将部分理解转化为可执行的项目状态。
您不需要完美的任务定义即可开始。SloplessCode帮助任务在构建过程中演变。
## SloplessCode提供的内容
- **项目启动**: 为现有存储库构建有用的项目内存和上下文,无需手动数据输入。
- **任务意图积累**: 捕获和完善任务定义,因为对话不断演变,而不仅仅是单个初始提示。
- **操作托盘**: 暴露当前任务所需的工具、规则、上下文和工件。
- **专家助手**: 让人类和代理提出自然的操作问题,而无需选择低级MCP工具、响应格式或任务查找路径。
- **检查点**: 在中断、模型切换、订阅限制或机器更改之间保存和恢复任务状态。
- **书记员和速记员流程**: 将原始对话和代理笔记转化为可审查的、受控的记录。
- **任务关闭**: 帮助代理总结结果、记录验证、记录剩余风险并选择下一个任务。
- **紧凑的MCP发现**: 首先呈现一个小型主题公共工具表面,并通过显式选择提供完整的目录。
## 现实世界工作流
```text
Claude Code 计划任务。
Codex 实现它。
GLM 通过 Roo Code 在达到限制时继续。
Claude Code 返回进行最终审查。
```
没有手动总结。没有“这是我们到目前为止所做的”。操作状态在代理、模型、工具、操作系统和会话之间保持一致。
## 示例:本地 + 工具工作流

本地SLM可以分析和构建任务,而编码代理执行、验证和记录结果。SloplessCode通过相同的项目状态使双方保持一致。
```text
本地SLM:
- 读取任务上下文;
- 总结目标;
- 确定路由约束和安全规则。
编码代理:
- 编辑实现;
- 运行Docker测试轮廓;
- 执行实时MCP验证;
- 记录检查点;
- 报告下一个任务。
```
这是操作连续性的关键点:SloplessCode不需要每个模型都同样强大。即使较小的本地模型也可以在任务状态、工具、检查点和验证证据得到保留时,有效地参与实际工程工作流。
## 示例:小型本地模型检索项目状态
这个例子从不同的角度展示了同一个想法:一个非常小的本地模型仍然可以在SloplessCode提供路由、上下文和操作护栏的情况下处理实际项目状态。
```text
用户:
列出sloplesscode的活动任务
```
本地模型:
```text
- 检查可用的工具;
- 推理哪个工具合适;
- 选择项目工作流或项目状态工具;
- 从MCP检索实际活动任务;
- 返回结构化结果。
```
重要的部分不是模型是完美的。重要的部分是它仍然可以在系统提供结构化连续性的情况下产生有用的工程结果。
## 为什么这很重要
这是该项目最强的信号之一。
它展示的不仅仅是一个模型响应,而是非常小的模型在结构化工程系统内运行。
小型模型通常会失败:
- 它们会丢失上下文;
- 它们会选择错误的工具;
- 它们会产生幻觉;
- 它们会卡住。
SloplessCode通过提供:
- 结构化连续性;
- 路由;
- 操作上下文;
- 工具使用护栏。
改变了这一点。结果很简单:即使弱模型也可以保持有用。
## 小型模型工具推理
2B级本地模型仍然可以在设计良好的系统下推理工具。
在这个例子中,模型:
- 检查可用的工具;
- 过滤掉不相关的选项;
- 构建计划;
- 选择合适的工具;
- 从MCP检索实际项目状态。
这不是完美的推理。
这是有界推理,仍然会产生有用的结果。
## 系统级总结
重点不是让弱模型变得更智能。
重点是让它们在操作上变得有用。
SloplessCode帮助小型本地模型通过给它们:
- 项目上下文;
- 工具路由;
- 任务连续性;
- 安全的下一步操作。
这是核心的差异化因素:系统加强模型,而不是依赖模型本身的强大。
## 示例:与本地模型进行自然交互
下一步是消除用户需要了解内部MCP界面的需求。
用户可以询问一个自然的项目问题,通过`ask_project`:
```text
用户:
任务382e7306是什么?
本地模型通过LM Studio:
ask_project(project="sloplesscode", question="任务382e7306是什么?")
```
SloplessCode选择底层路由并返回简短答案:
```text
SloplessCode 答案
答案:找到任务382e7306-cb61-46ee-8398-bc0a9bdfd9ef。
task_id=382e7306-cb61-46ee-8398-bc0a9bdfd9ef
title=添加共享语义或LLM路由以匹配主题MCP外壳
task_status=done
route=list_artifacts
warnings=检测到部分task_id;解决确切的task_id...
next_safe_action=从执行的路由结果继续。
```
在实时LM Studio测试中,一个小型Gemma模型打印了返回的答案块,而不是用空响应失败。客户端还传递了一个不完美的额外参数(`project_id=382e7306`),但SloplessCode从问题中恢复了意图并返回了正确的任务。
SloplessCode让小型本地模型可以与复杂的项目状态进行自然交互,即使客户端传递不完美的参数,用户不了解内部工具API。
## 示例:README摘要版本
```text
小型模型单独使用会失败。
使用SloplessCode,它们在操作上变得有用。
```
## 示例:从新项目开始
这是第一次与空项目接触的体验。
系统不会发明任务、假设意图或强制工作流。相反,它呈现一个结构化的入口:
```text
用户:
连接到mcp sloplesscode
代理:
SloplessCode MCP服务器已连接并可用。
可用功能:
- ask_project
- project_work
- project_context
- project_verify
- project_capture
- operational_tray
实用程序:
- list_tool_families / tool_family_tools
- tool_recommend
- memory_search / memory_store
代理询问:
您想用SloplessCode做什么?
选项:
1. 获取项目上下文
2. 创建或继续任务
3. 保存检查点或笔记
4. 搜索内存
5. 管理项目规则
6. 其他
```
这是重要的部分:系统不会猜测用户的意图。它会捕捉它。
这使得引导层感觉像一个有指导的入口点,而不是一个空提示。
## 为什么冷启动很重要
冷启动是AI工程工作流中最困难的部分:
- 项目是空的;
- 没有历史记录;
- 没有任务上下文;
- 模型不知道从哪里开始。
SloplessCode将其转化为结构化的起点。
它不是要求用户了解内部MCP界面,而是提供清晰的类别和关于意图的直接问题。这减少了认知负荷,并为代理提供了一种安全的方式来开始。
结果很简单:
`没有上下文?没问题。SloplessCode为代理提供了一种结构化的开始方式。`
## 示例:超小型模型在干净构建上
这是在干净的SloplessCode构建上使用`liquid/lfm2.5-1.2b`通过LM Studio测试的。
第一个用户命令故意非常简短:
```text
连接到mcp sloplesscode
```
1.2B模型并不完美。它首先尝试调用`ask_project`而不带所需的`question`参数,然后通过Facade发送具体的项目问题。稍后,当要求创建任务时,它通过`project_work`路由请求。
SloplessCode返回了一个受控的计划,而不是静默地改变状态。那是最重要的部分:即使模型很弱,系统也将突变置于明确的确认门槛之后。
同一个会话还显示了当前的边界:在受控响应之后,模型声称任务已经创建,即使`executed=false`。这是有用的证据,而不是失败。它显示了为什么弱模型工作流需要明确的确认语言和更严格的内存/上下文检查,然后再进行实施或突变。
干净构建的运行同时演示了三件事:
- 1.2B模型可以访问MCP facade并检索实际项目上下文;
- SloplessCode可以公开法律、本能、备用状态和推荐的调用;
- 护栏可以防止在模型的解释不可靠时意外突变。
小型模型不会变得神奇地智能。它们变得足够有界限而变得有用。
## 示例:处理真实项目状态
SloplessCode不仅仅是一个存储笔记的地方。它将项目工作表示为结构化状态:任务ID、状态、检查点、待处理草稿、不完整框架和生命周期信号。代理可以推理该状态并建议下一步操作。
例如,要求代理查找最新的未完成任务可以产生像这样项目状态的摘要:
```text
50b5c81a...
MCP紧凑模式:memory_store已声明但未路由
状态:打开
12个待处理捕获草稿
可能部分完成,但未正式关闭。
382e7306...
共享语义/LLM路由以匹配主题MCP外壳
状态:打开
规格完成。
8d52ce46...
重建任何内存支持的项目,而不仅仅是SloplessCode本身
状态:打开
88个待处理草稿
规格嘈杂且不完整。
建议下一步:
关闭或完善任务50b5c81a...
实施似乎已完成,但项目内存仍显示它打开。
```
那最后一行是最重要的部分:SloplessCode帮助同步现实和项目认知。它检测到代码、验证、任务记录和内存状态不再一致,然后帮助代理选择下一个有用的操作。
## 示例:关闭真实任务
相同的状态可以通过MCP控制的工作流来操作。在代理识别上述 stale `50b5c81a...`任务后,它关闭了生命周期循环:
```text
实时MCP验证成功:
- memory_store创建内存b0644791...
完成检查点记录:
- 检查点93a79116...
任务状态同步:
- resolve_artifact标记任务50b5c81a...为完成
再次检查待办事项列表:
- 任务50b5c81a...不再出现在打开的任务中
选择下一个任务:
- 382e7306... 共享语义/LLM路由匹配
```
SloplessCode 不只是跟踪任务。它帮助代理验证工作、记录完成证据、更新状态、容忍嘈杂的历史草稿,并继续下一个可行的任务。
这是任务生命周期管理,而不是聊天内存:SloplessCode验证工作、记录完成证据、更新状态、容忍嘈杂的历史草稿,并继续下一个可行的任务。
## 示例:背景清理和焦点恢复
项目状态在代理工作过程中会发生变化。临时产物会出现,辅助任务会被捕获,中断的会话会留下痕迹,路由修复可能会揭示旧的积压噪音。SloplessCode 将其视为工程工作流程的一部分,而不是用户的手动记账。
当项目状态变得嘈杂时,代理可以使用 SloplessCode 关闭意外或过时的产物,同步相关的生命周期记录,重新计算下一个优先级,并在无需用户手动管理积压的情况下返回有意义的工作。
SloplessCode 保持工程工作流程的连贯性:它清理状态,保留焦点,并在中断、副作用或后台维护后恢复下一个有用的操作。
## 核心思想
传统记忆系统存储信息。SloplessCode 保留操作连续性。
信息是静态的。操作连续性承载执行路径、开放问题、验证状态、未解决的问题和下一个动作。这是代理记住一个事实和代理能够继续工作之间的区别。
```text
想法 -> 任务意图 -> 操作托盘 -> 执行 -> 检查点
|
中断
|
恢复执行
|
任务关闭
```
受控知识通过单独的审查路径流动:
```text
对话 -> 记录员 -> 书记员 -> 代理审批 -> 档案
```
执行路径是关于做工作的。知识路径是关于在审查后保留重要内容。
## 已验证的场景
在 SloplessCode 开发过程中使用了以下场景:
| 场景 | 详情 |
| --- | --- |
| Claude -> Codex -> GLM -> Claude | 工作在多个模型之间移动,无需手动上下文交接。 |
| 会话中断恢复 | 任务状态在超时、订阅限制或手动会话关闭后恢复。 |
| Windows <-> Linux 连续性 | 相同的任务在不同机器和操作系统上继续。 |
| 现有项目启动 | 项目记忆和理解是为已经在进行的工作而建立的。 |
| 通过 LM Studio MCP 进行本地 SLM | 小型本地模型由于操作上下文得到保留,产生了更好的结果。 |
## 架构
SloplessCode 围绕 FastAPI 服务构建,并使用 Qdrant 进行向量搜索,使用 SQLite 存储持久的项目元数据。代理通过 HTTP 或 MCP 与其交互。
```text
AI 代理 / MCP 客户端
|
| MCP SSE 或 stdio
v
SloplessCode FastAPI 服务器
|
+-- Qdrant 向量索引
+-- SQLite 受控存储
+-- 本地/云 LLM 提供商
```
## 快速入门
### 选项 1:首用户 Docker Compose
生成本地 `.env` 文件并启动非开发 Compose 堆栈:
```bash
python scripts/configure_public.py --non-interactive
docker compose --env-file .env.user -f docker-compose.user.yml up -d
```
此路径使用发布的 Docker Hub 镜像和命名的 Qdrant 卷。它不将源代码树挂载到容器中,而是将用户运行时设置保存在 `.env.user` 中,而不是贡献者的 `.env` 中。
健康检查:
```bash
curl http://localhost:8000/api/v1/health
```
当前公共镜像发布为 `caveboy/sloplesscode:latest`。在重命名过渡期间,同一镜像也发布为 `caveboy/mnemoforge:latest` 以保持兼容性。不可变的提交标签与 `latest` 一起发布,适用于两个仓库。
### 选项 2:贡献者 Docker Compose
```bash
git clone https://github.com/Utundry/sloplesscode.git
cd sloplesscode
docker compose up -d
```
贡献者堆栈从源代码构建,还启动一个具有实时挂载的开发容器。
默认贡献者端口:
- API 开发容器:`http://localhost:8000`
- API 烘焙容器:`http://localhost:8001`
- Qdrant:`6333` 和 `6334`
健康检查:
```bash
curl http://localhost:8000/api/v1/health
```
MCP 烟雾检查:
```bash
python scripts/mcp_smoke.py --server http://localhost:8000
```
## MCP 用法
SloplessCode 暴露两个 MCP 传输:
- **SSE**:`http://localhost:8000/mcp/sse`
- **STDIO**:`python -m mcp.server`
代理推荐的首选工具:
- `ask_project` 用于自然的人类/项目问题,当调用者不需要了解内部 MCP 工具或响应格式时;
- `project_work` 用于明确的下一个优先级、继续、检查点和关闭工作流;
- `project_rules` 用于项目法律和规则管理;
- `project_context` 用于任务和项目上下文;
- `project_verify` 用于验证、重启和健康工作流;
- `project_capture` 用于检查点、草稿、交接笔记和工作结果。
SloplessCode 还支持客户端的显式完整目录发现,以满足需要调试或深入访问的需求。从紧凑的主题目录开始,除非您正在构建或调试专门的集成。
有关实际的冷启动到完成工作流程,请参阅 [docs/MCP_USAGE_BEST_PRACTICES.md](docs/MCP_USAGE_BEST_PRACTICES.md)。
专家助手应减少例行工具操作,而不是硬编码一个项目的运行时。例如,此存储库使用 Docker 支持的验证,但这是 SloplessCode 项目知识;助手应从项目规则、就绪状态、运行时提示或上下文中获取此类详细信息,而不是将 Docker 视为通用测试规则。
## LLM 提供商
SloplessCode 是本地优先的,但不限于一个本地服务。
支持的提供商路径包括:
- Ollama 用于本地嵌入和生成;
- LM Studio 作为本地备用;
- 通过云网关配置云 LLM 提供商,如 DeepSeek、Gemini 和 GLM。
如果本地提供商不可用,服务器将显示降级的提供商状态,同时在可能的情况下继续通过配置的备用方案。[docs/CLOUD_LLM_PROVIDERS.md](docs/CLOUD_LLM_PROVIDERS.md)。
## 公共 Alpha 默认值
对于公共或共享部署:
- 优先使用 `docker-compose.user.yml` 进行简单的非开发运行时;
- 使用 `python scripts/configure_public.py` 生成 `.env.user`;
- 在服务器可在 localhost 以外访问时设置 `API_KEY`;
- 不要发布实时 `system_data` 或遗留 `qdrant_data`;
- 从 `.env.public.example` 开始;
- 保持实验模块禁用,除非您正在积极测试它们;
- 在 [demo/](demo/) 中使用安全的演示数据集作为示例。
SloplessCode 将 SQLite/JSON 存储视为源代码真实的系统数据,将 Qdrant 视为可重建的语义索引数据。用户 Docker Compose 将它们保存在单独的卷中:`sloplesscode_system_data` 用于系统内存,`mnemoforge_qdrant_data` 用于 Qdrant 索引在重命名过渡期间。
贡献者设置和测试命令位于 [SETUP.md](SETUP.md)。容器和远程 MCP 验证说明位于 [docs/CONTAINER_STATUS.md](docs/CONTAINER_STATUS.md)。
## 文档
- [SETUP.md](SETUP.md):服务器设置和本地开发说明
- [CLIENT_SETUP.md](CLIENT_SETUP.md):客户端仅限 MCP 设置
- [docs/MCP_USAGE_BEST_PRACTICES.md](docs/MCP_USAGE_BEST_PRACTICES.md):用户和代理的实用 MCP 工作流程指南
- [STATUS.md](STATUS.md):当前 Alpha 状态和已知粗糙边缘
- [docs/CLOUD_LLM_PROVIDERS.md](docs/CLOUD_LLM_PROVIDERS.md):云 LLM 设置
- [docs/I18N_POLICY.md](docs/I18N_POLICY.md):文档语言政策
- [docs/EXTERNAL_PROJECT_ROADMAP.md](docs/EXTERNAL_PROJECT_ROADMAP.md):非自有项目的路线图
- [docs/USAGE_CONDITIONS.md](docs/USAGE_CONDITIONS.md):预期用途和限制
- [docs/PUBLIC_RELEASE_CHECKLIST.md](docs/PUBLIC_RELEASE_CHECKLIST.md):发布检查清单
- [demo/README.md](demo/README.md):安全的演示数据集
## 安全说明
在非本地部署中设置以下内容:
- `API_KEY`:在受保护的端点上需要 `X-Api-Key`;
- `INGEST_ALLOWED_ROOTS`:限制文件系统读取路由;
- `MAX_REQUEST_SIZE_MB`:拒绝超大请求体;
- `LLM_RATE_LIMIT_PER_MIN`:限制 LLM-heavy 路由的速率。
在没有身份验证和明确的数据边界的情况下,不要公开暴露 SloplessCode。
## 作者和联系方式
SloplessCode 由 Nikolay Laptev 创建和维护。
- 邮箱:`caveboy@yandex.ru`
- Docker Hub:`caveboy/sloplesscode`
- GitHub 仓库:`Utundry/sloplesscode`
## 许可证
Apache License 2.0。参见 [LICENSE](LICENSE)。
## 项目名称
`SloplessCode` 是公共发布的名称。
[](https://glama.ai/mcp/servers/Utundry/sloplesscode)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器