feat: add agentcore-observability-setup skill - #65
Conversation
Add a skill that validates and bootstraps Amazon Bedrock AgentCore observability using a verify-where-reachable / prescribe-everywhere-else model. Covers Runtime agents, Memory and Gateway resources, built-in tools, and non-runtime hosts (Lambda, ECS, EKS, on-prem, multi-cloud) with three read-only IAM tiers and graceful degradation. Register the skill in llms.txt and add a gated read-only inline policy (EnableAgentCoreObservabilitySetup) to the CloudFormation skill policies for the Tier 2/3 permissions not covered by AIDevOpsAgentAccessPolicy.
|
Two items to address:
|
Fix the two items raised by pbraz-aws on PR aws#65: 1. Correct the IAM service prefix in SKILL.md. The Tier 2 permission table listed 'bedrock-agentcore-control:List*'. The '-control' suffix is only the SDK client name; the IAM prefix per the Service Authorization Reference is 'bedrock-agentcore'. The CloudFormation policy and references/iam-tiers.md were already correct; the permission table and the Host-detection bullet in Step 2 are updated to 'bedrock-agentcore:ListAgentRuntimes' so a hand-written policy from either spot resolves. 2. Flip R6 and R7 framing to reflect the unified span destination becoming the default. Per the AgentCore release notes, agents created after 2026-07-20 in supported Regions default to the agent's own log group for spans. R7 (the X-Ray log-group resource policy) therefore applies by default for any new agent, not only when the customer opts in. Updated: - SKILL.md Step 3.2 points 5 and 6 - references/checks-catalog.md R6 and R7 rows and Notes bullet - references/remediation-runtime.md 'Span destination' section R7 remains N/A only for pre-2026-07-20 agents still on shared 'aws/spans' or when the customer explicitly opts out via 'UNIFIED_TRACES_DESTINATION_ENABLED=false'.
Both fixed in d548a10 |
Bring in upstream changes since the branch was pushed, including the newly merged EKS Upgrade Readiness (PR aws#48), Redshift Support Specialist, Analytics OpenSearch Expertise, and AI/ML Access Diagnostics skills, plus assorted MCP-server, doc, and repo-tooling updates on main. Conflict resolution: llms.txt — both sides added entries under '## Available Skills'. Kept upstream's new entries in the order they appear on main and moved the AgentCore Observability Setup entry back to the tail of the list, matching the append-ordering convention used elsewhere in the file. No behavioural change to the agentcore-observability-setup skill: SKILL.md, references/checks-catalog.md, references/remediation-runtime.md, and the CloudFormation policy still carry the PR aws#65 review fixes from d548a10.
|
Looks good. Approved |
ams-thakkar
left a comment
There was a problem hiding this comment.
Scanned for repo-convention compliance and IAM safety (leaving AgentCore/Bedrock domain correctness to the SME). One should-fix before merge, otherwise this is in great shape.
1. (should fix — breaks the docs build) Relative .md link in README. README.md links to ](references/iam-tiers.md). The docs pipeline copies each skill README into docs/skills/<id>.md, and from there that relative path doesn't resolve — I ran mkdocs build --strict with this skill staged and it aborts:
WARNING - Doc file 'skills/agentcore-observability-setup.md' contains a link 'references/iam-tiers.md',
but the target 'skills/references/iam-tiers.md' is not found
Aborted with 1 warnings in strict mode!
Since the docs-deploy workflow runs --strict, this would fail on merge. Fix: make it an absolute GitHub URL (https://github.com/aws/tools-for-devops-agent/blob/main/skills/agentcore-observability-setup/references/iam-tiers.md), the way other skills' READMEs link their own reference files. (SKILL.md and references/ themselves don't enter the docs build, so backtick mentions / relative links are only a problem in README.md.)
What's verified good:
- ✅
llms.txtentry present, well-formed, accurate. - ✅ CHANGELOG
## 1.0.0, version-synced with SKILL frontmatter. - ✅ README has the non-production disclaimer; no stale
aws-samplesorg references. - ✅ Structure: required files present, eval JSON valid (incl.
evals/files/agent-context.json),.skilleval.yamlSTR-016 ignore, frontmatter complete, description 913/1024. - ✅ CFN IAM grant is read-only. The added
EnableAgentCoreObservabilitySetupinline policy is all Get/List/Describe (bedrock-agentcore:Get*/ListAgentRuntimes,ecs:Describe*/ListTasks,eks:DescribeCluster,lambda:GetFunctionConfiguration,logs:Describe*,xray:GetTraceSegmentDestination) — no mutations, correctly gated (parameter + Condition, defaulttrue),SkillPolicySummaryupdated.
Holding approval only on the README link (#1) since it breaks the strict docs build. Fix that and I'll approve — the verify-where-reachable / prescribe-everywhere-else design is clean.
… link in README Address ams-thakkar's PR aws#65 review (5146834011): the docs pipeline copies each skill README into 'docs/skills/<id>.md', from where a relative 'references/iam-tiers.md' link no longer resolves and 'mkdocs build --strict' aborts. Point the link at the absolute GitHub URL, matching the guidance in the review comment. Only the README changes; SKILL.md and references/ files are not part of the docs build and are unaffected.
|
Added missing relative link in read me with full absolute Github link for md file here |
ams-thakkar
left a comment
There was a problem hiding this comment.
Thanks for the fix — re-verified and approving.
- ✅ README relative-link fixed:
references/iam-tiers.mdis now an absolute GitHub URL, and no relative.mdlinks remain. Re-ranmkdocs build --strictwith the skill staged against the current tip (incl. your upstream-main merge) — passes, 0 warnings, so the docs deploy won't break. - ✅ Still-good from the first pass:
llms.txtentry, CHANGELOG## 1.0.0(version-synced), non-production disclaimer, eval JSON valid, and the CFN grant is all read-only Get/List/Describe, correctly gated.
Scope note: reviewed convention + IAM safety; leaning on the Bedrock SME for AgentCore domain correctness. The verify-where-reachable / prescribe-everywhere-else design is clean. Nice work.
Summary
Adds the
agentcore-observability-setupskill: validates and bootstraps Amazon Bedrock AgentCore observability so customers can trace agent reasoning, detect silent failures, and measure performance before an outage. It operates on a single principle — verify where reachable, prescribe everywhere else:opentelemetry-instrument, framework tracing) — validated by effect (are spans arriving?) and emitted as exact steps.Covers AgentCore Runtime agents (primary), Memory and Gateway resources, built-in tools, and agents hosted outside the runtime (Lambda, ECS, EKS, on-prem, multi-cloud). Three read-only IAM tiers with graceful degradation; the skill reports the exact scoped policy needed to unlock further checks and never mutates anything.
Testing
report): overall Grade A,"passed": true. Audit 100/A (0 critical/warning), Trigger 1.00 (6/6, 100% precision both ways), Functional passed (quality gain with lower token cost).IAM / CloudFormation
Tier 1 (CloudWatch Logs/Metrics telemetry-arrival reads) is covered by
AIDevOpsAgentAccessPolicy. Tier 2/3 add read-onlybedrock-agentcore(Get/List runtime),xray:GetTraceSegmentDestination,logs:DescribeDeliveries/DeliverySources/DeliveryDestinations/ResourcePolicies, andlambda:GetFunctionConfiguration/ecs:DescribeTaskDefinition,DescribeServices,ListTasks/eks:DescribeCluster. Added as a gated inline policy (EnableAgentCoreObservabilitySetup, defaulttrue) tocloudformation/devops-agent-skill-policies.yaml, with theSkillPolicySummaryoutput updated. All permissions are read-only.Taskei
V2323594559 — accepted by the Project Nebula team (reviewer: pbraz).
Checklist
versionandauthorin metadatanamein frontmatter matches directory namedescriptionclearly states what/when to activate"passed": true(Grade A)llms.txt.skilleval.yamlpresent (canonical STR-016 ignore)mainBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache License 2.0.