LLM Tornado .NET 智能体工具包
用统一 .NET SDK 连接多家模型并编排 AI 智能体工作流。
这个 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 组件运行,远程或本地推理服务由调用方提供。
- C# 后端团队需要在 OpenAI、Anthropic、Google、Groq 等模型之间切换,并希望主要修改 ChatModel 而非重写调用逻辑。
- 正在构建多步骤业务流程的 .NET 开发者,需要用 Orchestrator、Runner 与 Advancer 表达节点、边、handoff 和并行执行。
- 需要让模型调用天气、内部服务或其他 MCP Server 工具的应用团队,可将 IMcpClient 返回的工具转换为 Tornado Tool。
- 在本机或自管基础设施运行 Ollama、vLLM 或 LocalAI 的团队,需要把 Conversation 请求发送到自定义端点。
- 需要将模型函数调用解析为严格类型参数、并在主模型暂时不可用时使用备用模型的开发者,可使用 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。