Skip to content

Repository files navigation

IronHive

IronHive Logo

CI NuGet License

IronHive는 기업용 AI 애플리케이션을 위한 .NET 10 파이프라인 프레임워크입니다. 이름 기반 레지스트리 패턴으로 멀티 Provider LLM 통합, 멀티에이전트 오케스트레이션, RAG 파이프라인, 파일 처리를 제공합니다.

주요 기능

  • 멀티 Provider LLM — OpenAI, Anthropic, Google AI (Gemini/Vertex AI), OpenAI Compatible (Ollama, LM Studio, GPUStack 등)
  • 멀티에이전트 오케스트레이션 — Sequential, Parallel, Handoff, GroupChat, HubSpoke, Graph (DAG)
  • RAG 파이프라인 — 텍스트 추출, 청킹, 임베딩, 벡터 검색
  • 다중 모달리티 — 이미지 생성, 음성 TTS/STT, 비디오 생성
  • 플러그인 — MCP (HTTP/Stdio/OAuth), OpenAPI 자동 도구 생성
  • M.E.AI 호환ChatClientAdapter / EmbeddingGeneratorAdapter
  • 워크플로우 — 코드 기반 타입 안전 워크플로우 엔진
  • 도메인 예외 — 컨텍스트 윈도우 초과 시 프로바이더별 오류를 ContextOverflowException(ContextWindow 포함)으로 정규화 — 문자열 파싱 없이 catch로 압축·복구 로직 작성 가능

설치

dotnet add package IronHive.Core
dotnet add package IronHive.Providers.OpenAI    # 또는 Anthropic, GoogleAI 등

빠른 시작

Standalone (콘솔)

using IronHive.Core;
using IronHive.Providers.OpenAI;
using IronHive.Abstractions.Messages.Content;

var hive = new HiveServiceBuilder()
    .AddOpenAIProviders("openai", new OpenAIConfig { ApiKey = "your-api-key" })
    .Build();

var agent = hive.CreateAgentFrom(cfg =>
{
    cfg.Provider = "openai";
    cfg.Model = "gpt-4o-mini";
    cfg.Instructions = "당신은 친절한 도우미입니다.";
});

// 단순 텍스트 호출
var response = await agent.InvokeAsync("안녕하세요");

// per-request 옵션 (에이전트 기본값 위에 이 호출에만 overlay)
var response2 = await agent.InvokeAsync("안녕하세요", new AgentInvokeOptions
{
    ThinkingEffort = MessageThinkingEffort.High,
    Suggestions = new SuggestionOptions(),  // 후속 질의 제안 활성화
    MaxTokens = 2048,
});

// 스트리밍
await foreach (var chunk in agent.InvokeStreamingAsync("안녕하세요"))
{
    // chunk 처리
}

ASP.NET Core DI 통합

// Program.cs
builder.Services.AddHiveService((hiveBuilder, sp) =>
    hiveBuilder
        .AddOpenAIProviders("openai", new OpenAIConfig
        {
            ApiKey = builder.Configuration["OpenAI:ApiKey"]!
        })
        .Build());

// 서비스에서 IHiveService 주입
public class ChatService(IHiveService hive)
{
    public async Task<string> ChatAsync(string text)
    {
        var agent = hive.CreateAgentFrom(cfg =>
        {
            cfg.Provider = "openai";
            cfg.Model = "gpt-4o-mini";
        });
        var response = await agent.InvokeAsync(text);
        return response.Message?.Content
            .OfType<TextMessageContent>()
            .FirstOrDefault()?.Value ?? string.Empty;
    }
}

패키지

패키지 설명
IronHive.Abstractions 인터페이스 및 계약 (외부 의존 없음)
IronHive.Core 핵심 구현 (에이전트, 오케스트레이터, 워크플로우)
IronHive.Providers.OpenAI OpenAI / Azure OpenAI / xAI (Responses API, Embeddings, DALL-E, TTS/STT)
IronHive.Providers.Anthropic Anthropic Claude
IronHive.Providers.GoogleAI Google Gemini + Vertex AI (이미지, 비디오, 오디오 포함)
IronHive.Providers.OpenAI.Compatible Ollama, LM Studio, vLLM, llama.cpp, GPUStack 등 — Chat Completions 표면
IronHive.Storages.Qdrant Qdrant 벡터 데이터베이스
IronHive.Storages.Amazon Amazon S3 파일 저장소
IronHive.Storages.Azure Azure Blob / File Share
IronHive.Storages.RabbitMQ RabbitMQ 큐
IronHive.Plugins.MCP Model Context Protocol (HTTP/Stdio/OAuth)
IronHive.Plugins.OpenAPI OpenAPI 도구 자동 생성

문서

문서 설명
docs/ARCHITECTURE.md 시스템 아키텍처 및 설계 원칙
docs/SETUP.md HiveServiceBuilder 구성 및 DI 통합
docs/AGENTS.md 에이전트 생성 및 호출
docs/MIDDLEWARE.md 미들웨어 시스템 (Retry, Timeout, CircuitBreaker 등)
docs/ORCHESTRATION.md 멀티에이전트 오케스트레이션 패턴
docs/TOOLS.md FunctionTool 및 커스텀 도구
docs/MEMORY.md RAG 파이프라인 및 MemoryWorker
docs/PROVIDERS.md AI 프로바이더 설정
docs/STORAGES.md 스토리지 백엔드 설정
docs/PLUGINS.md MCP / OpenAPI 플러그인
docs/SERVICES.md IHiveService 서비스 상세

Skills (AI 코딩 에이전트용)

AI 코딩 에이전트(GitHub Copilot, Claude Code, Cursor 등)에서 IronHive Skills를 사용하려면:

npx skills add iyulab/ironhive

설치 후 에이전트가 IronHive API 패턴, 오케스트레이션, RAG 파이프라인, 툴 사용법을 자동으로 인식합니다.

요구 사항

  • .NET 10.0+

라이선스

MIT — LICENSE 참조.

About

.NET pipeline framework for enterprise AI applications — multi-provider LLM integration, RAG pipelines, and multi-agent orchestration with a fluent builder API.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages