AgileAI:在 SK、MAF 之外,我想做一个更顺手的 .NET AI 组件
如果把 .NET 生态里的 AI 组件放在一起看,各人最认识的通常还是 Semantic Kernel,客岁开始微软也在一连推进 Microsoft Agent Framework(MAF)。但在我本身的实践里,这条门路固然值得关注,却并不总是充足顺手:MAF 恒久带着比力显着的 preview / prerelease 色彩,而真正拿它去快速拼一个能跑、能扩展、还能继承往产物层走的东西,体验也没有我等候得那么轻。
于是我开始想:
在 .NET 天下里,除了 SK 和 MAF 之外,能不能有另一种更轻量、更直接、更恰当快速做 AI 应用和 Agent 的组件化方案?
这就是 AgileAI 的出发点。
对我来说,AgileAI 也是一次 AI 编程实验。整个项目重新到尾全部由 AI 完成,我本人没有手写一行代码。而它给出的答案是:可以,而且已经靠近能一连演进的水平。
AgileAI 是什么?
一句话说,AgileAI 是一个面向 .NET 的 AI SDK / Agent 组件,同时堆栈里还自带一个当地优先的 AI 工作台 AgileAI.Studio。
懒的读笔墨的可以看视频
它大抵分成两层:
第一层:底层 SDK / Runtime
这一层紧张用来:
- 快速接入差别 LLM
- 管理对话和流式输出
- 支持 Tool Calling
- 管理 Session 恒久化
- 支持 Skill
- 提供 Agent Runtime
第二层:上层产物 AgileAI.Studio
这一层紧张负责:
- 可视化管理模子毗连
- 创建 Agent
- 发起和生存对话
- 审批当地工具实行
- 展示工具/技能使用情况
- 作为一个真正的当地 AI 工作台运行
换句话说,它既可以被当成一个 .NET AI 开发组件,也可以被当成一个 完备可运行的当地 AI 产物原型。
AgileAI 能做什么?
如果只看效果,AgileAI 紧张做了两件事:
1)快速对接 LLM
AgileAI 当前支持的 Provider 包罗:
- OpenAI Chat Completions
- OpenAI-compatible Chat Completions
- Azure OpenAI
- OpenAI Responses API
- Gemini
- Claude
如果你在 .NET 里做 AI 应用,不想每换一个模子供应商就改一套代码,AgileAI 提供了一层同一抽象,让你可以用相对同等的方式发起哀求、处理处罚相应、接流式输出和工具调用。
它底层的焦点接口围绕这些概念构造:
- IChatClient
- IChatModelProvider
- IChatSession
- IAgentRuntime
这套抽象的意义,不光是“写得优雅”,而是实着实在地低落了切 Provider、切模子和做同一封装的资本。
2)快速打造 Agent
除了“调用模子”,AgileAI 更想办理的是“怎么快速搭一个 Agent”。
以是它在焦点层里内建了这些东西:
- 多轮对话 ChatSession
- 流式相应
- Tool Calling
- Session 恒久化
- Skill 选择和一连
- Middleware 风格的实行拦截
- 当地工具注册与调用
它不是只办理“问模子一句话”,而是办理“让 Agent 真正运行起来”的那一层。
一个最简朴的使用示例
如果你想快速感受 AgileAI 的风格,可以看一个非常范例的用法:先注册 Provider,然后创建 ChatSession,末了直接发哀求。
下面这个例子来自文件体系工具 sample,挺能代表它的思绪:- using AgileAI.Abstractions;
- using AgileAI.Core;
- using AgileAI.DependencyInjection;
- using AgileAI.Extensions.FileSystem;
- using AgileAI.Providers.OpenAICompatible.DependencyInjection;
- using Microsoft.Extensions.DependencyInjection;
- var services = new ServiceCollection();
- services.AddAgileAI();
- services.AddOpenAICompatibleProvider(options =>
- {
- options.ProviderName = "openapi";
- options.ApiKey = Environment.GetEnvironmentVariable("OPENAI_COMPATIBLE_API_KEY")!;
- options.BaseUrl = Environment.GetEnvironmentVariable("OPENAI_COMPATIBLE_BASE_URL")!;
- options.RelativePath = "chat/completions";
- });
- var serviceProvider = services.BuildServiceProvider();
- var chatClient = serviceProvider.GetRequiredService<IChatClient>();
- var toolRegistry = new InMemoryToolRegistry()
- .RegisterFileSystemTools(options =>
- {
- options.RootPath = @"D:\workspace\MyProject";
- options.MaxReadCharacters = 12000;
- });
- var session = new ChatSessionBuilder(chatClient, "openapi:gpt-5.4")
- .WithToolRegistry(toolRegistry)
- .Build();
- var response = await session.SendAsync(
- "Use search_files to find mentions of AgileAI.Studio, then use read_files_batch to inspect the best matching files and summarize them.");
- Console.WriteLine(response.Message?.TextContent);
复制代码 这个例子很能分析 AgileAI 的定位:
- 先接上模子
- 再注册工具
- 然后直接进入 Agent 式调用
中心没有太重的 ceremony,也没有一大堆必须先明白完才气开始用的框架概念。它的目标很明白:
尽快跑起来。
内置 Tool:不但能调用,还思量了安全界限
AgileAI 里很值得单独拿出来说的一块,是它的 tool 体系。
文件体系工具
堆栈里已经实现了一组当地文件体系工具,包罗:
- list_directory
- search_files
- read_file
- read_files_batch
- write_file
除此之外,源码里着实还实现了更多文件使用工具,比如:
- create_directory
- move_file
- patch_file
- delete_file
- delete_directory
它不光是一个“让模子看文件”的小插件,而是已经开始具备比力完备的当地工作区使用本领。
run_local_command
这是 Studio 里最关键的一个工具之一。
它答应 Agent 哀求实行当地下令,比如 shell / bash / pwsh 下令。
但这里最紧张的不是“它能实行下令”,而是:
它不是直接实行,而是走审批流程。
也就是:
- 模子提出下令实行哀求
- 体系停息当前工具流程
- 用户看到待实行下令
- 用户手动答应或拒绝
- 答应后再继承后续实行
这个筹划很关键。由于 AI Tool Calling 真正落地时,最大的风险之一就是当地实行本领。AgileAI 没有回避这件事,而是把它做成了显式审批流程。
web_fetch
Studio 里还内置了一个 web_fetch 工具,可以让 Agent 拉取网页内容。
这类工具看起来简朴,但很有用。只要进入 Agent 场景,你很快就会碰到“必要自动获取外部信息”的标题。与其让调用端本身绕很多逻辑,不如把它收敛成同一的 tool 本领。
Skill 支持:让 Agent 有“脚色本领包”
AgileAI 的另一个亮点,是它支持 Skill。
这里的 Skill,不是那种非常重的插件生态,而更像是:
一组基于当地文件、带有元信息和提示束缚的本领包。
堆栈里 Skill 的实现包罗:
- 当地 Skill 文件加载
- Skill Manifest 剖析
- Skill Registry
- Skill Planner
- Skill Continuation Policy
- Prompt-based Skill Execution
AgileAI.Studio:全功能演示项目
如果说前面的 AgileAI 更像“底层本领”,那 AgileAI.Studio 就是它的产物化形态。
Studio 的技能栈很直接:
- 后端:ASP.NET Core + EF Core + SQLite
- 前端:Vue 3 + Vite + Pinia + Naive UI
- 通讯方式:REST + SSE 流式相应
- 测试:Playwright
它现在已经能完成这些事变:
- 设置 Provider Connection
- 添加和测试模子
- 创建 Agent
- 管剖析话
- 流式谈天
- 表现 Tool 使用纪录
- 表现 Skill 使用状态
- 对 run_local_command 举行审批
- 用 web_fetch 拉网页内容
也就是说,Studio 已经不是一个“摆拍式 Demo UI”,而是一个有真实工作流的当地 AI Workspace 雏形。
几张 Studio 截图
堆栈里已经带了几张 Playwright 天生的截图,恰好能对应它现在的几个紧张页面。
Models 页面
这里可以管理模子毗连和模子设置。
如果你要做一个真正能切换差别 Provider 的 AI 工作台,这一页着实是根本中的根本。
Agents 页面
这一页是 Agent 的焦点设置区。
你可以在这里界说:
- Agent 名称
- Prompt
- 温度
- 最大 Token
- 可用 tools
- 可用 skills
Chat 页面
这是 Studio 最像“产物”的部门。不但能谈天,还能看到:
- 流式复兴
- Agent 当前使用的 skill
- 用过哪些 tools
- 工具审批状态
- 汗青会话列表
结语
如果你近来正筹划使用 .NET 来开发 Agent 大概可以试试这个新的框架 AgileAI 。有什么意见大概发起都可以给我提 Issue。
👉👉👉 https://github.com/kklldog/AgileAI
免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金. |