Skip to content

Framework Development

Welcome to the Astrsomn framework development guide! This section will help you extend and customize the framework.

Overview

Astrsomn uses SPI (Service Provider Interface) for plugin extension, supporting three extension types:

Extension TypeCore InterfaceDescription
Model ProviderModelProviderHandlerIntegrate new LLM platforms (Chat / Streaming / Embedding)
Vector StoreVecDriverVecSourceVecStoreIntegrate new vector databases
MCP ProtocolMcpProtocolHandlerExtend MCP transport protocols (SSE / STDIO / custom)

Extension Mechanism

The framework auto-discovers and loads plugins via Java SPI:

  1. Define Interface — Implement the framework's extension interfaces
  2. Register SPI — Register implementation classes in META-INF/services/
  3. Create Extension Descriptor — Extend AstroExtensionDescriptor for plugin metadata
  4. Package & Deploy — Package as a standalone JAR, drop into plugins/ for auto-loading

Directory Structure

Framework Development
├── Overview (this page)
├── Provider Development
│   ├── Guide               ← Implement ModelProviderHandler
│   ├── Interface Guide     ← API specifications
│   └── Examples            ← Complete code examples
├── Vector Store Development
│   ├── Guide               ← Implement VecDriver / VecSource / VecStore
│   ├── Interface Guide     ← API specifications
│   └── Examples            ← Complete code examples
└── MCP Development
    ├── Guide               ← Implement McpProtocolHandler
    ├── Interface Guide     ← API specifications
    └── Examples            ← Complete code examples

Development Environment

bash
# Clone the project
git clone https://github.com/Astrsomn/Astrsomn.git
cd Astrsomn

# Compile (skip tests)
mvn clean compile -DskipTests

# Run tests
mvn test

# Package a single module
mvn clean package -pl astrsomn-plugins/astrsomn-providers/astrsomn-provider-deepseek -am -DskipTests

Key Interface Quick Reference

Model Provider

InterfacePackage
ModelProviderHandlercom.astrsomn.api.runtime.common.langchain.extension.model
AbstractModelProviderHandlercom.astrsomn.api.runtime.common.langchain.extension.model

Vector Store

InterfacePackage
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 Protocol

InterfacePackage
McpProtocolHandlercom.astrsomn.starter.runtime.langchain.tool.mcp.protocol

Extension Metadata

InterfacePackage
AstroExtensionDescriptorcom.astrsomn.starter.system

Next Steps