本文介紹如何使用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-intl.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功能最全面?


-