周末折腾了一下 Kiro IDE 的 Spec 模式搭 Agent,从写代码到部署上线,全程不到 3 小时。记录一下过程,给同样在找 Agent 开发方案的同学参考。
氛围编程(Vibe Coding)一句话生成个原型倒是快,但离生产还差十万八千里——没有文档规范,代码质量不可控,部署到云上还要操心隔离性、扩展性、安全策略。
Kiro IDE 的 Spec-driven 模式 + Amazon Bedrock AgentCore 的免运维沙箱,刚好把这条路打通了。我跟着官方的两个案例走了一遍,记录下来。
为什么不能只靠 Vibe Coding
先说清楚问题。现在 AI 编程工具能力越来越强,一句话生成一个小项目完全没问题。但企业级 Agent 有几个硬性要求:
- 隔离性:Agent 必须跑在完全隔离的沙箱里,防数据泄露。会话结束后自动清理所有数据
- 快速启动:Agent 调用很频繁,需要几百毫秒级别的启动时间
- 扩展性:C 端应用可能几百个并发,传统虚拟机扩不动
- 工程规范:没有需求文档、设计文档、任务拆解,代码改三次就乱了
氛围编程解决了"能不能做出来"的问题,但没解决"能不能上线"的问题。
Kiro Spec 模式:从需求到代码的结构化流程
Kiro 有两种模式:
- Vibe 模式:问答式,适合快速原型和探索
- Spec 模式:结构化开发,自动生成 Requirements(需求)→ Design(设计)→ Tasks(任务)
Spec 模式的好处是每个步骤都有文档规范。你给它一段业务需求描述,它会:
- 拆解成具体的需求列表
- 生成架构设计方案
- 分解成可执行的开发任务
- 逐个执行任务并跟踪进度
跟纯聊天式的 AI 编程比,这种方式在复杂项目里稳定得多。
案例1:金融逾期处理 Agent
案例1是金融场景的逾期处理 Agent。在 Kiro 里用 Spec 模式:
需求输入:
构建一个金融逾期处理Agent,能够:
1. 接收逾期账户信息
2. 根据逾期天数和金额分级处理
3. 自动生成催收策略
4. 记录处理日志
Kiro 自动拆解成需求文档、架构设计、任务列表,然后逐步生成代码。
核心代码结构:
from strands import Agent, tool
from strands.models.bedrock import BedrockModel
# 定义工具:查询逾期账户
@tool
def query_overdue_accounts(days_overdue: int) -> dict:
"""查询超过指定天数的逾期账户"""
# 实际场景连接数据库
return {
"accounts": [
{"id": "A001", "amount": 50000, "days": days_overdue, "level": "high"},
{"id": "A002", "amount": 8000, "days": days_overdue, "level": "medium"}
]
}
# 定义工具:生成催收策略
@tool
def generate_collection_strategy(account_id: str, level: str) -> str:
"""根据逾期等级生成催收策略"""
strategies = {
"high": "电话催收 + 律师函 + 上报征信",
"medium": "短信提醒 + 电话催收",
"low": "短信提醒"
}
return strategies.get(level, "人工审核")
# 创建 Agent
model = BedrockModel(
model_id="anthropic.claude-sonnet-4-20250514",
region_name="us-east-1"
)
agent = Agent(
model=model,
tools=[query_overdue_accounts, generate_collection_strategy],
system_prompt="你是一个金融逾期处理专员,负责分析逾期账户并制定催收策略。"
)
# 执行
response = agent("查询逾期超过30天的账户,并为每个账户生成催收策略")
print(response)
案例2:智能过敏原分析 Agent
第二个案例更有意思——分析食品成分,判断是否含有用户的过敏原。
@tool
def analyze_ingredients(product_name: str) -> dict:
"""分析食品成分"""
# 实际场景调用食品数据库 API
return {
"product": product_name,
"ingredients": ["小麦粉", "鸡蛋", "牛奶", "白砂糖", "黄油"],
"allergens": ["小麦(麸质)", "鸡蛋", "牛奶"]
}
@tool
def check_allergen_risk(allergens: list, user_allergies: list) -> dict:
"""检查过敏风险"""
risks = [a for a in allergens if any(ua in a for ua in user_allergies)]
return {
"risk_level": "high" if risks else "safe",
"matched_allergens": risks
}
agent = Agent(
model=model,
tools=[analyze_ingredients, check_allergen_risk],
system_prompt="你是一个食品安全专家,帮助用户分析食品中的过敏原风险。"
)
response = agent("我对鸡蛋和牛奶过敏,分析一下这个蛋糕能不能吃")
部署到 AgentCore:免运维 + 安全隔离
代码写好了,怎么上云?Amazon Bedrock AgentCore 解决了部署这一步。
AgentCore 的核心能力:
- Firecracker microVM:每个 Agent 会话运行在独立的微型虚拟机里,硬件级隔离
- 几百毫秒启动:比传统虚拟机快几个数量级
- 自动扩缩:不需要预置实例,按需创建和销毁
- 会话结束即销毁:数据不留存,天然满足合规
除了运行时,AgentCore 还提供一系列生产级组件:
| 组件 | 功能 |
|---|---|
| Memory | Agent 记忆管理 |
| Identity | 认证和授权 |
| Gateway | 统一访问入口 |
| Guardrails | 安全策略 |
| Observability | 可观测性 |
| Evaluation | 效果评估 |
| Code Interpreter | 代码运行环境 |
| Browser | 浏览器工具 |
部署命令:
# 安装 AgentCore CLI
pip install bedrock-agentcore-cli
# 初始化项目
agentcore init --runtime python3.12
# 部署到云端
agentcore deploy --agent-name overdue-processor \
--region us-east-1 \
--memory 512 \
--timeout 300
部署完成后,Agent 自动获得 HTTPS 端点,支持流式响应。
开发流程总结
整个流程跑下来:
- 业务调研(30分钟):明确 Agent 要解决什么问题
- Kiro Spec 生成(1小时):需求 → 设计 → 任务 → 代码
- 本地测试(30分钟):验证工具调用和对话流程
- AgentCore 部署(15分钟):一条命令上云
- 集成测试(30分钟):端到端验证
总计不到 3 小时,从业务需求到生产级部署。
适用场景
AgentCore 适合这些场景:
- 广告营销流程自动化
- 电商搜索 Agent
- IT 巡检和运维
- 数据分析
- 多 Agent 协作的办公助理
- 代码助手
不太适合:在线数据库事务处理(OLTP)、实时交易系统这类对延迟要求极端的场景。
整体感受:Spec 模式在复杂项目里的可控性比纯聊天式好很多,AgentCore 的部署体验也很丝滑。值得一试。
参考 以 Kiro 快速部署云上 Agent:只需几个小时,从业务需求到部署于 Amazon Bedrock Agentcore 落地 整理,结合实际开发经验补充代码示例。