mcpField
S
Solon Ai

Solon Ai

ローカル
solon.noear.orgAI・エージェント4693 日前に更新

Solon Ai について

Solon AI は、LLM 呼び出し、RAG、MCP、エージェント連携を組み合わせて Java で AI アプリケーションを構築するためのフレームワークです。Java 開発者を対象とし、JDK 8 から 25 に対応しています。SpringBoot、Vert.x、Quarkus などへの組み込みも可能です。

主な機能

  1. 01モデル方言に対応した ChatModel の統一インターフェース
  2. 02読み込みから再ランキングまでの RAG パイプライン
  3. 03MCP サーバーおよびクライアント機能
  4. 04グラフ駆動の ReAct エージェントと Team エージェント
  5. 05YAML で定義する AI フロー編成

活用シーン

  1. 01Java のバックエンドサービスへの LLM 対話とツール呼び出しの組み込み
  2. 02RAG によるドキュメント質疑応答アプリケーションの構築
  3. 03マルチエージェント連携による業務プロセスの自動化

MCP 対応

MCP サーバーとクライアントの両方の機能を提供します。サーバー側はアノテーションでツール、リソース、プロンプトを公開し、クライアント側は外部の MCP サーバーに接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Toplist

README の画像
Solon-AI

Java LLM(ツール、スキル)& RAG & MCP & エージェント(ReAct、Team)アプリケーション開発フレームワーク
抑制、効率性、オープン性
LangChain、LangGraph、LlamaIndexと同種の開発フレームワークです

https://solon.noear.org/article/learn-solon-ai

DeepWikiに質問 Maven Apache 2 jdk-8 jdk-11 jdk-17 jdk-21 jdk-25
giteeスター githubスター gitcodeスター

言語:英語 | 中文

概要

Solon AIはSolonプロジェクトの中核サブプロジェクトの1つです。LLM、大規模言語モデル、RAGナレッジベース、MCPプロトコル、エージェントの協調オーケストレーションを深く統合することを目指す、あらゆるシナリオに対応したJava AI開発フレームワークです。

  • あらゆるユースケースをサポート:Solonエコシステムに完全に適合し、SpringBoot、Vert.X、Quarkusなどのフレームワークにシームレスに統合できます。
  • マルチモデル方言:ChatModelの統一インターフェースを通じて、方言によってモデルの違いに対応します(OpenAI、Gemini、Claude、Ollama、DeepSeek、Dashscopeなど)。
  • グラフ駆動のオーケストレーション:エージェントの推論を、可観測かつ管理可能な計算フローグラフに変換できます。

solon-aiの組み込み例(サードパーティフレームワークを含む):

どのような種類のアプリケーションを開発できますか?

  • 汎用自律エージェント(例:Manus、OpenOperator)
  • インテリジェントアシスタント&RAG ナレッジベース(例:Dify、Coze)
  • マルチエージェントの協調オーケストレーション(例:AutoGPT、MetaGPT)
  • ビジネス主導の制御されたワークフロー(例:AI で強化された DingTalk/Lark の承認機能、SAP Intelligent Modules)
  • インテリジェントなドキュメント処理&ETL(例:Instabase、Unstructured.io)
  • リアルタイムのデータ分析&ダッシュボード(例:Text-to-SQL アプリケーション)
  • テストの自動化&品質保証(例:GitHub Copilot Workspace)
  • ローコード/ビジュアル AI ワークフロープラットフォーム(例:LangFlow、Flowise)
  • その他多数

エージェント合成プロジェクトの例(そのまま本番環境で使用、またはカスタマイズできます)

コアモジュールの使用例

  • ChatModel(汎用 LLM 呼び出しインターフェース)

同期呼び出しとリアクティブ呼び出しに対応し、方言への適応機能、Tool、Skill、ChatSession などを組み込みで提供します。

ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat")
                .provider("ollama") //Need to specify vendor, used to identify interface style (also called dialect)
                .model("qwen2.5:1.5b")
                .defaultTalentAdd(new McpGatewayTalent())
                .build();

// Synchronize the call and print the response message
AssistantMessage result = ChatchatModel.prompt("The weather in Hangzhou today?")
         .options(op->op.toolAdd(new WeatherTools())) //Adding tools
         .call()
         .getMessage();
System.out.println(result);

// Stream call
chatModel.prompt("hello").stream();     //Flux<ChatEvent>, full semantic events
  • Talents(Solon AI Talents)
Talent talent = new TalentDesc("order_expert")
        .description("Order Assistant")
        // Dynamic admission: Activated only when "order" is mentioned
        .isSupported(prompt -> prompt.getUserMessageContent().contains("order"))
        // Dynamic instructions: Inject different Sops depending on whether the user is a VIP or not
        .instruction(prompt -> {
            if ("VIP".equals(prompt.getMeta("user_level"))) {
                return "This is a VIP customer, please call fast_track_tool first.";
            }
            return "Process the order inquiry according to the normal process.";
        })
        .toolAdd(new OrderTools());

chatModel.prompt("Where is my order from yesterday?")
         .options(o->o.talentAdd(talent))
         .call();
  • RAG(ナレッジベース)

DocumentLoader、DocumentSplitter、EmbeddingModel、RerankingModel による一連のサポートを提供します。

//Building a Knowledge Warehouse
EmbeddingModel embeddingModel = EmbeddingModel.of(apiUrl).apiKey(apiKey).provider(provider).model(model).batchSize(10).build();
RerankingModel rerankingModel = RerankingModel.of(apiUrl).apiKey(apiKey).provider(provider).model(model).build();
InMemoryRepository repository = new InMemoryRepository(TestUtils.getEmbeddingModel()); //3.初始化知识库

repository.insert(new PdfLoader(pdfUri).load());

//retrieval
List<Document> docs = repository.search(query);

//You can rearrange it if you want
docs = rerankingModel.rerank(query, docs);

//Cue enhancement is
ChatMessage message = ChatMessage.ofUserAugment(query, docs);

//Calling the llm
chatModel.prompt(message) 
    .call();
  • MCP(Model Context Protocol)

MCP プロトコル(MCP_2025_06_18)と深く統合し、クロスプラットフォームでのツール、リソース、プロンプトの共有に対応しています。

//server
@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp") 
public class MyMcpServer {
    @ToolMapping(description = "Checking the weather")
    public String getWeather(@Param(description = "city") String location) {
        return "It's sunny, 25 degrees";
    }
}

//client
McpClientProvider clientProvider = McpClientProvider.builder()
        .channel(McpChannel.STREAMABLE)
        .url("http://localhost:8080/mcp")
        .build();
  • Agent(計算フローグラフを活用したエージェント機能)

Solon AI Agent は推論ロジックをグラフ駆動型の協調フローに変換し、ReAct による内省的な推論と、複数のエージェントによる Team の協調を実現します。

//Reflective intelligent agent:
ReActAgent agent = ReActAgent.of(chatModel) // 或者用 SimpleAgent.of(chatModel)
    .name("weather_expert")
    .description("Check the weather and provide advice")
    .defaultToolAdd(weatherTool) // Inject MCP or local tools
    .build();

agent.prompt("What to wear in Beijing today?").call(); // Autocomplete: Think -> Call tool -> Observe -> Summarize

// Constructing a team agent: Automatically arranging member roles through protocols
TeamAgent team = TeamAgent.of(chatModel)
    .name("marketing_team")
    .protocol(TeamProtocols.HIERARCHICAL) // Hierarchical collaboration (6 preset protocols)
    .agentAdd(copywriterAgent) // Copywriter expert
    .agentAdd(illustratorAgent) // Illustrator expert
    .build();

team.prompt("Plan a promotion scheme for deep-sea mineral water").call(); // Supervisor automatically decomposes tasks and assigns them to corresponding experts    .defaultToolAdd(weatherTool) // Inject MCP or local tools
  • Ai Flow(プロセスオーケストレーション機能)

Dify のローコードフローアプリケーションを模倣し、RAG、プロンプトの強化、モデル呼び出しなどの工程を YAML で構成します。

id: demo1
layout:
  - type: "start"
  - task: "@VarInput"
    meta:
      message: "Solon 是谁开发的?"
  - task: "@EmbeddingModel"
    meta:
      embeddingConfig: # "@type": "org.noear.solon.ai.embedding.EmbeddingConfig"
        provider: "ollama"
        model: "bge-m3"
        apiUrl: "http://127.0.0.1:11434/api/embed"
  - task: "@InMemoryRepository"
    meta:
      documentSources:
        - "https://solon.noear.org/article/about?format=md"
      splitPipeline:
        - "org.noear.solon.ai.rag.splitter.RegexTextSplitter"
        - "org.noear.solon.ai.rag.splitter.TokenSizeTextSplitter"
  - task: "@ChatModel"
    meta:
      systemPrompt: "你是个知识库"
      stream: false
      chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
        provider: "ollama"
        model: "qwen2.5:1.5b"
        apiUrl: "http://127.0.0.1:11434/api/chat"
  - task: "@ConsoleOutput"

# FlowEngine flowEngine = FlowEngine.newInstance();
# ...
# flowEngine.eval("demo1");

Solon プロジェクトのコードリポジトリ

コードリポジトリ説明
/opensolon/solonSolon、メインのコードリポジトリ
/opensolon/solon-examplesSolon、公式ウェブサイト対応のサンプルコードリポジトリ
/opensolon/solon-aiSolon AI、コードリポジトリ
/opensolon/solon-flowSolon Flow、コードリポジトリ
/opensolon/solon-expressionSolon Expression、コードリポジトリ
/opensolon/solon-cloudSolon Cloud、コードリポジトリ
/opensolon/solon-adminSolon Admin、コードリポジトリ
/opensolon/solon-integrationSolon Integration、コードリポジトリ
/opensolon/solon-java17Solon Java17、コードリポジトリ(Java17 ベース)
/opensolon/solon-java25Solon Java25、コードリポジトリ(Java25 ベース)
/opensolon/soloncodeSolonCode(「Claude Code」のJava8実装バージョン)、コードリポジトリ
/opensolon/solonclawSolonClaw(「OpenClaw」のJava8実装バージョン)、コードリポジトリ
/opensolon/solon-maven-pluginSolon Maven、プラグインのコードリポジトリ
/opensolon/solon-gradle-pluginSolon Gradle、プラグインのコードリポジトリ
/opensolon/solon-idea-pluginSolon Idea、プラグインのコードリポジトリ
/opensolon/solon-vscode-pluginSolon VsCode、プラグインのコードリポジトリ

FAQ

Solon AI とは何ですか?

Solon AI は、LLM、RAG ナレッジベース、MCP プロトコル、エージェントの協調オーケストレーションを深く統合した、あらゆるシナリオに対応する Java AI 開発フレームワークです。Java で本番環境向けの AI アプリケーションを構築するために設計されています。

Solon AI は LangChain などの Python フレームワークとどう違いますか?

Solon AI は、Java エコシステムとシームレスに統合できるよう、Java 開発者向けに特化して構築されています。

主な違い:

  • Java ネイティブ:Solon、SpringBoot、Vert.X、Quarkus の各エコシステムにぴったり適合します
  • JDK 8-25 をサポート:幅広い Java バージョンとの互換性があります
  • マルチモデル方言:統一されたインターフェースがモデル間の差異に自動的に適応します
  • グラフ駆動のオーケストレーション:Agent の推論を、可視化できる計算フローグラフに変換します
Solon AI はどのようなコンポーネントを提供しますか?
  • ChatModel:Tool、Skill、ChatSession をサポートする汎用 LLM 呼び出しインターフェース
  • Skills:動的な読み込みと指示の注入
  • RAG:一連の処理全体をサポートします(DocumentLoader、DocumentSplitter、EmbeddingModel、RerankingModel)
  • MCP:Model Context Protocol(MCP_2025_06_18)との緊密な統合
  • Agent:ReAct による内省的な推論と Team による協調
  • Ai Flow:YAML ベースのフローオーケストレーション(Dify のようなローコード体験)
どの LLM プロバイダーをサポートしていますか?

方言の適応を通じて、以下をサポートしています。

  • OpenAI、Gemini、Claude
  • Ollama(ローカルモデル)
  • DeepSeek、Dashscope(Alibaba)
  • カスタムエンドポイント
使い始めるにはどうすればよいですか?

Maven 依存関係を追加します:

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-ai</artifactId>
</dependency>

基本的な使い方:

ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat")
    .provider("ollama")
    .model("qwen2.5:1.5b")
    .build();

AssistantMessage result = chatModel.prompt("Hello").call().getMessage();
ツールを追加するにはどうすればよいですか?
chatModel.prompt("What's the weather?")
    .options(op -> op.toolAdd(new WeatherTools()))
    .call();
RAG を使用するにはどうすればよいですか?
EmbeddingModel embeddingModel = EmbeddingModel.of(apiUrl)
    .apiKey(apiKey).provider(provider).model(model).build();

InMemoryRepository repository = new InMemoryRepository(embeddingModel);
repository.insert(new PdfLoader(pdfUri).load());

List<Document> docs = repository.search(query);
ChatMessage message = ChatMessage.ofUserAugment(query, docs);
chatModel.prompt(message).call();
MCP 統合とは何ですか?

Solon AI は MCP サーバーとクライアントの両方を提供します。

サーバー:

@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp")
public class MyMcpServer {
    @ToolMapping(description = "Checking the weather")
    public String getWeather(@Param(description = "city") String location) {
        return "It's sunny, 25 degrees";
    }
}

クライアント:

McpClientProvider client = McpClientProvider.builder()
    .channel(McpChannel.STREAMABLE)
    .url("http://localhost:8080/mcp")
    .build();
Agent のパターンには何がありますか?
  • ReActAgent:Think → Call → Observe → Summarize のループを持つ、内省型エージェント
  • TeamAgent:6 種類のプリセットプロトコル(HIERARCHICAL など)を備えたマルチエージェント協調
ヘルプはどこで確認できますか?

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。