开发与工程 dotnet-sdkmulti-provider-inferenceagent-orchestrationmodel-context-protocolagent2agentvector-databasesfunction-calling

LLM Tornado .NET 智能体工具包

用统一 .NET SDK 连接多家模型并编排 AI 智能体工作流。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

LLM Tornado 是面向 .NET 的、与模型提供商无关的 SDK,用于构建 AI 智能体与工作流。核心库通过 TornadoApi、ChatModel 和 Conversation 提供聊天、流式输出、嵌入及富响应接口,并可按模型自动选择对应 API 密钥。LlmTornado.Agents 以 Orchestrator、Runner 和 Advancer 组织图式多智能体执行,支持 handoff、并行执行和 Mermaid 导出。LlmTornado.Mcp 提供 Model Context Protocol 互操作,LlmTornado.A2A 提供 Agent2Agent 集成;另有 Microsoft.Extensions.AI 互操作包。它可调用多家云端提供商,也可将请求发送到 Ollama、vLLM 或 LocalAI 等本地部署端点。

应用先用 TornadoApi 配置一个或多个 LLmProviders 与 API 密钥,再以 ChatModel 或模型字符串创建 Conversation。调用方追加系统消息和用户输入后,可通过 GetResponse() 获取文本,或用 GetResponseRich()、StreamResponseRich() 获取工具调用、模态内容和用量等富结果。模型请求的 Tool 或 ToolFunction 可由 FunctionCallHandler 立即解析并继续会话,也可延后处理。使用 LlmTornado.Mcp 时,客户端通过 McpClientFactory.CreateAsync(clientTransport) 创建 IMcpClient,调用 ListTornadoToolsAsync() 读取 MCP 工具,将其传给 ChatRequest,再以 ResolveRemote 执行远程工具。对于智能体工作流,LlmTornado.Agents 以 Orchestrator 图、Runner 节点和 Advancer 边协调专长智能体;库本身作为 .NET 应用中的 NuGet 组件运行,远程或本地推理服务由调用方提供。

  1. C# 后端团队需要在 OpenAI、Anthropic、Google、Groq 等模型之间切换,并希望主要修改 ChatModel 而非重写调用逻辑。
  2. 正在构建多步骤业务流程的 .NET 开发者,需要用 Orchestrator、Runner 与 Advancer 表达节点、边、handoff 和并行执行。
  3. 需要让模型调用天气、内部服务或其他 MCP Server 工具的应用团队,可将 IMcpClient 返回的工具转换为 Tornado Tool。
  4. 在本机或自管基础设施运行 Ollama、vLLM 或 LocalAI 的团队,需要把 Conversation 请求发送到自定义端点。
  5. 需要将模型函数调用解析为严格类型参数、并在主模型暂时不可用时使用备用模型的开发者,可使用 ToolkitChat、ChatFunction 和 ChatPlugin。

这个 Agent 有哪些优点和局限?

优点
  • 同一套 TornadoApi、ChatModel 和 Conversation 接口覆盖多家提供商,并支持以模型名自动解析提供商。
  • 智能体编排明确提供 Orchestrator、Runner、Advancer、handoff、并行执行与 Mermaid 导出。
  • MCP 与 A2A 有独立 NuGet 集成,MCP 示例覆盖工具发现、参数推断、远程执行和结果回传。
  • 支持富流式结果、立即或延后工具解析,以及针对网络级错误不抛异常的 ResponseRichSafe 接口。
局限
  • 采用方需要自行管理各云端提供商的 API 密钥、可用模型与网络连通性;示例不会代管这些服务。
  • 提供商功能并不必然一致;README 将详细端点支持指向 Feature Matrix,且对不支持严格 JSON Schema 的提供商会使用以“{”预填充的回退方式。
  • 本地模型路径依赖外部运行的 Ollama、vLLM 或 LocalAI 等服务,库仅负责连接和请求转换。
  • 与 Microsoft.Extensions.AI、MCP、A2A 和智能体编排相关能力分布在可选包中,项目需要按所需能力额外安装和集成。

如何安装或部署这个 Agent?

在已安装 .NET 的项目目录中执行:

dotnet add package LlmTornado

按需添加:

dotnet add package LlmTornado.Agents
dotnet add package LlmTornado.Mcp
dotnet add package LlmTornado.A2A
dotnet add package LlmTornado.Microsoft.Extensions.AI
dotnet add package LlmTornado.Contrib

调用云端提供商时,创建 TornadoApi 时必须提供对应提供商的 API 密钥;若使用本地部署,可创建 new TornadoApi(new Uri("http://localhost:11434")) 指向默认 Ollama 端口。

如何使用这个 Agent?

最小调用可先配置提供商和密钥,再创建会话:

TornadoApi api = new TornadoApi(LLmProviders.OpenAi, "OPEN_AI_KEY");
string? response = await api.Chat.CreateConversation("gpt-5-mini")
.AppendUserInput("Hello")
.GetResponse();

如需流式文本,改用 .StreamResponse(Console.Write)。如需 MCP,安装 LlmTornado.Mcp,使用 McpClientFactory.CreateAsync(clientTransport) 建立 IMcpClient,调用 ListTornadoToolsAsync(),并将返回的 List<Tool> 传入 ChatRequest 的 Tools。

常见问题

它是否只支持 OpenAI?
不是。README 列出 OpenAI、Anthropic、Google、Cohere、Groq、Mistral、DeepSeek 等多家提供商,并说明可用模型名称切换推理提供商。
是否必须使用云端 API?
不是。README 给出了指向默认 Ollama 地址 http://localhost:11434 的 TornadoApi 示例,并列出 vLLM、Ollama 和 LocalAI 的集成支持。
如何处理模型发起的工具调用?
可在 ChatStreamEventHandler 的 FunctionCallHandler 中立即填入 FunctionResult 并继续会话,也可从 GetResponseRich() 返回的富响应中延后解析。
能否接入 MCP 服务?
可以。安装 LlmTornado.Mcp 后,可通过 IMcpClient 列出工具,将工具放入 ChatRequest,并用 ResolveRemote 调用 MCP Server。
库本身的许可和调用成本如何?
该库采用 MIT 许可。README 未给出模型服务定价;调用商业提供商通常需要该提供商的 API 密钥。

相关 Agents