Skip to content

框架开发

欢迎来到 Astrsomn 框架开发指南!本章节将帮助你了解如何扩展和定制框架。

开发概览

Astrsomn 采用 SPI(Service Provider Interface) 机制实现插件扩展,支持以下三类扩展:

扩展类型核心接口说明
模型供应商ModelProviderHandler接入新的大模型平台(Chat / Streaming / Embedding)
向量库VecDriverVecSourceVecStore接入新的向量数据库
MCP 协议McpProtocolHandler扩展 MCP 传输协议(SSE / STDIO / 自定义)

扩展机制

框架通过 Java SPI 自动发现和加载插件:

  1. 定义接口 — 实现框架提供的扩展接口
  2. 注册 SPI — 在 META-INF/services/ 中注册实现类
  3. 创建扩展描述符 — 继承 AstroExtensionDescriptor 提供插件元数据
  4. 打包部署 — 打包为独立 JAR,放入 plugins/ 目录即可自动加载

目录结构

框架开发
├── 概述(本页)
├── 模型供应商开发
│   ├── 开发指南      ← 实现 ModelProviderHandler
│   ├── 接口规范      ← 详细 API 文档
│   └── 开发示例      ← 完整代码示例
├── 向量库开发
│   ├── 开发指南      ← 实现 VecDriver / VecSource / VecStore
│   ├── 接口规范      ← 详细 API 文档
│   └── 开发示例      ← 完整代码示例
└── MCP 开发
    ├── 开发指南      ← 实现 McpProtocolHandler
    ├── 接口规范      ← 详细 API 文档
    └── 开发示例      ← 完整代码示例

开发环境

bash
# 克隆项目
git clone https://github.com/Astrsomn/Astrsomn.git
cd Astrsomn

# 编译项目(跳过测试)
mvn clean compile -DskipTests

# 运行测试
mvn test

# 打包单个模块
mvn clean package -pl astrsomn-plugins/astrsomn-providers/astrsomn-provider-deepseek -am -DskipTests

关键接口速查

模型供应商

接口包路径
ModelProviderHandlercom.astrsomn.api.runtime.common.langchain.extension.model
AbstractModelProviderHandlercom.astrsomn.api.runtime.common.langchain.extension.model

向量库

接口包路径
VecDrivercom.astrsomn.api.runtime.common.langchain.extension.vector
AbstractVecDrivercom.astrsomn.api.runtime.common.langchain.extension.vector
VecSourcecom.astrsomn.api.runtime.common.langchain.extension.vector
VecStorecom.astrsomn.api.runtime.common.langchain.extension.vector

MCP 协议

接口包路径
McpProtocolHandlercom.astrsomn.starter.runtime.langchain.tool.mcp.protocol

扩展元数据

接口包路径
AstroExtensionDescriptorcom.astrsomn.starter.system

下一步