Ironbees.Core 0.1.5

dotnet add package Ironbees.Core --version 0.1.5
                    
NuGet\Install-Package Ironbees.Core -Version 0.1.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ironbees.Core" Version="0.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ironbees.Core" Version="0.1.5" />
                    
Directory.Packages.props
<PackageReference Include="Ironbees.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ironbees.Core --version 0.1.5
                    
#r "nuget: Ironbees.Core, 0.1.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ironbees.Core@0.1.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ironbees.Core&version=0.1.5
                    
Install as a Cake Addin
#tool nuget:?package=Ironbees.Core&version=0.1.5
                    
Install as a Cake Tool

🐝 Ironbees

CI NuGet - Core NuGet - AgentFramework License

νŒŒμΌμ‹œμŠ€ν…œ μ»¨λ²€μ…˜ 기반 LLM μ—μ΄μ „νŠΈ 관리 래퍼

IronbeesλŠ” .NET ν™˜κ²½μ—μ„œ LLM μ—μ΄μ „νŠΈμ˜ λ°˜λ³΅λ˜λŠ” νŒ¨ν„΄μ„ κ°„μ†Œν™”ν•˜λŠ” κ²½λŸ‰ λž˜νΌμž…λ‹ˆλ‹€. Microsoft Agent Framework, Semantic Kernel, LangChain, ironhive λ“±μ˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό λŒ€μ²΄ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, κ·Έ μœ„μ—μ„œ μž‘λ™ν•˜λ©° νŒŒμΌμ‹œμŠ€ν…œ μ»¨λ²€μ…˜μœΌλ‘œ μ—μ΄μ „νŠΈ 관리λ₯Ό λ‹¨μˆœν™”ν•©λ‹ˆλ‹€.

🎯 핡심 κ°€μΉ˜ μ œμ•ˆ

Ironbeesκ°€ ν•˜λŠ” 것:

  • βœ… νŒŒμΌμ‹œμŠ€ν…œ μ»¨λ²€μ…˜μœΌλ‘œ μ—μ΄μ „νŠΈ μžλ™ λ‘œλ”© (agents/{name}/agent.yaml)
  • βœ… κ°„λ‹¨ν•œ ν‚€μ›Œλ“œ 기반 μ—μ΄μ „νŠΈ λΌμš°νŒ…
  • βœ… 닀쀑 ν”„λ ˆμž„μ›Œν¬ 톡합 (Microsoft Agent Framework, ironhive λ“±)
  • βœ… λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈ μ„€μ • μ½”λ“œ 제거

Ironbeesκ°€ ν•˜μ§€ μ•ŠλŠ” 것:

  • ❌ λ³΅μž‘ν•œ μ›Œν¬ν”Œλ‘œμš° μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ β†’ κΈ°λ³Έ ν”„λ ˆμž„μ›Œν¬ κΈ°λŠ₯ μ‚¬μš©
  • ❌ λŒ€ν™” 관리 및 μ»¨ν…μŠ€νŠΈ β†’ κΈ°λ³Έ ν”„λ ˆμž„μ›Œν¬ κΈ°λŠ₯ μ‚¬μš©
  • ❌ 도ꡬ 톡합 및 MCP β†’ κΈ°λ³Έ ν”„λ ˆμž„μ›Œν¬ κΈ°λŠ₯ μ‚¬μš©
  • ❌ κ³ κΈ‰ ν˜‘μ—… νŒ¨ν„΄ β†’ κΈ°λ³Έ ν”„λ ˆμž„μ›Œν¬ κΈ°λŠ₯ μ‚¬μš©

πŸ’‘ μ™œ Ironbees인가?

일반적인 LLM μ•± 개발 μ‹œ:

// 맀번 λ°˜λ³΅λ˜λŠ” νŒ¨ν„΄
// 1. μ—μ΄μ „νŠΈ μ„€μ • 파일 νŒŒμ‹±
// 2. ν”„λ‘¬ν”„νŠΈ λ‘œλ”©
// 3. LLM ν΄λΌμ΄μ–ΈνŠΈ μ΄ˆκΈ°ν™”
// 4. μ—μ΄μ „νŠΈ 생성
// 5. μ˜μ‘΄μ„± μ£Όμž… μ„€μ •

Ironbees μ‚¬μš© μ‹œ:

// 파일 ꡬ쑰만 λ§žμΆ”λ©΄ 끝
services.AddIronbees(options => {
    options.AzureOpenAIEndpoint = "...";
    options.AgentsDirectory = "./agents";
});

await orchestrator.LoadAgentsAsync();
var result = await orchestrator.ProcessAsync("μš”μ²­", "agent-name");

πŸ“¦ μ„€μΉ˜

dotnet add package Ironbees.Core
dotnet add package Ironbees.AgentFramework  # Azure OpenAI + Microsoft Agent Framework용

πŸš€ λΉ λ₯Έ μ‹œμž‘

1. μ—μ΄μ „νŠΈ μ •μ˜ (νŒŒμΌμ‹œμŠ€ν…œ μ»¨λ²€μ…˜)

agents/
└── coding-agent/
    β”œβ”€β”€ agent.yaml          # ν•„μˆ˜: μ—μ΄μ „νŠΈ 메타데이터
    └── system-prompt.md    # ν•„μˆ˜: μ‹œμŠ€ν…œ ν”„λ‘¬ν”„νŠΈ

agents/coding-agent/agent.yaml:

name: coding-agent
description: Expert software developer
capabilities: [code-generation, code-review]
tags: [programming, development]
model:
  deployment: gpt-4
  temperature: 0.7

agents/coding-agent/system-prompt.md:

You are an expert software developer specializing in C# and .NET...

2. μ„œλΉ„μŠ€ ꡬ성

κΈ°λ³Έ ꡬ성 (Azure.AI.OpenAI ChatClient):

services.AddIronbees(options =>
{
    options.AzureOpenAIEndpoint = "https://your-resource.openai.azure.com";
    options.AzureOpenAIKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY");
    options.AgentsDirectory = "./agents";
});

Microsoft Agent Framework μ‚¬μš©:

services.AddIronbees(options =>
{
    options.AzureOpenAIEndpoint = "https://your-resource.openai.azure.com";
    options.AzureOpenAIKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY");
    options.AgentsDirectory = "./agents";
    options.UseMicrosoftAgentFramework = true; // πŸ‘ˆ ν”„λ ˆμž„μ›Œν¬ μ „ν™˜
});

3. μ—μ΄μ „νŠΈ μ‚¬μš©

var orchestrator = serviceProvider.GetRequiredService<IAgentOrchestrator>();

// μ—μ΄μ „νŠΈ λ‘œλ“œ (νŒŒμΌμ‹œμŠ€ν…œμ—μ„œ μžλ™)
await orchestrator.LoadAgentsAsync();

// 방법 1: λͺ…μ‹œμ  μ—μ΄μ „νŠΈ 선택
var response = await orchestrator.ProcessAsync(
    "Write a C# method to calculate fibonacci numbers",
    agentName: "coding-agent");

// 방법 2: μžλ™ λΌμš°νŒ… (ν‚€μ›Œλ“œ 기반)
var response = await orchestrator.ProcessAsync(
    "fibonacci numbers in C#"); // "coding" ν‚€μ›Œλ“œλ‘œ μžλ™ λΌμš°νŒ…

// 방법 3: 슀트리밍 응닡 (λͺ…μ‹œμ  μ—μ΄μ „νŠΈ) πŸ†•
await foreach (var chunk in orchestrator.StreamAsync(
    "Write a blog post about AI",
    agentName: "writing-agent"))
{
    Console.Write(chunk); // μ‹€μ‹œκ°„ 슀트리밍
}

// 방법 4: 슀트리밍 + μžλ™ λΌμš°νŒ… (v0.1.6+) πŸ†•
await foreach (var chunk in orchestrator.StreamAsync(
    "fibonacci in Python")) // μžλ™μœΌλ‘œ coding-agent 선택
{
    Console.Write(chunk); // μ‹€μ‹œκ°„ 슀트리밍
}

πŸ—οΈ μ•„ν‚€ν…μ²˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Ironbees (얇은 래퍼)                       β”‚
β”‚   βœ… FileSystemAgentLoader                  β”‚
β”‚      - agents/ 디렉터리 μŠ€μΊ”                β”‚
β”‚      - agent.yaml νŒŒμ‹±                      β”‚
β”‚      - system-prompt.md λ‘œλ”©                β”‚
β”‚   βœ… KeywordAgentSelector                   β”‚
β”‚      - ν‚€μ›Œλ“œ 기반 λΌμš°νŒ…                    β”‚
β”‚   βœ… ILLMFrameworkAdapter                   β”‚
β”‚      - 닀쀑 ν”„λ ˆμž„μ›Œν¬ 톡합                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   Microsoft Agent Framework / Semantic Kernelβ”‚
β”‚   ➑️ μ‹€μ œ μ—μ΄μ „νŠΈ μ‹€ν–‰                     β”‚
β”‚   ➑️ μ›Œν¬ν”Œλ‘œμš° μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜              β”‚
β”‚   ➑️ 도ꡬ 톡합, MCP, λŒ€ν™” 관리              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

ironbees/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ Ironbees.Core/           # νŒŒμΌμ‹œμŠ€ν…œ λ‘œλ”, λΌμš°νŒ…
β”‚   └── Ironbees.AgentFramework/ # Azure OpenAI + MS Agent Framework μ–΄λŒ‘ν„°
β”œβ”€β”€ agents/                       # μ—μ΄μ „νŠΈ μ •μ˜ (9개 예제)
β”œβ”€β”€ docs/                         # 상세 λ¬Έμ„œ
β”œβ”€β”€ samples/                      # μ‹€ν–‰ κ°€λŠ₯ν•œ 예제
└── tests/                        # λ‹¨μœ„ ν…ŒμŠ€νŠΈ (67개)

πŸ”Œ 닀쀑 ν”„λ ˆμž„μ›Œν¬ 지원

IronbeesλŠ” ILLMFrameworkAdapter μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 λ‹€μ–‘ν•œ LLM ν”„λ ˆμž„μ›Œν¬μ™€ 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€:

ν”„λ ˆμž„μ›Œν¬ μƒνƒœ νŒ¨ν‚€μ§€
Azure.AI.OpenAI ChatClient βœ… 지원 Ironbees.AgentFramework
Microsoft Agent Framework βœ… 지원 Ironbees.AgentFramework
OpenAI API βœ… 지원 Ironbees.Samples.Shared
GPU-Stack (OpenAI Compatible) βœ… 지원 Ironbees.Samples.Shared
Anthropic Claude πŸ”„ κ³„νšλ¨ -
Semantic Kernel πŸ”„ κ³„νšλ¨ -
LangChain πŸ”„ κ³„νšλ¨ -

ν”„λ ˆμž„μ›Œν¬ μ „ν™˜μ€ μ„€μ • ν”Œλž˜κ·Έ ν•˜λ‚˜λ‘œ:

options.UseMicrosoftAgentFramework = true; // or false

πŸ“š λ¬Έμ„œ

🎯 섀계 원칙

Convention over Configuration

  • 파일 ꡬ쑰와 λͺ…λͺ… κ·œμΉ™μ„ λ”°λ₯΄λ©΄ μ΅œμ†Œ μ½”λ“œλ‘œ λ™μž‘
  • agents/{name}/agent.yaml + system-prompt.md = μžλ™ λ‘œλ”©

Thin Wrapper Philosophy

  • LLM ν”„λ ˆμž„μ›Œν¬μ˜ κΈ°λŠ₯을 μˆ¨κΈ°μ§€ μ•Šκ³  보완
  • λ³΅μž‘ν•œ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ€ κΈ°λ³Έ ν”„λ ˆμž„μ›Œν¬μ— μœ„μž„
  • λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈ μ œκ±°μ—λ§Œ 집쀑

Framework Agnostic

  • Microsoft Agent Framework, Semantic Kernel, LangChain λ“±κ³Ό 톡합
  • ILLMFrameworkAdapter둜 μƒˆ ν”„λ ˆμž„μ›Œν¬ μΆ”κ°€ κ°€λŠ₯

Extensibility First

  • λͺ¨λ“  핡심 μ»΄ν¬λ„ŒνŠΈ ꡐ체 κ°€λŠ₯
  • IAgentLoader, IAgentSelector, ILLMFrameworkAdapter

πŸ“– 예제

  • OpenAISample - κΈ°λ³Έ μ‚¬μš©λ²• (OpenAI API)
  • GpuStackSample - 둜컬 GPU 인프라 (GPU-Stack) πŸ†•
  • WebApiSample - RESTful API μ„œλ²„
  • EmbeddingSample - 둜컬 ONNX μž„λ² λ”© 및 μ‹œλ§¨ν‹± λΌμš°νŒ…

✨ μ΅œμ‹  κΈ°λŠ₯

v0.1.6 - StreamAsync μžλ™ λΌμš°νŒ… πŸ†•

μ‹€μ‹œκ°„ 슀트리밍과 μžλ™ μ—μ΄μ „νŠΈ 선택을 κ²°ν•©! API 일관성 κ°œμ„ .

μ£Όμš” κΈ°λŠ₯:

  • 슀트리밍 + μžλ™ 선택: ProcessAsync와 λ™μΌν•œ νŒ¨ν„΄μœΌλ‘œ StreamAsync μžλ™ λΌμš°νŒ… 지원
  • API 일관성: λͺ¨λ“  μ£Όμš” λ©”μ„œλ“œμ—μ„œ λͺ…μ‹œμ /μžλ™ 선택 μ˜€λ²„λ‘œλ“œ 제곡
  • κ°„μ†Œν™”λœ μ½”λ“œ: 2단계 호좜(선택 β†’ 슀트리밍)을 1λ‹¨κ³„λ‘œ 톡합
// 이전: μˆ˜λ™ 선택 ν•„μš”
var selection = await orchestrator.SelectAgentAsync(input);
await foreach (var chunk in orchestrator.StreamAsync(input, selection.SelectedAgent.Name))
{
    Console.Write(chunk);
}

// 이제: μžλ™ 선택 톡합 (v0.1.6+)
await foreach (var chunk in orchestrator.StreamAsync(input))
{
    Console.Write(chunk); // μžλ™μœΌλ‘œ 졜적 μ—μ΄μ „νŠΈ 선택 ν›„ 슀트리밍
}

기술 상세:

  • λ‚΄λΆ€μ μœΌλ‘œ SelectAgentAsync μž¬μ‚¬μš©μœΌλ‘œ μΌκ΄€λœ 선택 둜직
  • μ—μ΄μ „νŠΈλ₯Ό μ°Ύμ§€ λͺ»ν•œ 경우 λͺ…ν™•ν•œ μ—λŸ¬ λ©”μ‹œμ§€ 슀트리밍
  • [EnumeratorCancellation] μ†μ„±μœΌλ‘œ μ μ ˆν•œ μ·¨μ†Œ 처리

v0.1.5 - Local ONNX Embeddings

둜컬 ONNX λͺ¨λΈλ‘œ μ™„μ „ 무료 μž„λ² λ”© 지원! API ν‚€ λΆˆν•„μš”, μ™„μ „νžˆ μ˜€ν”„λΌμΈ λ™μž‘.

μ£Όμš” κΈ°λŠ₯:

  • μžλ™ λͺ¨λΈ λ‹€μš΄λ‘œλ“œ: 첫 μ‹€ν–‰ μ‹œ Hugging Faceμ—μ„œ μžλ™ λ‹€μš΄λ‘œλ“œ (~23-45MB)
  • 2κ°€μ§€ λͺ¨λΈ 지원:
    • all-MiniLM-L6-v2: λΉ λ₯Έ 속도 (κΈ°λ³Έκ°’, ~14K sent/sec, 84-85% 정확도)
    • all-MiniLM-L12-v2: 높은 정확도 (~4K sent/sec, 87-88% 정확도)
  • 크둜슀 ν”Œλž«νΌ: Windows, Linux, macOS 지원
  • μ‹œλ§¨ν‹± μ—μ΄μ „νŠΈ 선택: EmbeddingAgentSelector둜 의미 기반 λΌμš°νŒ…
  • ν•˜μ΄λΈŒλ¦¬λ“œ 선택: ν‚€μ›Œλ“œ(40%) + μž„λ² λ”©(60%) κ²°ν•©
// 둜컬 ONNX μž„λ² λ”© ν”„λ‘œλ°”μ΄λ” 생성 (첫 μ‹€ν–‰ μ‹œ μžλ™ λ‹€μš΄λ‘œλ“œ)
var provider = await OnnxEmbeddingProvider.CreateAsync(
    OnnxEmbeddingProvider.ModelType.MiniLML6V2);

// ν…μŠ€νŠΈλ₯Ό 384차원 λ²‘ν„°λ‘œ λ³€ν™˜
var embedding = await provider.GenerateEmbeddingAsync("Write Python code");

// μž„λ² λ”© 기반 μ—μ΄μ „νŠΈ 선택
var selector = new EmbeddingAgentSelector(provider);
var result = await selector.SelectAgentAsync("secure my web app", agents);
// β†’ Security Specialist 선택 (ν‚€μ›Œλ“œ 없이도 μ‹œλ§¨ν‹± λ§€μΉ­)

// ν•˜μ΄λΈŒλ¦¬λ“œ 선택 (ν‚€μ›Œλ“œ + μž„λ² λ”©)
var hybridSelector = new HybridAgentSelector(
    new KeywordAgentSelector(),
    new EmbeddingAgentSelector(provider));
var result = await hybridSelector.SelectAgentAsync("python security", agents);
// β†’ ν‚€μ›Œλ“œμ™€ 의미λ₯Ό λͺ¨λ‘ κ³ λ €ν•œ 졜적 선택

λͺ¨λΈ 비ꡐ: | λͺ¨λΈ | 크기 | 속도 | 정확도 | μš©λ„ | |------|------|------|--------|------| | L6-v2 (κΈ°λ³Έκ°’) | ~23MB | ~14K sent/sec | 84-85% | μ‹€μ‹œκ°„ μ•±, λ¦¬μ†ŒμŠ€ μ œν•œ ν™˜κ²½ | | L12-v2 | ~45MB | ~4K sent/sec | 87-88% | 법λ₯  λ¬Έμ„œ, ν•™μˆ  λ…Όλ¬Έ, κ³ ν’ˆμ§ˆ μš”κ΅¬ |

μƒ˜ν”Œ μ½”λ“œ: EmbeddingSample

v0.1.1 - ν–₯μƒλœ KeywordAgentSelector

  • TF-IDF κ°€μ€‘μΉ˜: μš©μ–΄ κ΄€λ ¨μ„± 기반 μŠ€μ½”μ–΄λ§μœΌλ‘œ 정확도 ν–₯상
  • 슀마트 μ •κ·œν™”: 50+ λ™μ˜μ–΄ κ·Έλ£Ή, 100+ μ–΄κ°„ μΆ”μΆœ κ·œμΉ™ (code↔programming, db↔database)
  • μ„±λŠ₯ 캐싱: 반볡 쿼리 ~50% 속도 ν–₯상
  • ν™•μž₯된 λΆˆμš©μ–΄: 80+ λΆˆμš©μ–΄, .NET 기술 μš©μ–΄ 보쑴
  • 정확도: 88% (50개 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€)
  • 속도: < 1ms 단일 선택, 1000회 < 100ms
// λ™μΌν•œ API, ν–₯μƒλœ μ„±λŠ₯κ³Ό 정확도
var result = await orchestrator.ProcessAsync("Write C# code", "coding-agent");
// 이제 "code", "coding", "programming" λͺ¨λ‘ λ§€μΉ­
// TF-IDF둜 더 κ΄€λ ¨μ„± 높은 μ—μ΄μ „νŠΈ 선택

πŸ—ΊοΈ λ‘œλ“œλ§΅

v0.1.6 - ν˜„μž¬ βœ…

  • StreamAsync μžλ™ λΌμš°νŒ…
  • API 일관성 κ°œμ„ 
  • GpuStackAdapter μ™„μ„±

v0.1.5 - ONNX Embeddings βœ…

  • 둜컬 ONNX μž„λ² λ”© ν”„λ‘œλ°”μ΄λ” (all-MiniLM-L6-v2, L12-v2)
  • μžλ™ λͺ¨λΈ λ‹€μš΄λ‘œλ“œ 및 캐싱
  • EmbeddingAgentSelector (μ‹œλ§¨ν‹± μ—μ΄μ „νŠΈ 선택)
  • HybridAgentSelector (ν‚€μ›Œλ“œ + μž„λ² λ”©)
  • μ™„μ „ 무료, API ν‚€ λΆˆν•„μš”

v0.1.4 - μž„λ² λ”© 기반 λΌμš°νŒ… βœ…

  • IEmbeddingProvider μΈν„°νŽ˜μ΄μŠ€
  • VectorSimilarity μœ ν‹Έλ¦¬ν‹°
  • 코사인 μœ μ‚¬λ„ 계산
  • μž„λ² λ”© 캐싱 μ΅œμ ν™”

v0.1.1 - TF-IDF ν‚€μ›Œλ“œ 선택 βœ…

  • TF-IDF κ°€μ€‘μΉ˜ μ•Œκ³ λ¦¬μ¦˜
  • ν‚€μ›Œλ“œ μ •κ·œν™” (λ™μ˜μ–΄, μ–΄κ°„ μΆ”μΆœ)
  • μ„±λŠ₯ 캐싱
  • ν™•μž₯된 λΆˆμš©μ–΄ 사전
  • 88% 선택 정확도

v0.1.0 - 초기 릴리슀 βœ…

  • νŒŒμΌμ‹œμŠ€ν…œ μ»¨λ²€μ…˜ 기반 λ‘œλ”
  • Azure OpenAI 톡합
  • Microsoft Agent Framework 톡합
  • ν‚€μ›Œλ“œ 기반 λΌμš°νŒ…
  • 닀쀑 ν”„λ ˆμž„μ›Œν¬ μ–΄λŒ‘ν„°

v0.2.0 - κ³„νš

  • Semantic Kernel μ–΄λŒ‘ν„°
  • OpenAI/Azure OpenAI μž„λ² λ”© ν”„λ‘œλ°”μ΄λ”
  • μ„±λŠ₯ μ΅œμ ν™”
  • μΆ”κ°€ 예제 및 λ¬Έμ„œ

v0.3.0 - κ³„νš

  • LangChain μ–΄λŒ‘ν„°
  • CLI 도ꡬ
  • 벑터 DB 톡합 (선택적)

πŸ§ͺ ν…ŒμŠ€νŠΈ

ν…ŒμŠ€νŠΈ μΉ΄ν…Œκ³ λ¦¬

IronbeesλŠ” ν…ŒμŠ€νŠΈλ₯Ό μΉ΄ν…Œκ³ λ¦¬λ‘œ κ΅¬λΆ„ν•˜μ—¬ 효율적인 ν…ŒμŠ€νŠΈ 싀행을 μ§€μ›ν•©λ‹ˆλ‹€:

μΉ΄ν…Œκ³ λ¦¬ μ„€λͺ… CI μ‹€ν–‰ 둜컬 μ‹€ν–‰
Unit λΉ λ₯Έ λ‹¨μœ„ ν…ŒμŠ€νŠΈ (mock μ‚¬μš©) βœ… 항상 βœ… ꢌμž₯
Performance λ©”λͺ¨λ¦¬/μ„±λŠ₯ ν…ŒμŠ€νŠΈ (GC, λ™μ‹œμ„±) ❌ μ œμ™Έ βœ… ꢌμž₯
Integration μ™ΈλΆ€ μ„œλΉ„μŠ€ ν…ŒμŠ€νŠΈ (API ν‚€ ν•„μš”) ⏸️ 선택적 ⚠️ ν™˜κ²½ ν•„μš”

λΉ λ₯Έ μ‹€ν–‰

# λͺ¨λ“  ν…ŒμŠ€νŠΈ (둜컬 ꢌμž₯)
dotnet test

# CI ν…ŒμŠ€νŠΈλ§Œ (Performance μ œμ™Έ)
dotnet test --filter "Category!=Performance"

# Unit ν…ŒμŠ€νŠΈλ§Œ
dotnet test --filter "Category!=Performance&Category!=Integration"

ν…ŒμŠ€νŠΈ 슀크립트 μ‚¬μš©

Windows (PowerShell):

# 전체 ν…ŒμŠ€νŠΈ (Performance 포함)
.\run-tests.ps1 -Category all

# CI ν…ŒμŠ€νŠΈ (Performance μ œμ™Έ)
.\run-tests.ps1 -Category ci

# Unit ν…ŒμŠ€νŠΈλ§Œ
.\run-tests.ps1 -Category unit

# Performance ν…ŒμŠ€νŠΈλ§Œ
.\run-tests.ps1 -Category performance

# 컀버리지 포함
.\run-tests.ps1 -Category all -Coverage

Linux/macOS (Bash):

# 슀크립트 μ‹€ν–‰ κΆŒν•œ λΆ€μ—¬
chmod +x run-tests.sh

# 전체 ν…ŒμŠ€νŠΈ
./run-tests.sh --category all

# CI ν…ŒμŠ€νŠΈ
./run-tests.sh --category ci

# Unit ν…ŒμŠ€νŠΈλ§Œ
./run-tests.sh --category unit

# 컀버리지 포함
./run-tests.sh --category all --coverage

ν…ŒμŠ€νŠΈ 톡계 (v0.1.6)

Total: 169 tests
β”œβ”€ Unit: 166 tests βœ…
β”œβ”€ Performance: 3 tests βœ… (둜컬 μ „μš©)
└─ Integration: 3 tests ⏸️ (ν™˜κ²½ ν•„μš”)

CI Status: 166/166 passed (100%)
Local Status: 169/169 passed (100%)

🀝 κΈ°μ—¬

μ΄μŠˆμ™€ PR을 ν™˜μ˜ν•©λ‹ˆλ‹€.

핡심 μ² ν•™ μœ μ§€:

  • 얇은 래퍼둜 μœ μ§€
  • κ³Όλ„ν•œ κΈ°λŠ₯ μΆ”κ°€ μ§€μ–‘
  • νŒŒμΌμ‹œμŠ€ν…œ μ»¨λ²€μ…˜ 쀑심

πŸ“„ λΌμ΄μ„ μŠ€

MIT License - LICENSE μ°Έμ‘°


Ironbees - Filesystem convention-based LLM agent wrapper for .NET 🐝

버전: 0.1.6 | .NET: 9.0+ | μƒνƒœ: μ‹€ν—˜μ 

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Ironbees.Core:

Package Downloads
Ironbees.AgentFramework

Thin adapter layer integrating Ironbees with Azure OpenAI and Microsoft Agent Framework. Provides execution adapters, dependency injection extensions, and ASP.NET Core setup - delegates actual agent execution to underlying frameworks.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.5 359 11/18/2025
0.1.2 267 11/11/2025
0.1.0 180 10/30/2025

See CHANGELOG.md for release notes