Independent Project Not affiliated with, sponsored by, or endorsed by the Watch Tower Bible and Tract Society or Jehovah's Witnesses.
jw-agent-toolkit
ES

Plugin SDK (Fase 41)

Extension points sin forkear el monorepo. Terceros publican paquetes en PyPI que el toolkit descubre automáticamente.

Mecanismo

PEP 621 entry points. Tu plugin declara en su pyproject.toml:

[project.entry-points."jw_agent_toolkit.agents"]
translation_helper = "my_pkg.translation:translation_helper"

El toolkit lo descubre vía importlib.metadata.entry_points al startup. Cero modificación del toolkit, cero PR.

5 extension points

GroupPara extenderProtocol
jw_agent_toolkit.agentsAgentes nuevosAgentPlugin (async callable)
jw_agent_toolkit.parsersParsers de formatosParserPlugin
jw_agent_toolkit.embeddersEmbedders customEmbedderPlugin
jw_agent_toolkit.vlm_providersVLMsVLMProviderPlugin
jw_agent_toolkit.gen_providersGeneraciónGenProviderPlugin

API

from jw_core.plugins import (
    get_plugins,        # descubre plugins de un group
    verify_plugin,      # check contract + version
    clear_plugin_cache, # reset cache (tests)
    PluginError,
    PluginConflictError,
    PluginContractError,
    PluginVersionMismatch,
)

CLI

jw plugins list                          # ver todos los plugins instalados
jw plugins list --json                   # output JSON
jw plugins verify <name>                 # check contract + version
jw plugins disable <name>                # deny-list persistente

Variables de entorno

VariableDefaultEfecto
JW_PLUGINS_DISABLEDunset=1get_plugins devuelve {}
JW_PLUGINS_STRICTunset=1 → errores de verificación abortan
JW_PLUGINS_ALLOW_LISTunsetCSV de nombres permitidos
JW_PLUGINS_DENY_LISTunsetCSV de nombres bloqueados
JW_PLUGINS_CONFLICT_POLICYnamespacedfirst_wins/last_wins/namespaced/reject

Ver también

Edit this page on docs/plugin-sdk/overview.md