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 StoreVecDriver → VecSource → VecStoreIntegrate 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 ​