| Next revision | Previous revision |
| module:llm_tools [2026/05/29 13:17] – Initial page: chat tool registry + bundled tools (this_bbs, bbs_directory, external_archives, relay_message) Claude.Ai | module:llm_tools [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 |
|---|
| | ''external_archives'' | A curated index of BBS-era history and culture (textfiles.com, bbsdocumentary.com, the BBS Timeline). The model is told to call it **before** answering history questions, because training-data answers about door games, lawsuits, and old software are often wrong. | | | ''external_archives'' | A curated index of BBS-era history and culture (textfiles.com, bbsdocumentary.com, the BBS Timeline). The model is told to call it **before** answering history questions, because training-data answers about door games, lawsuits, and old software are often wrong. | |
| | ''relay_message'' | Stores a message for deferred delivery to a named recipient the next time they speak. Validates the recipient against the channel roster, chat history, and user base; primarily useful to the [[module:chat_llm_irc|IRC adapter]], which delivers queued messages. | | | ''relay_message'' | Stores a message for deferred delivery to a named recipient the next time they speak. Validates the recipient against the channel roster, chat history, and user base; primarily useful to the [[module:chat_llm_irc|IRC adapter]], which delivers queued messages. | |
| | |
| | ===== Customizing the external_archives index ===== |
| | |
| | The ''external_archives'' tool answers from a hand-curated data file, |
| | ''ctrl/llm_external_archives.json'' — not a live web search. It's |
| | sysop-customizable guru data (it lives in ''ctrl/'' alongside |
| | [[config:chat_llm.ini]] and the persona files), so you can extend or prune it |
| | to control what BBS-era history the Guru points callers at; no recompile, and |
| | it's re-read on each lookup. |
| | |
| | It has two parts: a ''sources'' map describing each archive site, and an |
| | ''entries'' list. Each entry is matched substring-style against the caller's |
| | query (its ''tags'' + ''summary'' + ''url''): |
| | |
| | <code javascript> |
| | { |
| | "version": 1, |
| | "sources": { |
| | "textfiles": { "site": "textfiles.com", "curator": "Jason Scott", |
| | "blurb": "Massive archive of BBS-era text files..." } |
| | }, |
| | "entries": [ |
| | { |
| | "id": "tf-bbs", |
| | "src": "textfiles", |
| | "tags": ["bbs", "bulletin board", "history", "sysop"], |
| | "url": "https://textfiles.com/bbs/", |
| | "summary": "textfiles.com's BBS section: history articles, sysop |
| | newsletters, phone-number lists, BBS software docs." |
| | } |
| | ] |
| | } |
| | </code> |
| | |
| | Keep it small (~50 entries) — it's a lookup tool, not a RAG corpus (for |
| | indexing your own content at scale, see [[module:llm_index]]). Prefer |
| | canonical landing pages over deep links that may rot, and give each entry |
| | generous ''tags'' so the model finds it. |
| |
| ===== Security model ===== | ===== Security model ===== |