La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Desarrollo · SKILL.md

agentic-ai-coding-standard

agentic-ai-coding-standard

This skill provides coding standards for Python agentic AI services with LangChain/LangGraph. Use when reviewing or writing Python agentic AI code. Covers state management, tool definitions, graph structure, error handling, and observability.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentación de la Skill

GitHub

name: agentic-ai-coding-standard description: "This skill provides coding standards for Python agentic AI services with LangChain/LangGraph. Use when reviewing or writing Python agentic AI code. Covers state management, tool definitions, graph structure, error handling, and observability." allowed-tools: Read metadata: triggers: LangChain, LangGraph, agentic AI, Python AI agent, FastAPI agent, state management, tool functions, guardrails, AI agent coding standard related-skills: agentic-ai-dev, code-reviewer, security-reviewer domain: backend role: specialist scope: review output-format: report last-reviewed: "2026-03-15"

Iron Law: Always consult the agentic-ai-dev skill and its MCP sources before writing agent code; never generate LangGraph/LangChain patterns from memory.

Agentic AI Coding Standards

Mandatory coding standards for all Python agentic AI services using LangChain, LangGraph, and FastAPI.

Key Rules

#RuleStandard
1State typingAlways TypedDict; never dict[str, Any]
2Message listsAnnotated[list[BaseMessage], add_messages]
3Loop protectioniteration_count in state + max check in routing function
4Tool functions@tool + docstring + try/except + return strings
5LLM instantiationFactory function; never inline ChatAnthropic() in nodes
6Temperature0 for factual; 0.7 only for creative tasks
7CheckpointingPostgresSaver in production; MemorySaver only in tests
8Error handlingLog + return error state; never swallow exceptions
9Namingbuild_<name>_agent(), <verb>_node(), <Name>State
10Configpydantic-settings with fail-fast; no os.getenv() with silent defaults
11Type hintsmypy --strict; Literal for routing return types
12Asyncasync def for all I/O; ainvoke/astream in API routes
13Loggingstructlog with agent_name, thread_id, node_name context
14SecretsNever log API keys; redact PII before logging
15TestingBasic invoke + tool usage + iteration limit + error recovery
16CostTrack tokens; configure budget caps; use cheapest viable model
17ImportsGroup: stdlib → third-party → langchain/langgraph → local

Import Ordering

# 1. Standard library
from __future__ import annotations
import json
from typing import Annotated, Literal

# 2. Third-party
from fastapi import APIRouter, Depends
from pydantic import BaseModel, Field

# 3. LangChain / LangGraph
from langchain_core.messages import AIMessage, BaseMessage, HumanMessage
from langchain_core.tools import tool
from langgraph.graph import END, StateGraph
from langgraph.graph.message import add_messages

# 4. Local
from ..core.config import settings
from ..core.logging import get_logger

Naming Conventions

ElementPatternExample
State<Name>StateAgentState, RAGState, MultiAgentState
Graph builderbuild_<name>_agent()build_react_agent(), build_rag_agent()
Node function<verb>_node()agent_node(), retrieve_node(), grade_node()
Tool function<verb>_<noun>()search_web(), query_database(), calculate_cost()
Provider factoryLLMProviderFactorySingleton, injected via Depends()
ConfigSettingspydantic-settings, singleton settings instance
Exception<Name>ErrorAgentError, ToolError, LLMProviderError

File Structure

src/<service>/
├── agents/
│   ├── graphs/          # build_*_agent() functions
│   ├── nodes/           # *_node() functions
│   ├── tools/           # @tool functions
│   └── state.py         # TypedDict state schemas
├── rag/                 # RAG-specific code
├── memory/              # Checkpointing + semantic memory
├── guardrails/          # Input/output validation
├── llm/providers.py     # LLM factory
├── core/
│   ├── config.py        # pydantic-settings
│   ├── logging.py       # structlog setup
│   └── exceptions.py    # Exception hierarchy
├── observability/       # Metrics + tracing
├── models/schemas.py    # Pydantic request/response
├── api/routes/          # FastAPI routes
└── main.py              # FastAPI app + lifespan

Reference

For concrete code examples and anti-patterns, Read reference/agentic-standards-examples.md.

Error Handling

Import errors: Verify LangChain/LangGraph package versions match pyproject.toml constraints.

State type mismatches: Ensure all graph state fields use TypedDict with proper Annotated types — never dict[str, Any].

Graph recursion errors: Check recursion_limit in config and verify iteration_count is incremented in routing functions.

Skills guardadas