发现 AgentCore 项目
发现是所有其他技能信任的通行证。它以证据回答——为每一项声明提供文件和行号——并在无法回答时表明“未解决”,因为错误的区域或遗漏的归属会使后续每一步都出错:Terraform 生成的网关若与 AgentCore CLI 拥有的资源冲突,每次部署都会引发冲突。
${CLAUDE_SKILL_DIR} 由技能运行时设置,指向该技能自身的目录。请在以下每条命令中直接使用它;同级技能的脚本位于 ${CLAUDE_SKILL_DIR}/../<skill>/scripts/。
流程
-
发现
python3 ${CLAUDE_SKILL_DIR}/scripts/discover.py <project>使用
--json获取结构化形式;使用--focus agentcore,app,auth,region,terraform,tracing缩小范围。指向仓库根目录,而非子目录,以便解析模块调用和 Terragrunt 栈。 -
报告 按以下顺序报告
Found块:AgentCore(入口和资源)、应用(框架、MCP 服务器、/mcp路由及其背后的 Lambda)、认证、区域(含可用性行)、Terraform(约束、锁、Terragrunt)、链路追踪。然后是Missing块,最后是发现项。 -
选项 报告的
Options部分已排序,且每条都附有成本等级。逐一读出;不要自行发明新的选项。 -
确认 使用
AskUserQuestion确认下一个技能,然后使用Skill调用它。发现本身从不执行写入操作。 -
不验证 任何内容:发现没有副作用需要检查。如果用户纠正了某个事实(如区域、归属),则使用修正后的输入重新运行,而不是在报告中用文字覆盖。
检测对象
| 问题 | 读取的证据 | 详情 |
|---|---|---|
| 是否有任何内容在 AgentCore 上,谁拥有它? | .tf、CDK 源码、agentcore.json、.bedrock_agentcore.yaml、boto3 调用 | what-discovery-detects.md |
| 使用哪个框架和 MCP 服务器? | import、装饰器、registerTool、FastMCP | framework-signatures.md |
| 使用哪个区域,那里提供哪些服务? | provider 块、变量默认值、Terragrunt、tfvars | lib/agentcore_skills/data/regions.json 中的区域表 |
| 令牌目前如何工作? | aws_cognito_*、aws_apigatewayv2_authorizer | what-discovery-detects.md |
DSC0xx 系列
| ID | 严重级别 | 触发条件 |
|---|---|---|
DSC001 | 错误 | 没有可读取的内容:无 Terraform、代码、容器或清单 |
DSC002 | 警告 | 无法解析 AWS 区域 |
DSC003 | 警告 | 存在 Starter Toolkit 配置(其 CLI 已不再支持) |
DSC004 | 警告 | AgentCore 由多个工具声明(Terraform、CDK、AgentCore CLI) |
DSC005 | 警告 | 核心服务在解析的区域中不可用 |
决策规则
- 未使用别名的 provider 决定区域。 用于 CloudFront 证书的带别名的
us_east_1provider 会被列出,但不会被选中。 - 以
/mcp结尾的路由即为 MCP 端点。 其背后的 Lambda 通过集成找到,而非按名称查找。 - 缺失表示“未找到”,而非“不存在”。 模式无法在 TypeScript 中证明否定结论;应说明搜索了什么。
脚本
| 命令 | 功能 | 退出码 |
|---|---|---|
scripts/discover.py <project> [--focus ...] [--json] | 执行清单和差距报告 | 0 无阻塞,1 有错误,2 目标无效 |
完成检查清单
-
discover.py已针对仓库根目录运行,并显示了输出。 - 已说明区域、其证据和可用性行。
- 已指出每个 AgentCore 的归属(Terraform、CDK、AgentCore CLI、工具包),或“尚无”。
- 已提供带成本等级的推荐选项,且用户已做出选择。