1. HagiCode Skill 系统架构概览
HagiCode Skill 系统采用前后端分离的微服务架构,核心设计目标是实现AI技能的灵活扩展与高效管理。这个系统本质上是一个连接开发者与AI能力的中间件平台,通过标准化接口将各种专业技能封装为可插拔的"技能包"。
前端采用TanStack Start + React技术栈,这种组合在保证开发效率的同时,能够处理复杂的状态管理需求。Redux Toolkit作为状态管理方案,特别适合处理技能安装、搜索、推荐等异步操作带来的状态变化。UI层面采用模块化设计,四个核心功能对应独立的Tab组件,这种设计既保持了功能独立性,又确保了用户体验的一致性。
后端基于ASP.NET Core + ABP Framework构建,这种组合提供了完善的模块化开发支持。Orleans分布式框架的引入是关键设计决策,它解决了技能状态在多节点环境下的同步问题。通过Grain抽象,每个技能实例都可以被视为一个虚拟的Actor,这种模型天然适合处理并发的技能调用请求。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技能生命周期管理实现细节
2.1 技能安装机制
技能安装流程是系统的核心功能之一,其设计考虑了原子性、可靠性和用户体验。整个安装过程分为五个关键阶段:
-
引用规范化:处理各种格式的技能引用(如tanweai/pua、@opencode/docker-skill),转换为统一的内部表示。这个过程包括:
- 解析源标识符
- 验证版本格式
- 生成标准化的技能路径
-
先决条件检查:确保运行环境满足技能要求,包括:
- Node.js版本验证
- 磁盘空间检查
- 网络连通性测试
-
安装锁获取:使用分布式锁确保同一技能同时只有一个安装进程,防止冲突。锁实现基于Orleans的分布式锁机制,超时时间设置为4分钟。
-
命令执行:通过适配器模式执行npx命令,关键参数如下:
bash复制
npx skills add {normalized.FullReference} -g -y命令执行器会监控进程输出,实时解析进度信息。
-
元数据持久化:记录安装详情到managed-install.json,包含:
`
