agno-secrets

Resolves secrets for Agno agents via environment variables with AWS Secrets Manager fallback.

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/allankltsn/setup_kiro --skill agno-secrets-allankltsn
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: agno-secrets
Source: https://github.com/allankltsn/setup_kiro/tree/main/.kiro/skills/agno-secrets
Command: npx skills add https://github.com/allankltsn/setup_kiro --skill agno-secrets-allankltsn

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires boto3.

What problem does it solve? Agents that read API keys and credentials often fail silently mid-request or hardcode secrets in code. This Skill defines a fallback resolution pipe (environment variable first, AWS Secrets Manager second) with fail-fast behavior so a misconfigured agent never starts serving requests. ## Core Features & Use Cases - Fallback resolution pipe: Checks the standard environment variable first, then queries AWS Secrets Manager, treating empty strings as absent. - Fail-fast on missing config: Raises a MissingSecretError at composition time naming only the missing variable, never exposing secret values. - Testable port-and-adapter design: A SecretsProvider protocol with AWS and in-memory adapters keeps the resolver testable without network access, with lazy boto3 import. - Use Case: An Agno support agent needs OPENAI_API_KEY and GROQ_API_KEY. In production the keys live in a LocalStack-provisioned secret; locally a developer overrides via env vars, and if neither source has a required key the app refuses to boot. ## Quick Start Ask the agent to wire secret resolution into the composition root so required API keys resolve from environment variables with AWS Secrets Manager as fallback and fail fast when missing.

Frequently Asked Questions about agno-secrets

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I resolve API keys with AWS Secrets Manager fallback in Python?▼

Check os.environ for the variable first, then query a SecretsProvider adapter that reads a JSON secret from AWS Secrets Manager. If neither source returns a non-empty value and the variable is required, raise an exception naming the missing variable.

How to make an application fail fast when a required environment variable is missing?▼

Resolve all required configuration during the composition root or settings load, before serving requests. Raise a dedicated error like MissingSecretError that names the absent variable so the application never boots half-configured.

Can I test secret resolution without AWS credentials or network access?▼

Yes. Define a SecretsProvider protocol and inject an in-memory adapter holding a dictionary of secrets for tests. The AWS adapter imports boto3 lazily, so modules stay importable without the SDK installed.

Does the AWS Secrets Manager adapter work with LocalStack?▼

Yes. The boto3 client accepts an endpoint_url read from AWS_ENDPOINT_URL, so it targets LocalStack when that variable is set. The adapter reads a JSON secret such as suporte-sla-api-keys and caches it once per process.

Why should secret values never appear in logs or error messages?▼

Logging secret values leaks credentials into log aggregators and error trackers. The resolver contract names only the missing environment variable in exceptions and never stores resolved values in settings objects or messages.