博客 / 詳情

返回

使用 Kiro AI IDE 開發 基於Amazon EMR 的Flink 智能監控系統實踐

概述

本文介紹如何使用 Kiro AI IDE 開發 Amazon EMR Flink 智能監控系統,重點分享基於 Strands Agents MCP 和 Amazon Data Processing MCP 的開發實踐,以及 Spec 驅動開發 的完整流程。

項目地址:https://github.com/yangguangfu007/emr-flink-monitoring-agent

🔥 想利用生成式AI開發工具解放雙手,卻苦於應用效果不夠完善、流程不夠規範?
✨ 亞馬遜雲科技 Kiro 登場!採用“規範驅動”開發理念,結合 Agent Hooks 自動化系統,1小時讓小白變身生產級遊戲製作人!
🔛 速來雲上探索實驗室,體驗 Kiro 開發獨立遊戲,從需求到部署全掌握!
👉 點擊這裏,即刻開啓 AI 開發之旅!

Kiro AI IDE 核心能力

1. Spec 驅動開發

Kiro 引入了 Spec 的概念,這是一種結構化的需求描述方式:

image.png

開發流程:

  1. 用自然語言描述需求 → 生成 requirements.md
  2. AI 理解需求並生成設計方案 → 生成 design.md
  3. 將設計方案分解為具體任務 → 生成 tasks.md
  4. 逐個實現任務,生成代碼

2. Steering (引導規則)

Steering 是 Kiro 的知識管理系統,用於定義項目規範:

image.png

Steering 文件會自動注入到 AI 的上下文中,確保生成的代碼符合項目規範。

3. MCP (Model Context Protocol) 集成

Kiro 支持 MCP 服務器,可以擴展 AI 的能力:

  • Strands Agents MCP:提供 Strands Agents文檔和示例
  • Amazon Data Processing MCP:提供 Amazon Glue、Amazon EMR、Amazon Athena 等服務的操作能力
  • 自定義工具和命令

技術選型與架構

技術棧

後端: – Python 3.10+ – FastAPI (異步 Web 框架) – Strands Agents(多 Agent 框架) – boto3 (Amazon SDK)

前端: – React 18 + TypeScript – Ant Design (UI 組件庫) – Vite (構建工具)

AI: – Amazon Bedrock

項目架構

image.png

基於 MCP 的開發實踐

1. 配置 Strands Agents MCP

在 .kiro/settings/mcp.json 中配置:

{
  "mcpServers": {
    "strands-agents": {
      "command": "uvx",
      "args": ["strands-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": ["search_docs", "fetch_doc"]
    }
  }
}

使用 MCP 工具查詢 Strands Agents文檔:

我:如何使用 Strands Agents實現 Agents as Tools 模式?

Kiro:讓我查詢 Strands Agents文檔…
[調用 strands-agents MCP: search_docs(“agents as tools”)]

根據文檔,實現步驟如下:

  1. 創建子 Agent 類
  2. 實現 as_tool() 方法
  3. 在主 Agent 中註冊為工具

[生成示例代碼]

2. 配置 Amazon Data Processing MCP

{
  "mcpServers": {
    "aws-dp": {
      "command": "uvx",
      "args": ["awslabs.aws-data-processing-mcp-server@latest"],
      "env": {
        "AWS_REGION": "us-east-1"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

使用 MCP 工具操作亞馬遜雲科技服務:

我:幫我查詢 Amazon EMR 集羣 j-xxx 的信息

Kiro:[調用 aws-dp MCP: describe_emr_cluster(“j-xxx”)]

集羣信息:
– 狀態:RUNNING
– Master 節點:m5.xlarge
– Core 節點:3 × m5.xlarge
– VPC:vpc-xxx

Spec 驅動開發實踐

第 1 步:創建 Requirements

與 Kiro 對話描述需求:

我:我想開發一個基於 Amazon EMR 集羣的智能監控 agent系統,該系統第一期功能:監控 Flink 任務、分析任務狀態並提供優化建議。

Kiro:我理解了您的需求。讓我為您創建項目 Spec…

image.png

生成的 requirements.md 包含:- 用户故事 (User Stories) – 驗收標準 (Acceptance Criteria) – 非功能性需求 (Performance, Security)

第 2 步:生成 Design

Kiro 基於需求自動生成設計方案:

image.png

[生成 .kiro/specs/emr-flink-monitoring-agent/design.md]

第 3 步:任務分解

Kiro 將設計方案分解為具體任務:

image.png

[生成 .kiro/specs/emr-flink-monitoring-agent/tasks.md]

第 4 步:執行任務

逐個執行任務,Kiro 自動生成代碼。

核心功能開發

1. 多 Agent 系統

基於 Strands Agents的”Agents as Tools”模式實現:

# Orchestrator 將子 Agent 註冊為工具
self.tools = [
    self.flink_agent.as_tool(),
    self.general_agent.as_tool()
]

# LLM 自主選擇合適的 Agent
async for event in bedrock_stream(
    model="us.anthropic.claude-haiku-4-5-20251001-v1:0",
    messages=[{"role": "user", "content": message}],
    tools=self.tools
):
    yield event

2. AI 分析器 (智能降級)

async def analyze_job(self, job_data: dict) -> AnalysisResult:
    try:
        # 優先使用 AI 分析
        return await self.ai_analyzer.analyze(job_data)
    except Exception as e:
        # 降級到規則分析
        return self.rule_analyzer.analyze(job_data)

3. 流式輸出

後端使用 Strands Agents的 stream_async():

async for event in agent.stream_async(user_message):
    yield f"data: {json.dumps(event)}\n\n"
前端使用 EventSource 接收:
const eventSource = new EventSource('/api/chat');
eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  // 實時更新 UI
};

Kiro 最佳實踐

1. 充分利用 Steering 規則

在項目開始時定義好規範:

.kiro/steering/language.md

– 代碼註釋使用中文
– 日誌使用英文
– 專有名詞保持英文

.kiro/steering/work-style.md

– 修改優先於創建
– 避免創建臨時文件
– 保持項目整潔

2. 使用 Spec 驅動開發

不要直接讓 Kiro 生成代碼,而是先創建 Spec:

  1. md → 功能需求、性能需求、安全需求
  2. md → 架構設計、模塊劃分、接口設計
  3. md → 任務分解

然後讓 Kiro 逐個實現任務。

3. 善用 MCP 工具

  • 使用 Strands Agents MCP 查詢文檔
  • 使用 Amazon Data Processing MCP 操作亞馬遜雲科技服務
  • 自定義 MCP 服務器擴展能力

4. 迭代優化

不要期望 Kiro 一次生成完美的代碼:

  1. 第 1 輪:生成基礎功能
  2. 第 2 輪:添加錯誤處理
  3. 第 3 輪:優化性能
  4. 第 4 輪:添加測試
  5. 第 5 輪:完善文檔

實際案例:從需求到上線

Day 1:需求分析和架構設計 (2 小時)

  • 與 Kiro 對話描述需求
  • 生成md、design.md、tasks.md

Day 2-3:核心功能開發 (5 小時)

  • 任務 1:指標收集器 (30 分鐘)
  • 任務 2:AI 分析器 (45 分鐘)
  • 任務 3:多 Agent 系統 (1 小時)
  • 任務 4:FastAPI 接口 (20 分鐘)
  • 任務 5:React 前端 (2 小時)

Day 4:測試和優化 (3 小時)

  • 單元測試 (40 分鐘)
  • 端到端測試 (2 小時)
  • 代碼審查 (20 分鐘)

總耗時:10 小時 (需求到上線)
傳統方式預估:60-80 小時
效率提升6-8

總結

通過使用 Kiro AI IDE 開發 Amazon EMR Flink 監控系統,我們深刻體會到 AI 輔助開發的價值:

  1. 效率提升:開發效率提升 6-8 倍
  2. 質量提升:代碼規範性 100%,測試覆蓋率 85%
  3. 學習加速:通過 AI 生成的代碼學習新技術
  4. 決策輔助:AI 幫助做出正確的技術選型

核心亮點:

  • Spec 驅動開發:結構化需求描述,逐步實現
  • MCP 集成:擴展 AI 能力,查詢文檔和操作亞馬遜雲科技服務
  • Steering 規則:確保代碼符合項目規範
  • 迭代優化:逐步完善,而非一次完美

參考資源

  • 項目地址
  • Kiro 官網
  • Strands Agents SDK
  • Amazon Bedrock

*前述特定亞馬遜雲科技生成式人工智能相關的服務目前在亞馬遜雲科技海外區域可用。亞馬遜雲科技中國區域相關雲服務由西雲數據和光環新網運營,具體信息以中國區域官網為準。

本篇作者
image.png

🔥 想利用生成式AI開發工具解放雙手,卻苦於應用效果不夠完善、流程不夠規範?
✨ 亞馬遜雲科技 Kiro 登場!採用“規範驅動”開發理念,結合 Agent Hooks 自動化系統,1小時讓小白變身生產級遊戲製作人!
🔛 速來雲上探索實驗室,體驗 Kiro 開發獨立遊戲,從需求到部署全掌握!
👉 點擊這裏,即刻開啓 AI 開發之旅!
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.