本文介绍如何使用kagent部署一个简单的智能体。该智能体使用的模型为阿里云百炼提供的qwen3-coder-plus,使用的MCP服务为fetch(根据URL获取网页内容)。该智能体可以完成实时获取网页内容并进行总结的任务。
准备工作
在ACK集群中新建kagent命名空间。
使用ACK应用市场或者ACK集群,在kagent命名空间中安装kagent-crds和kagent应用。
开通阿里云百炼服务,并第一步:获取 API Key。
步骤一:创建ModelConfig
在环境变量中注册百炼的API Key,并通过Secret来保存和使用。
export PROVIDER_API_KEY=${你的百炼APIKey} kubectl create secret generic bailian-apikey -n kagent --from-literal credential="$PROVIDER_API_KEY"创建ModelConfig。
kubectl -n kagent apply -f - <<EOF apiVersion: kagent.dev/v1alpha2 kind: ModelConfig metadata: name: bailian-provider-config spec: model: qwen3-coder-plus apiKeySecret: bailian-apikey apiKeySecretKey: credential openAI: baseUrl: https://dashscope.aliyuncs.com/compatible-mode/v1 provider: OpenAI EOF
步骤二:部署fetch MCP Server
在ACK集群中部署fetch MCP Server。
kubectl -n kagent apply -f - <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: streamablehttp-fetch-deployment spec: replicas: 1 selector: matchLabels: app: streamablehttp-fetch template: metadata: labels: app: streamablehttp-fetch spec: containers: - name: streamablehttp-fetch-container image: registry-cn-hangzhou.ack.aliyuncs.com/dev/streamablehttp-fetch:latest --- apiVersion: v1 kind: Service metadata: name: streamablehttp-fetch-service spec: selector: app: streamablehttp-fetch ports: - protocol: TCP port: 3000 targetPort: 3000 type: ClusterIP EOF
步骤三:注册MCPServer
创建RemoteMCPServer资源。
kubectl -n kagent apply -f - <<EOF apiVersion: kagent.dev/v1alpha2 kind: RemoteMCPServer metadata: name: streamablehttp-fetch spec: description: A Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption. protocol: STREAMABLE_HTTP sseReadTimeout: 5m0s terminateOnClose: true timeout: 30s url: http://streamablehttp-fetch-service:3000/ EOF确认RemoteMCPServer创建状态。
kubectl get RemoteMCPServer -n kagent预期输出:
NAME PROTOCOL URL ACCEPTED streamablehttp-fetch STREAMABLE_HTTP http://streamablehttp-fetch-service:3000/ True
步骤四:创建agent
创建问答agent。
kubectl -n kagent apply -f - <<EOF apiVersion: kagent.dev/v1alpha2 kind: Agent metadata: name: gateway-api-professor namespace: kagent spec: declarative: modelConfig: bailian-provider-config stream: true systemMessage: |- 你是一个友好且乐于助人的代理,使用 streamablehttp-fetch 工具从以下地址获取GatewayAPI 信息来回答用户关于GatewayAPI的问题。 # 链接 - intro: https://gateway-api.sigs.k8s.io/ - api-overview: https://gateway-api.sigs.k8s.io/concepts/api-overview/ - use-case: https://gateway-api.sigs.k8s.io/concepts/use-cases/ - servicemesh: https://gateway-api.sigs.k8s.io/mesh/ - implementations: https://gateway-api.sigs.k8s.io/implementations/ - 1.4版本支持概况:https://gateway-api.sigs.k8s.io/implementations/v1.4/ - 完整spec,页面比较大:https://gateway-api.sigs.k8s.io/reference/spec/ # Instructions - 如果用户问题不清楚,在运行任何工具之前先请求澄清 - 对用户回答要友好,热情 - 如果你不知道如何回答问题,不要编造答案 回答 "抱歉,我不知道如何回答这个问题" 并请用户进一步澄清问题 - 如果用户的问题是总结、概述类型的,请确保通读全文后再回答。 # Response format - 总是以Markdown格式进行回复。 - 你的回复需要包含你所执行的操作的总结以及对于结果的解释。 tools: - type: McpServer mcpServer: apiGroup: kagent.dev kind: RemoteMCPServer name: streamablehttp-fetch toolNames: - fetch description: 这个智能体主要回答和GatewayAPI Spec相关的问题。 type: Declarative EOF确认agent创建状态。
kubectl get pod -n kagent预期输出:
NAME READY STATUS RESTARTS AGE gateway-api-professor-7cb6496b9d-l7nlj 1/1 Running 0 3m1s kagent-controller-794fc765df-hqswt 1/1 Running 0 45m kagent-ui-569cb875c6-h55mg 1/1 Running 0 45m streamablehttp-fetch-deployment-75d5cd86cf-h9rvp 1/1 Running 0 4m3s
步骤五:访问agent
kagent默认提供了Web UI可以直接与agent进行交互。
将kagent-ui服务通过端口转发至本地。
kubectl port-forward -n kagent service/kagent-ui 8082:8080在浏览器中通过
localhost:8082访问agent。问答示例一:Gateway API中有哪些API?


问答示例二:现在哪个实现支持的Gateway API功能最全面?


该文章对您有帮助吗?