GI

grandamenium/infisical-skill

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

10 stars 质量 40 趋势 18

Infisical secret management skill for AI agents — keep API keys out of agent context

概览

When an AI agent holds API keys in its environment variables or system prompt, those secrets are: - Visible in logs, traces, and conversation history - Copied into every subagent or spawned worker context - Exposed if a prompt injection attack extracts the context window - Rotated manually with no audit trail The blast radius of a single leaked key expands dramatically when that key lives in a long-running agent session touching dozens of services. Infisical is an open-source secret vault. Instead of baking API keys into agent context, the agent fetches each secret at the moment it is needed, uses the value in the tool call, and discards it. The secret never persists in conversation history or logs. Go to app.infisical.com and sign up (free tier available). Or self-host: see Infisical self-hosting docs. In the Infisical dashboard, create a new project (e.g., "my-agent"). Note the — you will need it. Inside the project, navigate to the environment (or create one).

README

以下为原文 README 节选,完整内容请查看原文。

Infisical Secret Management Skill for AI Agents

The Problem: Secrets in Agent Context Are a Security Risk

When an AI agent holds API keys in its environment variables or system prompt, those secrets are:

  • Visible in logs, traces, and conversation history
  • Copied into every subagent or spawned worker context
  • Exposed if a prompt injection attack extracts the context window
  • Rotated manually with no audit trail

The blast radius of a single leaked key expands dramatically when that key lives in a long-running agent session touching dozens of services.

The Solution: Runtime Secret Fetching via Infisical

Infisical is an open-source secret vault. Instead of baking API keys into agent context, the agent fetches each secret at the moment it is needed, uses the value in the tool call, and discards it. The secret never persists in conversation history or logs.

Agent needs Stripe key
    → calls fetch_secret("STRIPE_SECRET_KEY")
    → Infisical returns the value
    → agent uses value in Stripe API call
    → value is gone — not stored, not logged

Setup

1. Create an Infisical account

Go to app.infisical.com and sign up (free tier available). Or self-host: see Infisical self-hosting docs.

2. Create a project

In the Infisical dashboard, create a new project (e.g., “my-agent”). Note the Project ID — you will need it.

3. Add secrets

Inside the project, navigate to the prod environment (or create one). Add secrets as key-value pairs, e.g.:

OPENAI_API_KEY    = sk-...
STRIPE_SECRET_KEY = sk_live_...
SENDGRID_API_KEY  = SG....

4. Create a service token

Go to Project Settings > Service Tokens and create a token scoped to the environment your agent uses (e.g., prod, read-only). Copy the token — it starts with st..

5. Configure your agent

Set two environment variables (these are the only things agents need in context):

INFISICAL_TOKEN=st.your-service-token-here
INFISICAL_PROJECT_ID=your-project-id-here

These are low-value credentials — they grant read access only, can be rotated instantly, and carry no secret payload themselves.

Quick Start

import os
from fetch_secret import fetch_secret

token = os.environ["INFISICAL_TOKEN"]
project_id = os.environ["INFISICAL_PROJECT_ID"]

# Fetch at the moment you need it
api_key = fetch_secret("OPENAI_API_KEY", token, project_id)

# Use immediately — do not assign to a long-lived variable
response = openai_client.chat.completions.create(
    model="gpt-4o",
    api_key=api_key,
    messages=[...]
)
# Bash version
SECRET=$(./fetch_secret.sh OPENAI_API_KEY)
curl -H "Authorization: Bearer $SECRET" https://api.openai.com/...
unset SECRET

Files in This Skill

File Purpose
fetch_secret.py Python implementation using the Infisical v3 API
在 GitHub 查看完整 README

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add grandamenium/infisical-skill
新手?先看 mcpskill.org 教程 →