Ironbees.AgentFramework
0.1.0-preview
See the version list below for details.
dotnet add package Ironbees.AgentFramework --version 0.1.0-preview
NuGet\Install-Package Ironbees.AgentFramework -Version 0.1.0-preview
<PackageReference Include="Ironbees.AgentFramework" Version="0.1.0-preview" />
<PackageVersion Include="Ironbees.AgentFramework" Version="0.1.0-preview" />
<PackageReference Include="Ironbees.AgentFramework" />
paket add Ironbees.AgentFramework --version 0.1.0-preview
#r "nuget: Ironbees.AgentFramework, 0.1.0-preview"
#:package Ironbees.AgentFramework@0.1.0-preview
#addin nuget:?package=Ironbees.AgentFramework&version=0.1.0-preview&prerelease
#tool nuget:?package=Ironbees.AgentFramework&version=0.1.0-preview&prerelease
π Ironbees
νμΌμμ€ν 컨벀μ κΈ°λ° 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();
// λͺ
μμ μμ΄μ νΈ μ ν
var response = await orchestrator.ProcessAsync(
"Write a C# method to calculate fibonacci numbers",
agentName: "coding-agent");
// μλ λΌμ°ν
(ν€μλ κΈ°λ°)
var response = await orchestrator.ProcessAsync(
"fibonacci numbers in C#"); // "coding" ν€μλλ‘ μλ λΌμ°ν
ποΈ μν€ν μ²
βββββββββββββββββββββββββββββββββββββββββββββββ
β 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 |
| Semantic Kernel | π κ³νλ¨ | - |
| LangChain | π κ³νλ¨ | - |
νλ μμν¬ μ νμ μ€μ νλκ·Έ νλλ‘:
options.UseMicrosoftAgentFramework = true; // or false
π λ¬Έμ
- μμ κ°μ΄λ - μμΈν μ€μΉ λ° κ΅¬μ±
- Microsoft Agent Framework ν΅ν©
- λ΄μ₯ μμ΄μ νΈ - 5κ°μ§ λ΄μ₯ μμ΄μ νΈ
- μν€ν μ² - μ€κ³ λ° νμ₯μ±
π― μ€κ³ μμΉ
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 - κΈ°λ³Έ μ¬μ©λ²
- WebApiSample - RESTful API μλ²
πΊοΈ λ‘λλ§΅
v0.1.0 - νμ¬ (μ΄κΈ° 릴리μ€) β
- νμΌμμ€ν 컨벀μ κΈ°λ° λ‘λ
- Azure OpenAI ν΅ν©
- Microsoft Agent Framework ν΅ν©
- ν€μλ κΈ°λ° λΌμ°ν
- λ€μ€ νλ μμν¬ μ΄λν°
v0.2.0 - κ³ν
- Semantic Kernel μ΄λν°
- μλ² λ© κΈ°λ° λΌμ°ν
- μ±λ₯ μ΅μ ν
- μΆκ° μμ λ° λ¬Έμ
v0.3.0 - κ³ν
- LangChain μ΄λν°
- CLI λꡬ
- λ²‘ν° DB ν΅ν© (μ νμ )
π§ͺ ν μ€νΈ
dotnet test # 67κ° ν
μ€νΈ ν΅κ³Ό
π€ κΈ°μ¬
μ΄μμ PRμ νμν©λλ€.
ν΅μ¬ μ² ν μ μ§:
- μμ λνΌλ‘ μ μ§
- κ³Όλν κΈ°λ₯ μΆκ° μ§μ
- νμΌμμ€ν 컨벀μ μ€μ¬
π λΌμ΄μ μ€
MIT License - LICENSE μ°Έμ‘°
Ironbees - Filesystem convention-based LLM agent wrapper for .NET π
λ²μ : 0.1.0 (μ΄κΈ° λ² ν) | .NET: 9.0+ | μν: μ€νμ
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net9.0
- Azure.AI.OpenAI (>= 2.5.0-beta.1)
- Azure.Identity (>= 1.17.0)
- Ironbees.Core (>= 0.1.0)
- Microsoft.Agents.AI.OpenAI (>= 1.0.0-preview.251028.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.10)
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 | 338 | 11/18/2025 |
| 0.1.2 | 227 | 11/11/2025 |
| 0.1.0-preview | 139 | 10/30/2025 |
See CHANGELOG.md for release notes