Saplings
Saplings

Saplings

Saplings es una pequeña biblioteca Python para añadir MCTS, A* y búsqueda greedy a agentes con herramientas. La versión 6.2.0 sigue instalable, pero el mantenimiento está quieto y sus metadatos MIT contradicen el LICENSE Apache-2.0.

100

Views

0

Likes

Jan 2026

Added

github.com

Enlace del proyecto

Tags

Saplingsagente con búsqueda en árbolMonte Carlo Tree Searchagente A*framework de agentes PythonLiteLLM

Product Preview

A quick visual look at Saplings before you visit the official site.

Published 1/21/2026
Saplings screenshot

Editorial Review

About Saplings

Saplings significa aquí el paquete Python de código abierto shobrook/saplings. Permite que un agente con herramientas explore varias trayectorias mediante Monte Carlo Tree Search (MCTS), A* o greedy best-first search. No es Sapling, el sistema de control de versiones de Meta, ni el paquete antiguo del autor que antes tuvo el mismo nombre y ahora se llama Syntaxis. La implementación actual usa LiteLLM para invocar modelos y un evaluator—por defecto otro LLM—para puntuar ramas candidatas.

Debe tratarse como una capa de búsqueda para prototipos con herramientas reversibles y tareas acotadas, no como una plataforma completa para agentes en producción. Puede apartarse de una mala decisión posterior, pero los tools explorados pueden ejecutarse realmente antes de seleccionar la mejor rama. Cálculo, retrieval, código en sandbox y simuladores son buenos primeros casos; correo, pagos, tickets o escrituras de base de datos necesitan una barrera externa de preview y commit.

Diagrama oficial de Saplings que compara un agente ReAct lineal con un agente de tree search ramificado y autoevaluado
Imagen oficial del README de shobrook/saplings: la búsqueda genera y evalúa varios recorridos de tools en lugar de comprometerse con una sola trayectoria.

Identidad exacta y estado de mantenimiento

ComprobaciónVerificado el 2026-08-20Interpretación
Proyecto canónicoGitHub shobrook/saplings; PyPI saplingsNo mezclar con Meta Sapling SCM ni Syntaxis
Último paquetePyPI 6.2.0, subido 22-06-2025Disponible, pero unos catorce meses sin release
RepositorioPúblico, no archivado; último push 27-07-2025Los últimos commits son del README; último fix de código visible 22-06-2025
DistribuciónSdist de 33 kB; no se lista wheel para 6.2.0pip construye localmente
Metadatos runtimePython >=3; litellm/json-repair sin versiones fijadasEl rango es demasiado amplio para probar compatibilidad moderna
LicenciaEl LICENSE es Apache-2.0; setup.py/PyPI dicen MITEs un conflicto, no una declaración de doble licencia

El estado defendible es disponible, pero quieto. El repositorio no está archived ni disabled y PyPI conserva 6.2.0, por lo que declararlo discontinuado iría más allá de las pruebas. A la vez, una página accesible no demuestra mantenimiento de compatibilidad o seguridad. No hay GitHub Releases, no hay archivos PyPI posteriores a junio de 2025 y el sdist 6.2.0 no incluye suite de tests ni benchmark harness. Hay que bloquear paquete y dependencias transitivas y ejecutar una matriz privada de Python, modelos y tools.

La discrepancia de licencia es un gate independiente. El repositorio y el sdist contienen el texto completo de Apache License 2.0; setup.py declara MIT y PyPI repite ese campo. No es una opción dual documentada. Antes de redistribuir, integrar o mantener un fork, se debe pedir aclaración al maintainer, conservar notices y hacer que compliance determine los términos aplicables.

Cómo elegir un agente de Saplings

ClaseComportamiento de búsquedaFrontera de coste y fallo
COTAgentUna trayectoria normal sin searchBaseline barato para validar tools y evaluator
GreedyAgentGenera, ejecuta y puntúa candidatos; continúa con el mejor actualMenos overhead, pero no vuelve desde un óptimo local equivocado
AStarAgentMantiene frontiers alternativas y puede cambiar de ramaPunto medio; si el evaluator falla también falla el orden
MonteCarloAgentSelection, rollout y backpropagation; defaults 6.2.0: factor 3, profundidad 5, 10 rolloutsMás calls/efectos potenciales; el root tool call se genera una sola vez antes de ramificar
Custom evaluatorDevuelve score normalizado y reasoning propiosTests, reglas exactas y state rewards superan a un LLM juzgando su prosa

El árbol no puede superar a su value function. El evaluator por defecto envía la trayectoria al modelo, solicita una nota 0–10 y la normaliza a 0–1. Es cómodo para explorar, pero puede confundir progreso plausible con tarea completa. Un agente de código debería usar compilación y tests; retrieval, cobertura y soporte de fuentes; un entorno, reward del estado real. Debe mantenerse un conjunto holdout porque cambiar el prompt del evaluator puede alterar la búsqueda tanto como cambiar el algoritmo.

MCTS tiene una frontera específica: fuerza un primer tool call, crea con él el root node y solo después expande ramas. Un TODO del source reconoce que un root equivocado perjudica todo el árbol. Por tanto, puede mirar y volver en acciones posteriores, pero no compara varias primeras acciones independientes. Una review que repita únicamente «look-ahead y backtracking» ocultaría esta diferencia de implementación.

Flujo de evaluación seguro y reproducible

  1. Congelar el artefacto.Entorno aislado, saplings==6.2.0, lockfile transitivo y hash del sdist.
  2. Gate de licencia.Registrar el conflicto Apache-2.0 contra MIT en la aprobación de dependencias.
  3. Empezar por COTAgent.Medir success, coste, latencia y corrección de tools sin search.
  4. Tools replay-safe.Separar propose/preview de commit; sandbox, estado clonado e idempotency key por rama.
  5. Evaluator objetivo.Priorizar tests, schema, constraints, simulator state y comprobación de fuentes sobre self-score.
  6. Limitar el árbol.Configurar branching factor, depth, rollouts, timeout y presupuesto del provider.
  7. Instrumentar calls.Registrar branch, parent, argumentos, resultado, score, modelo, tokens, latencia, retry y excepción, con redaction.
  8. Matriz fija.Comparar COT, Greedy, A* y MCTS con mismos prompts, mocks, evaluator y seeds si existen.
  9. Casos de fallo.API caída, output roto, rate limit, acción repetida, evidencia falsa, truncation y desacuerdo de evaluator.
  10. Un solo commit.Search produce plan, patch o candidato; validator o humano aprueba una única escritura externa.
  11. Ruta de datos.La librería es local, pero LiteLLM puede enviar prompts, schemas y trayectorias al provider configurado.
  12. Salida preparada.Encapsular Saplings tras una interfaz propia para cambiarlo sin rehacer tools.

Lo que el README compacto no resuelve

RiesgoCausa en 6.2.0Control
Efectos repetidosBaseAgent ejecuta todos los candidate tools antes de puntuarBuscar con tools puros/simulados y hacer commit una vez
Crecimiento de callsGeneración, evaluación y rollouts invocan modelos/toolsBudgets duros, timeout, cache seguro y coste por tarea resuelta
Sesgo de evaluatorLa función por defecto es autoevaluación LLMRewards objetivos, varios evaluators y auditoría humana
Root lock-inMCTS crea un required root antes de las ramasValidar plan primero o modificar estrategia root
Dependency driftlitellm/json-repair no tienen rangesLock transitivo y CI de upgrades
Privacidad/seguridadModelo ve prompt/schema/trajectory; tools reciben memoria de trayectoriaMinimizar, redactar, least privilege y governance del provider
Mantenimiento/licenciaReleases quietos y metadata contradictoriaPin/fork, scan, owner y aclaración escrita

Los side effects de ramas son la conclusión operativa principal. BaseAgent.expand crea una tarea async para cada candidate, ejecuta el tool y solo después evalúa child nodes. Backtracking no deshace esos efectos. Explorar tres variantes de send_email puede enviar tres mensajes aunque se devuelva un solo path. El diseño seguro busca sobre descripciones, state simulado o patches reversibles y expone la acción irreversible únicamente después de terminar.

No existe un multiplicador de coste fijo verificable. Los provider calls dependen de early termination, deduplicación, depth, rollouts, evaluator samples, comportamiento del tool y retries. Hay que medir coste por tarea aceptada, p50/p95 latency y duplicate effects. La tabla del README cita el paper LATS; no es una reproducción de Saplings 6.2.0, y el sdist no lleva runner que establezca esas ganancias.

Saplings frente a alternativas reales

OpciónMejor casoTrade-off frente a Saplings
SaplingsExperimento Python pequeño que añade MCTS/A*/greedy a tool callsLegible; mantenimiento quieto, sin runtime durable y controles de efectos a cargo del usuario
ReAct/tool loop normalTrabajo secuencial barato con tools fuertes y verificablesSin backtracking, pero coste y writes externos son más previsibles
LangGraphWorkflows stateful con persistence, streaming, human review y durable executionMás orquestación; state, checkpoints y commit gates explícitos
LLM ReasonersInvestigación de MCTS, ToT, world models y reproducciónMás amplio/pesado; mejor para estudiar algoritmos
Búsqueda propiaDomain simulator, reward exacto y política estricta de efectosMás ingeniería, control total de branches, cache, budget y transacciones

Juicio independiente:la mejor cualidad de Saplings es su legibilidad. Se puede revisar el search loop, Tool y evaluator sin adoptar una plataforma grande, algo útil para aprender y para un proof of concept acotado. Su debilidad es la distancia entre search research y production orchestration: no aporta persistence, approval queue, rollback transaccional, checkpoints durables ni security policy publicada.

Es razonable cuando el entorno se clona barato, el reward es objetivo y los tools son reversibles. Para un servicio duradero, hay que poseer un fork con locks, tests, tracing, security y licencia aclarada, o implementar la policy en un runtime mantenido. Un benchmark del paper es una hipótesis para tasks privadas, no una aprobación de despliegue.

Preguntas frecuentes

¿Qué es Saplings?

Una biblioteca Python de shobrook/saplings que aplica Greedy, A* o MCTS a trayectorias con tools, usa LiteLLM y un evaluator para puntuar ramas.

¿Sigue mantenido?

Está disponible y no archivado, pero quieto. PyPI 6.2.0 es de 22-06-2025 y el último push de 27-07-2025. El mantenimiento continuo no está demostrado.

¿Es Meta Sapling?

No. Meta Sapling es source control. Este es el paquete AI-agent de Jonathan Shobrook; otro paquete antiguo homónimo se renombró Syntaxis.

¿Qué licencia aplica?

Repo/sdist incluyen Apache-2.0, mientras setup.py/PyPI dicen MIT. El maintainer debe resolver el conflicto; compliance no debe elegir en silencio.

¿Tree search siempre mejora?

No. Puede ayudar con alternativas evaluables, pero multiplica calls y amplifica un evaluator débil. Los números del README vienen del paper LATS.

¿Admite modelos locales?

LiteLLM ofrece rutas locales, pero tool calling, structured output y token counting deben probarse modelo por modelo.

¿Por qué son peligrosos los write tools?

Los candidates se ejecutan antes de elegir. Use preview, sandbox y un único commit después de search.

¿Alternativas?

Plain loop para simple, LangGraph para durable approval, LLM Reasoners para investigación o search propia con simulator/reward exactos.

Fuentes revisadas

Revisión independiente: 2026-08-20. GitHub/PyPI confirmaron la entidad. El estado se expresa como disponible pero quieto; no se ocultan el conflicto de licencia ni la diferencia entre benchmark del paper y del package.

Revisar Saplings en su fuente oficial

Abre el repositorio, la documentación o los recursos del modelo.

Abrir fuente oficial

Quick Info

Enlace del proyecto
github.com
Category
Agente de IA
Added
1/21/2026
Published
1/21/2026
Updated
9/7/2026

Share This Tool

Have an AI tool to share?

Submit it to AI Dreamhub

Get your product in front of people actively exploring AI tools.

Submit Your Tool
Manus

Manus

Manus es un agente de IA alojado de propósito general que utiliza máquinas virtuales en la nube, automatización del navegador, archivos, código e integraciones para completar tareas de varios pasos. Esta guía independiente cubre planes y créditos, Cloud Browser vs Browser Operator, acciones autenticadas, privacidad, aprobaciones, diseño de tareas, evaluación y alternativas.

ai-agentfree
1450
Gemini CLI

Gemini CLI

An open-source AI agent that brings the power of Gemini directly into your terminal. - Herramienta de IA inteligente para mejorar tu productividad.

ai-agentfree
1180
AgentScope

AgentScope

Agent-Oriented Programming for Building LLM Applications, Open-sourced by Alibaba - Herramienta de IA inteligente para mejorar tu productividad.

ai-agentfree
1340
Auto-GPT

Auto-GPT

Auto-GPT es un proyecto y plataforma open-source de Significant Gravitas para crear y ejecutar asistentes y flujos de agentes autónomos.

Auto-GPTAI agentautonomous agents
1130