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

Package · Library

jw-agents

Orquestación multipaso + agéntica verificable

Agentes hechos a mano, no LLM-orchestrated. Cada uno orquesta múltiples llamadas a jw-core + jw-rag para producir findings estructurados con citas verificables a wol.jw.org. La síntesis del lenguaje natural ocurre fuera del toolkit (Claude Desktop, Claude Code, tu propio cliente). F65-F67 añaden una capa agéntica verificable: el meta-orchestrator decompone objetivos en DAGs de tools, ejecuta en orden topológico y crítica con NLI F39 antes de devolver; conversation-sparring simula 6 personas para práctica de predicación; doctrinal-reasoner emite chain-of-thought con árbol de pruebas exportable.

Features

What it does, in detail.

01

verse_explainer

Dada una cita bíblica, devuelve el versículo objetivo + notas de estudio nwtsty mapeadas + cross-references panel (lazy). 100% matching headword↔versículo desde Fase 3.5.

02

research_topic

Dado un tema en lenguaje natural, busca en TopicIndex (Guía de Investigación) y devuelve subjects/subheadings/citations estructurados.

03

meeting_helper

Dada una URL del Workbook o una ref bíblica, prepara material para reunión semanal: outline, citas, sugerencias de discusión.

04

apologetics

Dada una objeción común ('Trinidad', 'infierno', 'Biblia se contradice'), devuelve respuesta estructurada con citas bíblicas + notas de estudio + texto enriquecido.

05

Memoria persistente opt-in (F61)

MemoryStore Protocol + 3 backends: FakeMemoryStore (in-memory, default tests), SqliteMemoryStore (default user, Fernet opt-in via JW_MEMORY_KEY siguiendo precedente F25 RevisitStore), LettaMemoryStore (opt-in para multi-device via letta-client, extra [memory-letta]). conversation_assistant ahora acepta param memory: MemoryStore | None — preserva compat 100% (memory=None → comportamiento legacy). build_memory_store() factory env-driven.

06

Auto-recap entre sesiones (F61.8)

Agente nuevo recap_session.recap_previous_session() NO usa LLM (decisión arquitectónica: procedural y determinístico). Agrupa records de MemoryStore por session_id, filtra la sesión actual, ordena por last_timestamp desc, devuelve findings con summary corto + excerpts_by_kind en metadata. Útil al arrancar nueva sesión: 'continuemos con la sesión X de ayer'.

07

Meta-orchestrator (F65)

Planner LLM con JSON-schema validation + executor topológico + critique NLI F39 con replan opt-in. Reusa Plugin SDK F41 y los 12 adapters reales en builtin_tools.py. Factories LLM (Anthropic + Ollama + Fake) y NLI env-driven con degradación grácil. Tracing F43 via tracer= opt-in. Persistencia --save-plan/--save-result JSON + replay determinista con MetaOrchestrator.run_plan(plan). Export Mermaid del DAG (plan_to_mermaid + result_to_mermaid). CLI jw meta {tools,plan,run,replay} + --mermaid + jw plan-sunday.

08

Conversation sparring (F66)

Simulador de interlocutor para predicación: 6 personas (atheist · jw_student · biblical_scholar · evangelical · agnostic · returning) × 3 idiomas en 18 TOMLs con resolución multi-idioma. Voice mode jw spar voice-turn (ASR → LLM → TTS, audio nunca sale del disco). Persistencia SQLite cross-process en spar/persistence.py + autosave opt-in JW_SPAR_PERSIST=1. Markdown export del transcript. Golden conversations con FakeSparLLM determinista. Tool spar.session para uso desde el meta-orchestrator F65.

09

Doctrinal reasoner (F67)

Chain-of-thought verificable: reformulator de framing tóxico (12 patrones es/en/pt) + planner Jinja2 multi-idioma + ReAct executor con NLI F39 (modes off/warn/reject). Tool dispatcher real wireado a verse_explainer/research_topic/apologetics/life_topics (use_real_dispatcher=True). Golden set 10 preguntas multi-paso en fixtures/golden.jsonl. Summary prose determinista trilingüe. CLI jw reason {ask,languages} + MCP doctrinal_reason. Integrado en F65 como reason.doctrinal.

In practice

Four lines.
Verifiable result.

Resolver y enriquecer una cita con notas de estudio.

python · jw-agents
from jw_agents import verse_explainer

result = await verse_explainer.run(
    "Juan 3:16", lang="es",
)
for f in result.findings:
    print(f.kind, f.verse_ref, f.url)

# Output:
# verse Juan 3:16 https://wol.jw.org/es/.../3:16
# study_note Juan 3:16 https://wol.jw.org/es/.../sn-3-16
# cross_ref Juan 3:16 https://wol.jw.org/es/.../bc-...

Public API

What the module exports.

Resumen de los símbolos principales. La exhaustive reference covers each one with signature, parameters, and examples.

  • verse_explainer · research_topic
  • meeting_helper · apologetics
  • Finding · AgentResult
  • memory.MemoryStore · SqliteMemoryStore · LettaMemoryStore
  • build_memory_store · recap_session.recap_previous_session
  • meta.MetaOrchestrator · meta.mermaid (plan_to_mermaid / result_to_mermaid)
  • spar.{SparSession, FakeSparLLM, persistence.save_session/load_session}
  • reasoner.{Engine, dispatchers.real_tool_dispatcher}
  • Composición con agent_pipeline