如何使用Kimi API实现单次和多轮对话的Microsoft Agent Framework控制台应用?
摘要:引言 如果你的技术栈主要是 .NET,想要快速上手 Agent 开发,那么 Microsoft Agent Framework 是一个非常不错的选择。它提供了对话管理、上下文保持、工具调用等一系列功能,让你能专注于业务逻辑实现。 这篇文章用
引言
如果你的技术栈主要是 .NET,想要快速上手 Agent 开发,那么 Microsoft Agent Framework 是一个非常不错的选择。它提供了对话管理、上下文保持、工具调用等一系列功能,让你能专注于业务逻辑实现。
这篇文章用一个最小控制台应用,通过 maf + kimi ai 合作,完成下面的目标:
使用 Microsoft Agent Framework(NuGet 包名为 Microsoft.Agents.AI 体系)
使用 Kimi 的 OpenAI 兼容接口
实现单次对话
实现多轮对话(基于 Session 保留上下文)
你把代码复制后,只要配置好 KIMI_API_KEY 就能跑起来。
环境准备
.NET SDK 9.0+
Kimi API Key
一个控制台项目
创建项目并安装依赖:
dotnet new console -n AgentConsoleApp
cd AgentConsoleApp
dotnet add package Microsoft.Agents.AI
dotnet add package Microsoft.Agents.AI.OpenAI
dotnet add package OpenAI
开发实战
一、配置 Kimi API 的访问参数
注意:在实际开发中,确保妥善保管 API 密钥,避免泄露。
我这里把密钥放在了环境变量中,代码中通过读取环境变量来获取密钥。
macOS / Linux:
export KIMI_API_KEY="你的 kimi_api_key 放这里"
export KIMI_MODEL="moonshot-v1-8k"
export KIMI_BASE_URL="https://api.moonshot.cn/v1"
Windows PowerShell:
$env:KIMI_API_KEY="你的 kimi_api_key 放这里"
$env:KIMI_MODEL="moonshot-v1-8k"
$env:KIMI_BASE_URL="https://api.moonshot.cn/v1"
读取环境变量的配置类:
internal sealed class KimiSettings
{
public required string ApiKey { get; init; }
public required string Model { get; init; }
public required string BaseUrl { get; init; }
public static KimiSettings FromEnvironment()
{
var apiKey = Environment.GetEnvironmentVariable("KIMI_API_KEY");
var model = Environment.GetEnvironmentVariable("KIMI_MODEL") ?? "moonshot-v1-8k";
var baseUrl = Environment.GetEnvironmentVariable("KIMI_BASE_URL") ?? "https://api.moonshot.cn/v1";
if (string.IsNullOrWhiteSpace(apiKey))
{
throw new InvalidOperationException("缺少环境变量 KIMI_API_KEY。
