Skip to content

feat: add agentcore-observability-setup skill - #65

Merged
ams-thakkar merged 4 commits into
aws:mainfrom
vipulg1993:feature/agentcore-observability-setup
Sep 9, 2026
Merged

feat: add agentcore-observability-setup skill#65
ams-thakkar merged 4 commits into
aws:mainfrom
vipulg1993:feature/agentcore-observability-setup

Conversation

@vipulg1993

Copy link
Copy Markdown

Summary

Adds the agentcore-observability-setup skill: 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:

  • VERIFY (read-only APIs): CloudWatch Transaction Search state, runtime/agent log groups and data arrival, spans flowing, session metrics, Memory/Gateway log & trace deliveries, X-Ray log-group resource policy, and Lambda/ECS host config.
  • PRESCRIBE (cannot be read directly): code-level OTEL instrumentation (ADOT distro, 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

  • Manual testing in DevOps Agent (Isengard): skill activated on natural-language prompts (not named), reached Tier 2, and produced correct findings on both a healthy account and an induced-fault scenario (Transaction Search disabled), where it identified the disabled Transaction Search as the CRITICAL root cause and prescribed remediation.
  • Agent Skill Eval (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-only bedrock-agentcore (Get/List runtime), xray:GetTraceSegmentDestination, logs:DescribeDeliveries/DeliverySources/DeliveryDestinations/ResourcePolicies, and lambda:GetFunctionConfiguration / ecs:DescribeTaskDefinition,DescribeServices,ListTasks / eks:DescribeCluster. Added as a gated inline policy (EnableAgentCoreObservabilitySetup, default true) to cloudformation/devops-agent-skill-policies.yaml, with the SkillPolicySummary output updated. All permissions are read-only.

Taskei

V2323594559 — accepted by the Project Nebula team (reviewer: pbraz).

Checklist

  • SKILL.md has version and author in metadata
  • name in frontmatter matches directory name
  • description clearly states what/when to activate
  • README.md includes non-production disclaimer
  • CHANGELOG.md present
  • Tested in DevOps Agent (skill activates consistently)
  • Agent Skill Eval "passed": true (Grade A)
  • Registered in llms.txt
  • .skilleval.yaml present (canonical STR-016 ignore)
  • No internal Amazon tool names in submitted content
  • No customer data, account IDs, or credentials
  • Working against latest main

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache License 2.0.

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.
@pbraz-aws

Copy link
Copy Markdown

Two items to address:

  1. The Tier 2 table in SKILL.md lists bedrock-agentcore-control:List*.
    That prefix doesn't exist in IAM — the Service Authorization Reference
    shows the service prefix is bedrock-agentcore (the -control suffix is only the SDK client name for
    the control plane). Your CloudFormation policy and references/iam-tiers.md already get this right
    with bedrock-agentcore:ListAgentRuntimes, so it's just the SKILL.md line that's out of sync and
    would mislead anyone hand-writing a policy. Can you change that row to
    bedrock-agentcore:ListAgentRuntimes?

  2. Unified span destination is now the default. Per the release notes, agents created
    after July 20, 2026 in supported Regions default to their own log group for spans. The skill still
    treats the X-Ray log-group resource policy (R7) as the opt-in exception and the span-destination
    mode (R6) as INFO/LOW — which is backwards for any new agent, where R7 now applies unless the
    customer opts out. Can you note the default-on date and flip R7 to "applies by default for
    agents created after 2026-07-20"?

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'.
@vipulg1993

Copy link
Copy Markdown
Author
  1. SKILL.md Tier 2 table: bedrock-agentcore-control:List* is not a real IAM prefix (that's only the SDK client name). Change to bedrock-agentcore:ListAgentRuntimes — CFN and iam-tiers.md already have it right.

  2. R6/R7 framing is backwards. Per the AgentCore release notes, agents created after 2026-07-20 default to the unified span destination. Flip R7 from "opt-in exception" to "applies by default for agents created after 2026-07-20" and note the date.

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.
@paulbrazell

Copy link
Copy Markdown

Looks good. Approved

@ams-thakkar ams-thakkar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.txt entry present, well-formed, accurate.
  • ✅ CHANGELOG ## 1.0.0, version-synced with SKILL frontmatter.
  • ✅ README has the non-production disclaimer; no stale aws-samples org references.
  • ✅ Structure: required files present, eval JSON valid (incl. evals/files/agent-context.json), .skilleval.yaml STR-016 ignore, frontmatter complete, description 913/1024.
  • CFN IAM grant is read-only. The added EnableAgentCoreObservabilitySetup inline 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, default true), SkillPolicySummary updated.

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.
@vipulg1993

Copy link
Copy Markdown
Author

Added missing relative link in read me with full absolute Github link for md file here

@ams-thakkar ams-thakkar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix — re-verified and approving.

  • ✅ README relative-link fixed: references/iam-tiers.md is now an absolute GitHub URL, and no relative .md links remain. Re-ran mkdocs build --strict with 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.txt entry, 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.

@ams-thakkar
ams-thakkar merged commit 92934c7 into aws:main Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants