gabrielmoreira/agent-skills-mirror/llm-provider-integration

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Tainted

Author "gabrielmoreira" has blocked skill(s)

Adding an LLM provider to RedAmon: the credential boundary (keys must never reach scan containers), prefix-routed model ids, and the provider registry. A misrouted model id or a leaked key are the two failures this guards. Trigger: adding or editing an LLM provider; editing parse_model_provider in agentic/orchestrator_helpers/llm_setup.py, the webapp provider-type registry, the user_llm_providers model, or an LLM call site that passes an API key; a non-chat provider type (TypeSafe Jev) or a path that picks "any provider row".

Install

npx vskill@latest install gabrielmoreira/agent-skills-mirror/llm-provider-integration

SKILL.md

When to Use

  • Adding a new LLM provider (OpenAI-compatible or otherwise) the agent can use.

For a non-LLM external API tool, use agentic-tool-integration.


Critical Rules

  • NEVER let a provider API key reach a scan container. Keys live in exactly

two places: Postgres user_llm_providers rows and, in transit, on the wire between webapp and agent. The recon / scan / MCP containers must never see them. Do not thread a provider key through recon settings or container env.

  • NEVER add a model id that is not prefix-routed. Anything other than

claude-* and bare OpenAI ids MUST carry a provider/<model> prefix, resolved by parse_model_provider() at agentic/orchestrator_helpers/llm_setup.py:67. An unprefixed id routes to the wrong provider silently.

  • NEVER treat every `user_llm_providers` row as a chat LLM. A non-chat type

(today jev, the TypeSafe decision API) must be skipped by every path that builds a chat model, or its token is sent to the wrong host: setup_llm's custom branch builds ChatOpenAI(api_key=<row key>) with no base URL, which is api.openai.com. Add the type to NON_CHAT_PROVIDER_TYPES in BOTH twins (agentic/llm_builder.py, webapp/src/lib/llmProviderKinds.ts); use chat_providers() / isChatProvider wherever rows are listed, counted, gated or forwarded (the /api/models forward, the project LLM gate, the triage preflight, the feature-model grid); and never let a stale custom/<id> fall back to "the first provider" (custom_provider_or_fallback falls back only to custom-capable types). setup_llm also refuses a non-chat type outright.

  • A non-chat provider's endpoint is a constant, and its type is locked.

agentic/jev_client.py is the only code that talks to api.typesafe.ai: a fixed base URL, no redirects, fixed error texts. On the webapp, POST forces model, URL and headers and allows one row per user; PUT and the test route refuse a type change in either direction and ignore a body-supplied URL/headers for a stored row, so a stored token can never be re-pointed at another host.

  • ALWAYS register the provider in the webapp provider-type registry and

propagate the key kwarg into every LLM call site. A provider registered but not propagated builds a client with no credentials. The guide enumerates all 11 integration points; touch each.


The two invariants

InvariantWhereFailure if broken
Keys only in Postgres + webapp<->agent transitwebapp/prisma/schema.prisma user_llm_providers; agent settings fetchkey leaks into scan/MCP containers
Model id prefix routingparse_model_provider() llm_setup.py:67model routes to the wrong provider

Commands

bash
docker compose build agent && docker compose up -d agent # agentic/ is baked
docker compose exec webapp npx prisma db push # provider schema changes (NEVER prisma migrate)

Resources

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/gabrielmoreira/agent-skills-mirror/llm-provider-integration/badge)](https://verified-skill.com/skills/gabrielmoreira/agent-skills-mirror/llm-provider-integration)

Something wrong with this skill or its page? Tell us.