AgentScope.NET:基于 .NET 的多智能体框架

在 AI Agent 大爆发的 2025 年,各种 Agent 框架如雨后春笋般涌现。然而,大多数框架都基于 Python 或 Java,.NET 开发者常常只能望洋兴叹。

目录
  1. AgentScope.NET:基于 .NET 的多智能体框架
  2. 前言
  3. 1. 什么是 AgentScope?
  4. 核心特点
  5. AgentScope.NET 定位
  6. 2. 项目现状
  7. 完成度
  8. 已实现功能 ✅
  9. 开发中 ⏳
  10. 计划中 📋
  11. 3. 核心概念
  12. 3.1 ReAct 模式
  13. 3.2 Agent 类型
  14. 3.3 多智能体通信
  15. 3.4 Pipeline 编排
  16. 4. 项目结构
  17. 5. 快速开始
  18. 前置要求
  19. 安装
  20. 配置环境变量
  21. 基础用法
  22. 运行测试
  23. 6. 核心组件详解
  24. 6.1 Hook 系统
  25. 6.2 持久化内存
  26. 6.3 工具系统
  27. 7. 与其他框架对比
  28. AgentScope.NET 的独特优势
  29. 8. 开发路线图
  30. 阶段 1:核心基础设施(进行中)
  31. 阶段 2:高级功能
  32. 阶段 3:生态扩展
  33. 9. 适用场景
  34. ✅ 推荐场景
  35. ⚠️ 暂不推荐
  36. 10. 如何参与
  37. 贡献方式
  38. 优先任务
  39. 11. 总结
  40. 资源链接

AgentScope.NET:基于 .NET 的多智能体框架

前言

在 AI Agent 大爆发的 2025 年,各种 Agent 框架如雨后春笋般涌现。然而,大多数框架都基于 Python 或 Java,.NET 开发者常常只能望洋兴叹。

AgentScope.NET 的出现改变了这一局面——它是阿里巴巴开源项目 AgentScope 的 .NET 移植版本,让 .NET 开发者也能轻松构建 LLM 驱动的多智能体应用。


1. 什么是 AgentScope?

AgentScope 是阿里巴巴团队开发的一个生产就绪、易于使用的多智能体(Multi-Agent)框架,旨在帮助开发者构建基于大语言模型(LLM)的智能体应用。

核心特点

特性说明
简单易用5分钟快速上手,内置 ReAct Agent、工具、记忆、规划等功能
可扩展性强支持 MCP 和 A2A 协议,消息中心支持灵活的多智能体编排
生产就绪支持本地部署、云端无服务器部署或 K8s 集群部署
容错机制内置多层容错,处理 LLM 的不确定性

AgentScope.NET 定位

AgentScope.NET 是 AgentScope-Java 的 1:1 移植版本,保持与 Java 版本的完全兼容性:

  • ✅ 兼容的 JSON 消息格式
  • ✅ 共享 SQLite 数据库模式
  • ✅ 通用的 .env 配置
  • ✅ REST API 兼容性

2. 项目现状

完成度

功能点: 23/54 (42.6%)
测试: 79+ (100% 通过)
代码: 5,750+ 行

已实现功能 ✅

模块状态说明
Agent 系统✅EnhancedReActAgent with ReAct loop
Hook 系统✅Pre/Post Reasoning/Acting hooks
Session 管理✅线程安全的会话管理
消息系统✅Builder 模式的消息传递
持久化内存✅SQLite + Entity Framework Core
工具系统✅可扩展的工具接口
配置管理✅.env 文件支持
TUI 界面✅Terminal.Gui 终端界面
Uno Platform GUI✅跨平台图形界面(基础)

开发中 ⏳

模块状态说明
Formatter 系统⏳OpenAI/Anthropic/DashScope 格式化器
真实 LLM 集成⏳OpenAI/Azure OpenAI 模型

计划中 📋

模块说明
Pipeline 编排顺序/并行/条件执行
Plan 管理PlanNotebook 任务规划
RAG 系统知识检索增强生成
TracingOpenTelemetry 可观测性
MCP/A2A 协议多 Agent 通信

3. 核心概念

3.1 ReAct 模式

ReAct(Reasoning + Acting)是 AgentScope 的核心模式,支持推理与行动交替进行:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   推理      │ ──▶ │   行动      │ ──▶ │   观察      │
│  分析情况   │     │  调用工具   │     │  获取结果   │
└─────────────┘     └─────────────┘     └─────────────┘
         ▲                                          │
         └──────────────────────────────────────────┘
                    (循环迭代直到任务完成)

3.2 Agent 类型

Agent 类型功能
ReActAgent支持推理和工具使用的 Agent
DialogAgent通用对话 Agent
UserAgent用户代理,用于人机交互
StreamableAgent流式响应 Agent
CallableAgent可调用 Agent

3.3 多智能体通信

MsgHub(消息中心) 是多智能体通信的核心:

// Agent1 的消息自动广播给其他 Agent
var hub = new MsgHub(participants: new[] { agent1, agent2, agent3 });
await hub.Broadcast(msg);

3.4 Pipeline 编排

支持多种编排模式:

管道类型用途
SequentialPipeline顺序执行
FanoutPipeline并行执行
if-else条件分支
switch多路分支
while-loop循环执行

4. 项目结构

agentscope.net/
├── src/
│   ├── AgentScope.Core/           # 核心库
│   │   ├── Agent/                 # Agent 基类和接口
│   │   ├── Hook/                  # Hook 扩展系统
│   │   ├── Session/               # Session 和 State 管理
│   │   ├── Message/               # 消息系统
│   │   ├── Memory/                # 记忆管理(SQLite)
│   │   ├── Model/                 # LLM 模型接口
│   │   ├── Tool/                  # 工具系统
│   │   ├── Formatter/             # LLM 格式化器
│   │   └── Configuration/         # 配置管理
│   ├── AgentScope.TUI/            # 终端界面应用
│   └── AgentScope.Uno/            # Uno Platform GUI
├── examples/                      # 示例代码
├── tests/                         # 测试(79+ tests)
└── .env.example                   # 环境变量配置示例


5. 快速开始

前置要求

  • .NET 9.0 或更高版本
  • SQLite

安装

git clone https://github.com/linkerlin/agentscope.net.git
cd agentscope.net
dotnet build

配置环境变量

cp .env.example .env

# 编辑 .env 文件
# OPENAI_API_KEY=your_key_here
# AZURE_OPENAI_API_KEY=your_key_here

基础用法

using AgentScope.Core;
using AgentScope.Core.Message;
using AgentScope.Core.Model;
using AgentScope.Core.Memory;

// 创建模型
var model = MockModel.Builder()
    .ModelName("mock-model")
    .Build();

// 创建内存
var memory = new SqliteMemory("agentscope.db");

// 创建 Agent
var agent = ReActAgent.Builder()
    .Name("Assistant")
    .SysPrompt("You are a helpful AI assistant.")
    .Model(model)
    .Memory(memory)
    .Build();

// 发送消息
var userMsg = Msg.Builder()
    .Role("user")
    .TextContent("Hello!")
    .Build();

var response = await agent.CallAsync(userMsg);
Console.WriteLine(response.GetTextContent());

运行测试

# 运行所有测试 (79+ tests, 100% passing)
dotnet test

# 详细输出
dotnet test --logger "console;verbosity=detailed"


6. 核心组件详解

6.1 Hook 系统

Hook 系统允许在 Agent 执行的关键节点插入自定义逻辑:

public class LoggingHook : HookBase
{
    public override Task PreReasoningAsync(PreReasoningEvent evt)
    {
        Console.WriteLine($"[PreReasoning] {evt.Message}");
        return Task.CompletedTask;
    }

    public override Task PostActingAsync(PostActingEvent evt)
    {
        Console.WriteLine($"[PostActing] Result: {evt.Result}");
        return Task.CompletedTask;
    }
}

// 注册 Hook
agent.AddHook(new LoggingHook());

6.2 持久化内存

基于 SQLite 的持久化存储:

var memory = new SqliteMemory("agentscope.db");

// 存储消息
await memory.SaveAsync(message);

// 检索历史
var history = await memory.GetAsync(sessionId, limit: 100);

6.3 工具系统

定义和使用自定义工具:

public class WeatherTool : ToolBase
{
    public override string Name => "get_weather";
    public override string Description => "获取指定城市的天气";

    public override async Task<ToolResult> ExecuteAsync(JsonElement args)
    {
        var city = args.GetProperty("city").GetString();
        // 调用天气 API
        return ToolResult.Success($"{city} 晴天,25°C");
    }
}

// 注册工具
agent.RegisterTool(new WeatherTool());


7. 与其他框架对比

特性AgentScope.NETLangChainAutoGenSemantic Kernel
平台.NETPythonPython.NET
多智能体✅ 原生支持⚠️ 需扩展✅ 核心特性⚠️ 有限支持
消息交换✅ MsgHub❌✅❌
容错机制✅ 多层⚠️ 基础⚠️ 基础⚠️ 基础
分布式✅ Actor 模型❌✅❌
可视化✅ Uno Platform⚠️❌❌
学习曲线低中中中

AgentScope.NET 的独特优势

1. .NET 原生:无需学习 Python,直接使用 C# / F# 2. 1:1 移植:与 Java 版本完全兼容,共享生态 3. 企业友好:SQLite + EF Core,易于集成现有系统 4. 跨平台 GUI:Uno Platform 支持 Windows/macOS/Linux/Web


8. 开发路线图

阶段 1:核心基础设施(进行中)

  • [x] Agent 基础架构
  • [x] Hook 系统
  • [x] Session 管理
  • [x] SQLite 持久化
  • [ ] OpenAI Formatter
  • [ ] 真实 LLM 集成

阶段 2:高级功能

  • [ ] Pipeline 编排系统
  • [ ] Plan 管理(PlanNotebook)
  • [ ] RAG 支持
  • [ ] Agent 变体(Streamable, Callable 等)

阶段 3:生态扩展

  • [ ] Anthropic/DashScope/Gemini Formatter
  • [ ] MCP 协议支持
  • [ ] A2A 协议支持
  • [ ] OpenTelemetry 集成
  • [ ] 专业工具(文件、代码、多模态)

9. 适用场景

✅ 推荐场景

  • 企业内部 AI 助手:结合现有 .NET 技术栈
  • 多 Agent 协作系统:客服、分析、决策等
  • 自动化工作流:RPA + AI 智能化
  • 知识库问答:RAG 系统
  • 代码助手:开发辅助工具

⚠️ 暂不推荐

  • 需要完整 Python AI 生态的场景
  • 需要最新 LLM 特性的前沿研究
  • 大规模分布式部署(仍在开发中)

10. 如何参与

贡献方式

1. 报告问题:在 GitHub Issues 提交 Bug 报告 2. 功能建议:提出新功能需求 3. 代码贡献:提交 Pull Request 4. 文档完善:改进文档和示例

优先任务

根据项目状态,以下任务最需要帮助:

1. OpenAI Formatter 实现:完成真实 LLM 集成 2. Pipeline 系统:多 Agent 编排 3. 单元测试:提高测试覆盖率 4. 示例代码:更多使用场景示例


11. 总结

AgentScope.NET 是一个填补 .NET 生态空白的项目,它让 .NET 开发者能够:

1. 使用熟悉的语言:C# / F# 构建 AI Agent 2. 快速上手:5 分钟创建第一个 Agent 3. 生产就绪:SQLite 持久化、线程安全、容错机制 4. 企业集成:与现有 .NET 技术栈无缝对接

虽然目前完成度约 42%,但核心架构已经成熟,是 .NET 开发者探索 AI Agent 开发的绝佳选择。


资源链接

  • GitHub: https://github.com/linkerlin/agentscope.net
  • 原始项目: https://github.com/modelscope/agentscope
  • 官方文档: https://doc.agentscope.io/

*本文基于 2025 年 2 月的项目状态撰写,项目仍在快速迭代中,请以 GitHub 最新代码为准。*

👍 1

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens