Proyecto independiente No afiliado, patrocinado ni avalado por la Watch Tower Bible and Tract Society o Jehovah's Witnesses.
jw-agent-toolkit
EN

Plugin SDK — Capability Matrix

Protocols por versión

AgentPlugin (group jw_agent_toolkit.agents)

AttributeRequiredSinceNotes
__name__: strv1.0Callables tienen esto for free
__call__(**kwargs)v1.0Debe ser async
languages: list[str]optionalv1.0['en', 'es', 'pt']
version: stroptionalv1.0semver del plugin
cost_estimate(**kwargs) -> intoptionalv1.3 (futuro)Tokens/llamadas esperadas

ParserPlugin (group jw_agent_toolkit.parsers)

AttributeRequiredSinceNotes
__call__(raw, *, source_url=None)v1.0Returns ParsedDocument-like
extensions: list[str]optionalv1.0['.pdf', '.epub']
mime_types: list[str]optionalv1.0['application/pdf']

EmbedderPlugin (group jw_agent_toolkit.embedders)

AttributeRequiredSinceNotes
name: strv1.0Único per plugin
target: strv1.0'cpu' / 'gpu' / 'mlx'
dim: intv1.0Dimensión del vector
is_available() -> boolv1.0Health check
embed(texts) -> arrayv1.0Batch embedding
max_tokens: intoptionalv1.0Para truncation

VLMProviderPlugin (group jw_agent_toolkit.vlm_providers)

AttributeRequiredSinceNotes
name: strv1.0
is_available()v1.0
describe(image_bytes, *, language="en")v1.0
languages: list[str]optionalv1.0

GenProviderPlugin (group jw_agent_toolkit.gen_providers)

AttributeRequiredSinceNotes
name: strv1.0
is_available()v1.0
generate(prompt, *, max_tokens=128)v1.0
max_tokens: intoptionalv1.0
supports_streaming: booloptionalv1.0

Política de evolución

  1. Protocols son aditivos por contrato — solo se añaden métodos/atributos opcionales dentro de una major.
  2. La detección es vía hasattr(plugin, "X"), no isinstance check.
  3. Cualquier nuevo método requerido fuerza bump de major. El registry rechaza plugins viejos vía version constraint.
  4. verify_plugin reporta required_present / required_missing / optional_present / optional_missing para que el plugin author sepa qué features puede activar.

Editar esta página en docs/plugin-sdk/capabilities.md