About slorg
A small AI search engine that does its planning in the LLM and its retrieval in SearxNG — in that order, every time.
What it is
slorg (npm package name: lorg) is an open-source project from
Skelf-Research. It ships as a Node.js
package and runs in three modes: a CLI (lorg "…"), a REST
server (lorg server -p 3000), and a library import
(import LorgSearch from 'lorg'). Requires Node 18+ and an
OpenAI-compatible API key.
What the pipeline actually does
The README documents six fixed steps. They run in order on every search:
- Draft answer — GPT writes an initial answer from its training data, with no web access.
- Knowledge graph — entities and relationships are extracted from the draft into a structured graph.
- Keyword extraction — search terms are derived from the graph rather than from the user prompt directly.
- Multi-engine search — SearxNG runs those keywords against Google, Bing, Yahoo, and DuckDuckGo (default; configurable).
- Content fetch and analysis — each candidate URL is fetched and the readable content extracted.
- Relevance scoring — GPT scores each fetched page 0–1 against the original query; the top N are returned.
Three of those six steps (1, 3, 6) call the LLM. The number of LLM round-trips per search is therefore at least three, plus whatever scoring concurrency you configure. That is the cost model.
What "thinks before it searches" does not mean
- It does not mean slorg is an agent. There is no tool-selection loop, no ReAct trace, no decision about whether to search.
- It does not mean slorg is metacognitive. The draft in step 1 is just a forward pass; the model is not reasoning about its own confidence.
- It does not mean retrieval is private. The default backends are public search engines via SearxNG. Pointing slorg at a private index is not what the README ships.
- It does not mean it is faster than vanilla search. It is structurally slower: three LLM calls plus a content fetch per URL. The trade is plan-conditioned recall, not latency.
Configuration surface
Five environment variables, listed in the README:
OPENAI_API_KEY— required.OPENAI_BASE_URL— for OpenAI-compatible endpoints (local model servers, Groq, Together, etc).LORG_DEFAULT_MODEL— defaultgpt-4o-mini.LORG_SEARCH_ENGINES— comma-separated list, defaultgoogle,bing,yahoo,duckduckgo.LORG_SEARCH_LIMIT— max SearxNG results before fetch + scoring, default20.
HTTP surface
When run as a server, slorg exposes POST /search with a JSON body
{"query": "…"}. The response shape mirrors the library
return: answer, knowledgeGraph, keywords,
results[] (each with title, source,
score, content), and tokenCount.
License and source
MIT. The source of truth is github.com/skelf-research/slorg. Published as npm:lorg. Documentation lives at docs.skelfresearch.com/slorg/.
Who built it
Skelf-Research is a small research group that publishes practical, narrowly-scoped tooling. slorg is one of those tools. Issues and pull requests on the GitHub repository are the canonical channel.