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

LLM Tornado .NET 智能体工具包

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

FollowAgents 评估 · FARS-2.1
不推荐
50/ 100 五分制 2.5 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全7 / 29 · 1.2/5

证据显示:README 展示了 API 密钥的构造方式,但未提及权限最小化或用户确认机制。数据流透明度部分,README 描述了请求预览和转换功能,但未明确数据流向。敏感数据处理方面,README 提到 API 密钥,但未说明存储或保护措施。依赖安全方面,有 CI 构建,但未提及依赖扫描。外部影响方面,README 提到工具调用和 MCP,但未说明外部副作用控制。回滚方面,未提及。来源归属方面,README 列出了维护者,但未验证。扣分原因:缺乏用户确认、回滚机制,权限最小化证据不足。

2可靠稳定8 / 14 · 2.9/5

证据显示:README 和代码示例一致,但未提供完整的 API 文档。依赖可用性方面,NuGet 包存在,但未验证。失败消息方面,README 提到安全 API,但未详细说明错误处理。扣分原因:失败消息细节不足。

3适用触发10 / 18 · 2.8/5

证据显示:README 面向开发者,提供了多种场景示例。能力边界方面,README 列出了功能,但未明确限制。触发精度方面,工具调用示例明确,但未全面覆盖。环境适配方面,支持多种 .NET 框架和本地部署。扣分原因:触发精度和边界描述不够全面。

4规范维护12 / 18 · 3.3/5

证据显示:README 结构清晰,安装说明明确,命名稳定,示例丰富,但已知限制未明确。许可证为 MIT,版本变更日志在 News 部分,维护责任明确。扣分原因:已知限制未列出。

5有效结果9 / 13 · 3.5/5

证据显示:输出可用性方面,提供了多种响应格式。边际价值方面,多提供商支持增加了价值。成本效益方面,开源免费,但未提供性能数据。扣分原因:成本效益证据不足。

6证据核验4 / 8 · 2.5/5

证据显示:README 中的声明有链接支持,但未提供独立验证。交叉来源验证方面,有外部引用,但未深入。事实与推断分离方面,README 混合了事实和宣传。扣分原因:交叉验证和事实分离不足。

证据充分度: 评估于 2026年8月9日 审查版本 cbd67c4b332b
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:执行前用户确认、回滚或恢复路径
使用前请注意
  • API 密钥处理未说明安全存储方式,需谨慎使用。
  • 未提供用户确认机制,工具调用可能自动执行外部操作。
  • 依赖安全未提及扫描,需自行检查。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

这个 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 密钥。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents