Ironbees.AgentFramework 0.1.5

dotnet add package Ironbees.AgentFramework --version 0.1.5
                    
NuGet\Install-Package Ironbees.AgentFramework -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.AgentFramework" Version="0.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ironbees.AgentFramework" Version="0.1.5" />
                    
Directory.Packages.props
<PackageReference Include="Ironbees.AgentFramework" />
                    
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.AgentFramework --version 0.1.5
                    
#r "nuget: Ironbees.AgentFramework, 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.AgentFramework@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.AgentFramework&version=0.1.5
                    
Install as a Cake Addin
#tool nuget:?package=Ironbees.AgentFramework&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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.5 329 11/18/2025
0.1.2 226 11/11/2025
0.1.0-preview 139 10/30/2025

See CHANGELOG.md for release notes