用 Kiro 写代码的时候,经常需要调用大模型 API——测试 prompt、验证 RAG 流程、调试 Agent 逻辑。以前的做法是:写完代码 → 切到终端跑脚本 → 看输出 → 回来改代码 → 再跑。
现在通过 MCP(Model Context Protocol)把 Kiro 和 Amazon Bedrock 连起来,在 IDE 里就能直接调模型、查向量库、测试 RAG pipeline。开发体验完全不一样了。
整体架构
Kiro IDE / CLI│├── MCP Server: bedrock-models(调用 Bedrock 模型)├── MCP Server: bedrock-kb(查询 Bedrock Knowledge Bases)└── MCP Server: s3-vectors(操作 S3 向量存储)
三个 MCP Server 分别对应不同能力:
- bedrock-models:调用 Claude、Llama、Titan 等模型
- bedrock-kb:查询已建好的 Bedrock 知识库
- s3-vectors:直接操作 S3 Vectors 存储
配置 MCP 连接
在项目根目录创建 .kiro/mcp.json:
{"mcpServers": {"bedrock-models": {"command": "npx","args": ["-y", "@anthropic-ai/bedrock-mcp-server"],"env": {"AWS_REGION": "us-east-1","AWS_PROFILE": "default"}},"bedrock-kb": {"command": "python3","args": ["-m", "bedrock_kb_mcp"],"env": {"KNOWLEDGE_BASE_ID": "YOUR_KB_ID","AWS_REGION": "us-east-1"}}}
}
确保本地有 AWS 凭证配置(~/.aws/credentials 或环境变量),然后重启 Kiro。
验证连接是否成功:
> @bedrock-models 用 Claude Sonnet 回答:什么是 RAG?
如果看到模型回复,说明连通了。
场景一:直接在 IDE 里测试 Prompt
写 prompt 模板时,不用切出去单独跑:
# prompts/summarize.py
SYSTEM_PROMPT = """你是一个文档摘要助手。
用户会给你一段长文本,你需要:
1. 提取 3-5 个核心观点
2. 每个观点不超过 30 字
3. 最后给出一句话总结"""
写完直接在 Kiro 里测试:
> @bedrock-models 用上面的 system prompt,输入这段文本测试效果:
> [粘贴一段示例文本]
Kiro 通过 MCP 调用 Bedrock,直接返回模型输出。不满意就改 prompt 再试,迭代速度快很多。
场景二:开发 RAG Pipeline
这是我实际做的一个项目——给公司内部文档建知识库。
步骤 1:准备向量存储
先用 S3 Vectors 存文档的向量表示:
import boto3
import jsons3vectors = boto3.client('s3vectors', region_name='us-east-1')# 创建向量索引
s3vectors.create_index(vectorBucketName='my-knowledge-vectors',indexName='internal-docs',dimension=1024,distanceMetric='cosine'
)
步骤 2:文档切片和嵌入
from langchain.text_splitter import RecursiveCharacterTextSplittersplitter = RecursiveCharacterTextSplitter(chunk_size=512,chunk_overlap=50
)# 切片
chunks = splitter.split_text(document_text)# 调 Bedrock Titan Embeddings 生成向量
bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')for i, chunk in enumerate(chunks):response = bedrock.invoke_model(modelId='amazon.titan-embed-text-v2:0',body=json.dumps({'inputText': chunk}))embedding = json.loads(response['body'].read())['embedding']# 写入 S3 Vectorss3vectors.put_vectors(vectorBucketName='my-knowledge-vectors',indexName='internal-docs',vectors=[{'key': f'doc-chunk-{i}','data': {'float32': embedding},'metadata': {'text': chunk, 'source': 'internal-wiki'}}])
步骤 3:在 Kiro 里测试检索
代码写完后直接在 Kiro 里验证:
> @bedrock-kb 查询 "如何配置生产环境的数据库连接池"
Kiro 通过 MCP 调用 Bedrock Knowledge Base 的 Retrieve API,返回相关文档片段和相关度分数。
如果检索效果不好,你可以直接问 Kiro:
> 检索结果不太相关,帮我分析可能的原因。当前 chunk_size=512,overlap=50,用的 Titan Embeddings v2
Kiro 会给你优化建议(比如调 chunk size、换切片策略、加 metadata 过滤等)。
步骤 4:完整 RAG 调用
def rag_query(question: str) -> str:# 1. 检索相关文档retrieval = bedrock_agent.retrieve(knowledgeBaseId='YOUR_KB_ID',retrievalQuery={'text': question},retrievalConfiguration={'vectorSearchConfiguration': {'numberOfResults': 5}})# 2. 拼接上下文context = '\n\n'.join([r['content']['text'] for r in retrieval['retrievalResults']])# 3. 调用 Claude 生成回答response = bedrock.invoke_model(modelId='anthropic.claude-sonnet-4-20250514',body=json.dumps({'messages': [{'role': 'user','content': f'根据以下参考文档回答问题。\n\n参考文档:\n{context}\n\n问题:{question}'}],'max_tokens': 1024}))return json.loads(response['body'].read())['content'][0]['text']
场景三:调试 Agent 工具调用
如果你在开发 Bedrock Agent,需要调试工具调用(Function Calling)的逻辑:
> @bedrock-models 用 Claude Sonnet,带这个 tool 定义测试:
> tool: search_database(query: str, limit: int) -> list
> 用户问:"帮我查最近一周的异常订单,最多显示 10 条"
Kiro 会展示模型的 tool_use 输出:
{"type": "tool_use","name": "search_database","input": {"query": "status=abnormal AND created_at >= now() - interval 7 days","limit": 10}
}
直接在 IDE 里就能看到模型是否正确理解了意图、参数是否合理。不需要部署完整的 Agent 才能测试。
开发效率提升
用了这套配置一周,对比之前的工作方式:
| 操作 | 以前 | 现在 |
|---|---|---|
| 测试一个 prompt | 写脚本→终端跑→看输出→改→再跑 | IDE 里直接试 |
| 验证 RAG 检索 | 写测试代码→跑→看日志 | @bedrock-kb 直接查 |
| 调试 tool calling | 部署 Agent→调用→看 CloudWatch 日志 | IDE 里模拟 |
| 切换模型对比 | 改代码里的 modelId→重跑 | 对话里直接指定 |
保守估计,AI 应用开发的 debug 时间减少了 60%。主要省在"上下文切换"上——不用在 IDE、终端、AWS 控制台三个地方来回跳。
成本控制
通过 MCP 调用 Bedrock 和直接用 SDK 调用没有区别,按 Bedrock 标准 token 计费。几个控制成本的小技巧:
- 开发阶段用 Haiku:测试 prompt 逻辑时用 Claude Haiku(成本是 Sonnet 的 1/10),确认没问题了再切 Sonnet
- Titan Embeddings 很便宜:生成嵌入向量的成本远低于调用大模型,不用省着用
- Knowledge Base 检索免费:Retrieve API 本身不收费,只有底层存储(OpenSearch/S3 Vectors)按量计费
前置要求
- Kiro IDE 或 CLI(任意版本)
- AWS 账号,开通了 Bedrock 模型访问权限
- Node.js 18+(运行 MCP Server)
- 本地 AWS 凭证配置
如果还没开通 Bedrock 模型访问,去 AWS 控制台 → Bedrock → Model access 里勾选需要的模型,审批通常秒过。
小结
Kiro + Bedrock 通过 MCP 打通后,AI 应用开发变成了一个完整的闭环:
写代码 → 测试 prompt → 验证检索 → 调试 Agent → 优化迭代
全在一个工具里完成,不用在 5 个窗口之间来回切。对于做 RAG、Agent、AI 应用的开发者来说,这就是从"手动挡"换到"自动挡"的体验。
Kiro MCP 配置文档:https://kiro.dev/docs/
Amazon Bedrock 文档:https://docs.aws.amazon.com/bedrock/
Kiro 由亚马逊云科技提供支持。Amazon Bedrock 按量计费,无预付费。
