NetcoreKevin:.NET 企业级智能体管理框架
1. 框架简介
NetcoreKevin 是一款基于 .NET 8 的企业级智能体(AI Agent)管理框架,为团队提供智能体 Skill 与工具的可视化编排能力,并通过细粒度的角色权限体系实现智能体的安全授权与合规使用。框架完全开源,采用 Apache 2.0 协议,致力于降低企业构建、治理和运营 AI 智能体的复杂度。
GitHub:https://github.com/junkai-li/NetCoreKevin
gitee:https://gitee.com/netkevin-li
2. 核心特性
- 智能体 Skill 可视化编排:提供 Web 管理面板,用拖拽方式设计 Skill 流程,支持条件、循环、并行等节点。
- 工具集市与动态注册:内置 HTTP API、SQL 查询、Python 脚本、代码解释器等多种工具,支持动态上传 OpenAPI 规范自动生成工具。
- 用户-角色-权限三维授权:基于 RBAC + 策略授权的模型,精细控制谁可以创建、编辑、调用某个智能体。
- 多智能体协作:支持智能体间的消息路由和上下文共享,构建多 Agent 协作流程。
- 企业级观测:集成 OpenTelemetry,提供 Skill 执行追踪、工具调用耗时、Token 用量等仪表板。
- 插件化架构:Skill、Tool、Permission Provider 均可通过 NuGet 包或本地 DLL 热插拔。
- 多租户隔离:天然支持 SaaS 场景,租户间数据、智能体、工具完全隔离。
3. 整体架构
NetcoreKevin 采用清晰的分层架构与微内核设计,核心模块如下图所示(文字描述):
┌──────────────────────────────────────────────┐ │ NetcoreKevin.Studio │ │ (Blazor WebAssembly 管理端) │ ├──────────────────────────────────────────────┤ │ NetcoreKevin.AgentHub │ │ (智能体运行时,Skill引擎,工具调度器) │ ├──────────────┬───────────────┬───────────────┤ │ NetcoreKevin.│ NetcoreKevin. │ NetcoreKevin. │ │ Skills │ Tools │ Auth │ ├──────────────┴───────────────┴───────────────┤ │ 基础设施(EF Core, Redis, RabbitMQ) │ └──────────────────────────────────────────────┘- NetcoreKevin.Studio:面向管理员和开发者的可视化操作面板,管理智能体、Skill、工具和权限。
- NetcoreKevin.AgentHub:智能体运行时核心,负责 Skill 流程执行、工具动态调用、上下文管理。
- NetcoreKevin.Skills:Skill 定义、加载、编排引擎,支持 YAML/JSON 描述的 Skill 图。
- NetcoreKevin.Tools:工具注册中心,提供标准化接口对接各类外部能力。
- NetcoreKevin.Auth:权限与授权模块,提供策略评估、角色解析和令牌签发。
4. 智能体 Skill 与工具可视化管理
4.1 Skill 可视化设计器
在 Studio 中,用户可以通过拖拽节点创建智能体 Skill。Skill 节点分为:
- 入口节点:接收用户输入或上游智能体消息。
- LLM 节点:配置 Prompt 模板、绑定模型(OpenAI / 本地模型)。
- 工具节点:从工具集市选择工具,自动映射输入输出。
- 逻辑控制节点:条件判断、循环、并行。
- 输出节点:定义最终返回的结构化数据。
示例 Skill 定义(YAML):
name:customer_complaint_analysisentry:type:llmprompt:"分析以下客户投诉的情感倾向和紧急程度:{{input}}"model:gpt-4output:complaint_infotools:-name:create_jira_ticketwhen:complaint_info.urgency == 'high'parameters:summary:"投诉: {{complaint_info.summary}}"priority:"High"output:type:jsontemplate:|{ "sentiment": "{{complaint_info.sentiment}}", "ticket_id": "{{create_jira_ticket.id}}" }通过画布编排,上述 YAML 可直观拖拽生成,并实时调试运行。
4.2 工具集市
工具集市内置了常用连接器,并支持自定义工具上传:
- OpenAPI 工具:上传 Swagger JSON,系统自动生成工具卡片及参数表单。
- 数据库工具:配置连接串和 SQL 模板,生成参数化查询工具。
- 代码工具:在线编写 C#/Python 脚本,由沙箱执行并返回结果。
- 第三方服务工具:预集成 Azure AI Services、AWS Lambda 等。
所有工具均通过IToolExecutor接口接入,运行时提供链路跟踪和速率限制。
5. 用户角色权限与智能体授权
NetcoreKevin 的权限模型基于RBAC + 智能体策略,实现“谁能用、能怎么用、能用哪个智能体”的精准控制。
5.1 权限模型核心概念
- 用户 (User):系统登录实体,可关联多个角色。
- 角色 (Role):权限的集合,如 “AgentDeveloper”、“AgentUser”、“Admin”。
- 智能体权限项 (AgentPermission):按智能体划分的细粒度权限,包括:
agent.read– 查看智能体信息agent.invoke– 调用智能体agent.edit– 编辑 Skill/工具绑定agent.delete– 删除智能体agent.manage_auth– 管理智能体授权
- 授权策略 (Policy):根据角色+智能体+资源标签动态评估访问请求。
5.2 权限配置可视化
在 Studio 的权限管理页面,管理员可以:
- 为每个智能体定义所需权限级别。
- 向角色授予指定智能体的权限(支持批量操作)。
- 查看某个用户的最终权限集合(角色叠加)。
- 设置临时授权(如外部合作方限制调用次数和时间窗口)。
示例授权场景:
- 客服智能体
cs_agent仅允许Support_Role的成员调用,并限制每小时最大 100 次请求。 - 智能体工厂智能体
factory_analyst允许Engineering_Role编辑 Skill,但仅Maintenance_Role可调用其中“传感器读取”工具。
5.3 技术实现要点
后端使用 .NET 的IAuthorizationHandler结合自定义AgentRequirement进行授权检查:
publicclassAgentAuthorizationHandler:AuthorizationHandler<AgentRequirement,Agent>{protectedoverrideTaskHandleRequirementAsync(AuthorizationHandlerContextcontext,AgentRequirementrequirement,Agentresource){if(context.User.HasClaim("agent_permission",$"{resource.Id}:{requirement.Operation}"))context.Succeed(requirement);returnTask.CompletedTask;}}所有对 Agent Hub 的 API 调用都经过 ASP.NET Core 的 Policy 中间件,确保未授权用户无法访问任何智能体资源。
6. 可视化界面展示(部分页面描述)
- 智能体列表:卡片式展示,可快速看到每个智能体的状态(上线/下线)、拥有 Skill 版本、已授权角色数量。
- Skill 编辑器:全功能拖拽编排器,支持断点调试、上下文预览、版本管理和回滚。
- 工具集市:类“插件市场”界面,工具状态、请求次数一目了然,一键启用/禁用。
- 权限管理中心:左侧用户/角色树,右侧智能体-权限矩阵,支持 Excel 导入导出授权关系。