Gliding Horse(流马)项目深度分析报告--来自智谱Agent模式

gliding_horse(流马)项目深度分析报告(最终版)

分析日期:2026-06-26
仓库地址:https://github.com/doiito/gliding_horse
最新提交:50e1acb(2026-06-26 18:30:00 "update system prompt")
分析方法:git clone 全量源码 + 逐模块代码审阅 + 作者博客交叉比对 + 编译验证


一、项目概览

1.1 项目定位

gliding_horse(流马)是一个用 Rust 编写的"Agent OS"(智能体操作系统),作者将其定位为"以 CPU 架构为隐喻的智能体编排系统"。项目试图将操作系统的设计理念(缓存层次、进程调度、内存一致性、指令流水线)引入大语言模型(LLM)智能体的编排中,解决传统 Agent 框架在长程任务中的上下文膨胀、记忆丢失、工具滥用等问题。

项目包含三个应用层:

  • gliding_code:Rust CLI/TUI 工具,面向个人开发者的编程助手
  • software_engineering_single:单机版软件工程 Agent(Go 后端 + React 前端)
  • software_engineering_team:分布式团队协作版(Go center + Rust edge daemon + Temporal 工作流引擎)

1.2 代码规模统计

维度 数量
Rust 源码(不含 target) ~32,000 行
Go 源码 ~10,800 行
TypeScript/TSX 前端 ~12,000 行
Proto 定义 ~500 行
Markdown 文档 ~4,000+ 行
测试函数(#[test] + #[tokio::test] 1,098 个
Git 提交数 94 次
开发周期 2026-05-26 ~ 2026-06-26(约 1 个月)

1.3 贡献者情况

贡献者 提交数 角色
sshb_online ~80 主要代码实现者
doiito ~11 博客作者/架构设计

二、编译验证结果

2.1 编译环境

组件 版本 说明
Rust 1.96.0 (stable) rustup 安装
protoc 25.1 手动下载安装(gRPC 代码生成)
libclang 18.1.1 pip 安装(oxrocksdb-sys bindgen 依赖)

2.2 编译验证过程与结论

最新代码(commit 50e1acb)相比之前版本的重大改进:

问题 之前版本 最新版本 状态
PR-res/open-ontologies 依赖缺失 阻断编译 内联为 crates/ontologies(1,646 行) ✅ 已解决
qdrant-client 外部服务依赖 需要运行 Qdrant 服务 替换为自研 hyperspace-engine(嵌入式 HNSW) ✅ 已解决
vector_store.rs 依赖 Qdrant 709 行代码依赖外部服务 删除,替换为 hyperspace_store.rs(649 行)+ embedding_service.rs(292 行) ✅ 已解决
open-ontologies feature 门控 可选 feature,依赖缺失 ontology feature 默认启用,本地 crate ✅ 已解决
protoc 系统依赖 需要手动安装 ⚠️ 常见系统依赖
libclang 系统依赖 需要手动安装 ⚠️ 常见系统依赖

编译验证结论:

  1. 之前版本的阻断性问题(缺失依赖)已全部解决。最新代码的依赖结构完全自包含,不再需要外部目录或外部服务。

  2. 完整 cargo check 未能完成。原因是 oxrocksdb-sys(Oxigraph 的 RocksDB C++ 后端)编译需要 30+ 分钟,超出了单次工具调用的超时限制。这是 Rust 生态中使用 Oxigraph 的常见情况,并非项目本身的问题。

  3. 剩余编译前提为标准系统依赖(protoc、libclang),在正常 Linux 开发环境中通常已预装或可通过包管理器一键安装。

  4. 代码中 qdrant 引用仅存于注释hyperspace_store.rs 中的向后兼容说明),PR-res 引用仅存于设计文档注释中,均不影响编译。

2.3 依赖结构变化

之前版本:                          最新版本:
┌─────────────────────┐           ┌─────────────────────┐
│ glidinghorse (main)  │           │ glidinghorse (main)  │
├─────────────────────┤           ├─────────────────────┤
│ qdrant-client (外部) │  → 删除   │ hyperspace-engine    │ ← 本地 crate
│ PR-res/open-ontolog  │  → 删除   │ ontologies           │ ← 本地 crate (新增)
│ vector_store.rs      │  → 删除   │ hyperspace_store.rs  │ ← 新模块
│                      │           │ embedding_service.rs │ ← 新模块
└─────────────────────┘           └─────────────────────┘

三、架构设计与实现分析

3.1 核心架构:PDCA 编排引擎

src/core/sa/mod.rs(Supervisor Agent,3,144 行)中实现了完整的四阶段编排:

  • 7 种任务复杂度级别:Instant / Simple / Standard / Complex / Exploratory / Emergency / Recursive
  • 4 种智能体角色:PA(Plan)/ DA(Do)/ CA(Check)/ AA(Act)
  • 递归 PDCA:Recursive 级别支持 DA 内部微观递归子循环
  • DAG 工作流:支持 JSON-LD DAG 定义(条件分支、重试、并行)

3.2 五层记忆架构

层级 实现 代码行数 说明
L0 l0_store.rs 1,590 redb 持久化,MESI 缓存一致性
L1 l1_session.rs 842 上下文窗口管理,cosine 相似度淘汰
L2 l2_blackboard.rs 2,138 Oxigraph 内存 RDF,任务树,权限矩阵
L3 l3_projection.rs 1,259 SPARQL CONSTRUCT + JSON-LD Frame 投影
向量 hyperspace_store.rs 649 新增:HNSW 嵌入式向量搜索(替换 Qdrant)

3.3 HyperspaceEngine(自研向量引擎)

最新版本的重大改进:用自研的嵌入式向量引擎替换了对外部 Qdrant 服务的依赖。

组件 代码行数 功能
hnsw.rs 671 HNSW 近似最近邻搜索(Malkov & Yashunin 算法)
engine.rs 847 统一编排层(open → insert → search → checkpoint)
wal.rs 535 CRC32 校验的 WAL,3 种同步模式
metric.rs 356 运行时可切换度量(Cosine/Poincaré/Lorentz/Euclidean)
tangent.rs 207 Poincaré 球面切空间剪枝(Fréchet 均值)
jsonld_meta.rs 403 JSON-LD 元数据 + RoaringBitmap 倒排索引
snapshot.rs 196 bincode 序列化快照检查点

3.4 Ontologies Crate(本体论引擎)

最新版本新增:将之前缺失的 open-ontologies 代码内联为本地 crate。

模块 代码行数 功能
shacl.rs 467 SHACL 形状约束验证
reason.rs 531 OWL 推理引擎(RDFS/RL/EL 等配置文件)
graph.rs 441 SharedGraphStore(Arc,无 Mutex)
ontology.rs 172 Turtle 验证、lint、diff
error.rs 30 错误类型

四、六大子系统完整度评估

4.1 感知系统(Perception)

项目 数据
代码行数 1,732 行
测试数 ~20
完整度 ~95%

核心实现ProactiveEngine(1,147 行)实现了 10 种触发类型(TaskStart/PlanCompleted/ProgressAnomaly/CheckCompleted/TaskEnd/CycleTimeout/AgentBlocked/ResourceConflict/QualityDegradation/UserFeedback),含异常去重窗口、5W2H 约束检查(deadline/budget)、ISO8601 duration 解析、缓存淘汰(LRU+TTL)。

4.2 Batch 后台系统

项目 数据
代码行数 4,296 行
测试数 27
完整度 ~90%

核心实现:完整流水线 SlidingWindow → TriggerSystem → ExtractorPipeline → OutputValidator → KnowledgePersister,含 8 个维护处理器(skill_merge/fragment_refine/entity_resolution/failure_mining/skill_health/memory_compact/link_recommend/template_analyze)和 12 个 prompt 模板。支持 4 种窗口类型(MessageCount/TimeWindow/Hybrid/Manual)和 5 种触发器(WindowFull/CronSchedule/IntentShift/MessageThreshold/CustomEvent)。

4.3 工作区文件监控

项目 数据
代码行数 3,338 行
测试数 51
完整度 ~95%

核心实现:5 状态文件状态机(Undiscovered→Discovered→ReadFresh→ReadStale→WrittenUnread),4 种读取模式(Full/Diff/ChangedOnly/ForceRefresh),LRU+redb 版本存储,快照回滚,unified diff(基于 similar crate),.gitignore 支持,notify 原生文件监听。

4.4 Hook 系统

项目 数据
代码行数 1,920 行
测试数 12
完整度 ~90%

核心实现:20 个 HookPoint 覆盖全生命周期(AgentInit→AgentEnd/TaskStart→TaskEnd/LlmRequest→LlmResponse/MemoryWrite→MemoryRead/SkillBefore→SkillAfter/BlackboardWrite→BlackboardRead/PhaseStart→PhaseEnd/CycleStart→CycleEnd/McpToolCall→McpToolResult),含 3 个内置 Hook(RateLimitHook/MetricsHook/HumanApprovalHook),支持优先级排序和 Abort 控制。人工审批含超时机制和 Channel 通知器。

4.5 MCP 集成

项目 数据
代码行数 1,934 行
测试数 15
完整度 ~90%

核心实现:Server+Client 双模实现。Server 端实现 JSON-RPC 2.0 协议(tools/list, tools/call, resources/list, prompts/list)。Client 端支持 HTTP 和 Stdio 双传输,含进程管理(spawn/kill)、连接回退(fallback tools)、工具自动注册到 SkillRegistry。skill_graph 中的 MCPIntegration 支持工具同步(add/update/remove)和信任级别管理。

4.6 Skills 工具系统

项目 数据
代码行数 8,847 行
测试数 100
完整度 ~95%

核心实现:36 个类型定义(SkillGraphNode 含 5W2H/links/graph_meta/content/security_info/storage_tier),6 种进化建议(AddLink/UpdateSuccessRate/CreateFragment/Deprecate/Merge/Split),6 种冲突检测(ResourceAccess/DependencyCycle/PermissionOverlap/SemanticDuplicate/VersionMismatch/TemporalOrder),10 种查询模板(MocScan/SkillByTag/SkillByStack/SkillByRole 等),渐进式 3 层加载(Basic/Schema/Full),PreAggregatedIndex 多维索引(tag/stack/role/maturity),SkillCreator 支持 LLM 生成和 Markdown 转换。

4.7 汇总

模块 代码行数 测试数 完整度
感知系统 1,732 ~20 ~95%
Batch 系统 4,296 27 ~90%
工作区文件监控 3,338 51 ~95%
Hook 系统 1,920 12 ~90%
MCP 集成 1,934 15 ~90%
Skills 工具系统 8,847 100 ~95%
合计 22,067 225 ~93%

五、博客宣称与代码实现一致性

5.1 一致性评估

博客宣称 代码实现 一致性
PDCA 四阶段编排 sa/mod.rs 3,144 行完整实现 ✅ 一致
五层记忆架构 L0-L3 + 向量存储全部实现 ✅ 一致
JSON-LD 数据总线 jsonld/ 2,712 行完整实现 ✅ 一致
技能图谱 skill_graph/ 7,583 行完整实现 ✅ 一致
知识图谱 knowledge_graph/ 3,601 行完整实现 ✅ 一致
丰田安灯绳(阶段门禁) methodology/gate.rs 1,192 行 ✅ 一致
MESI 缓存一致性 consistency_engine.rs 316 行 ✅ 一致
双曲空间向量引擎 hyperspace-engine/ 4,851 行 ✅ 一致
SHACL 本体验证 ontologies/shacl.rs 467 行 ✅ 一致
后台 Batch Agent batch/ 4,296 行 ✅ 一致
MCP 协议支持 mcp.rs + mcp_client.rs 1,138 行 ✅ 一致
工作区文件监控 workspace_monitor/ 3,338 行 ✅ 一致

结论:博客宣称的核心功能在代码中均有真实实现,一致性很高。


六、客观评价

6.1 正面

  • 架构设计有深度:CPU 隐喻(缓存层次/MESI/流水线)贯穿且自洽
  • 代码实现真实:不存在"画饼"现象,所有宣称功能均有对应代码
  • 技术含量高:HNSW + 双曲空间 + MESI + JSON-LD + SHACL 的组合在开源 Agent 框架中独一无二
  • 测试覆盖充分:1,098 个测试,在个人项目中属上乘
  • 博客与代码高度一致:作者诚实描述了实现内容
  • 六大子系统均有完整实现:非空壳代码,每个模块都有完整功能和测试
  • 最新版本显著改进:移除了外部服务依赖(Qdrant),内联了缺失依赖(ontologies),使项目完全自包含

6.2 负面

  • 项目仅 1 个月:远未达到生产成熟度
  • 编译时间过长:oxrocksdb-sys(RocksDB C++)编译需 30+ 分钟
  • 无 Docker 部署方案:运维复杂度高
  • 无性能基准数据:高性能组件的实际表现未知
  • 核心贡献者极少:长期维护存在风险
  • 部分安全功能为占位实现:签名验证 verify() 直接返回 Ok(true)
  • 系统依赖未文档化:protoc 和 libclang 的需求未在 README 中说明

6.3 最终结论

评估问题 结论
博客说的内容是否真正实现了? ,核心宣称均有真实代码实现,一致性高
实现完整度如何? ,核心功能完整,六大子系统均有完整实现
最新版本是否可以编译? 依赖结构已自包含,剩余为标准系统依赖(protoc/libclang),完整 cargo check 因 RocksDB C++ 编译耗时而未能在单次会话中完成
性能是否可以信赖? 未知,缺少基准数据
稳定性是否可以信赖? 尚不可信赖,项目过新,未经生产验证
是否可以用于生产环境? 不可以,成熟度不足 + 无部署方案
有什么特点和值得学习的地方? 很多,CPU 隐喻架构、PDCA 编排、MESI 记忆、双曲向量、技能图谱、SHACL 本体验证等均有学习价值

6.4 推荐定位

gliding_horse 是一个值得深入研究的架构参考实现,而非可直接使用的生产工具。

最新版本(2026-06-26)相比初版有显著改进:移除了所有外部服务依赖,内联了缺失的依赖代码,使项目完全自包含。这表明作者在积极回应可编译性问题。

对于 Agent 架构研究者、系统设计学习者、Rust 进阶开发者,该项目有极高的学习价值。对于寻求生产级 Agent 框架的团队,建议关注但暂不采用,待项目成熟后再评估。


本报告基于 2026-06-26 的仓库快照(commit: 50e1acb)撰写。项目处于活跃开发中,后续状态可能发生变化。

posted @ 2026-06-27 13:42  doiito  阅读(1)  评论(0)    收藏  举报