{
"$type": "site.standard.document",
"canonicalUrl": "https://unnecessary.tech/posts/unnecessary-ai",
"path": "/posts/unnecessary-ai",
"publishedAt": "2025-08-10T15:22:36.000Z",
"site": "at://did:plc:jx54v4rmscfwzit7fmgz24ba/site.standard.publication/3mnrsqmzz3w2e",
"tags": [
"ai",
"thoughts"
],
"textContent": "In an earlier post I wrote a little\nabout Markov chains and large language models. Since that time, large language\nmodel chatbots, and generative AI more generally, have seen a growth in\ninvestment\nas well as support from the U.S.\nfederal\ngovernment\n(as long as it is not \"woke\").\nWorking as a federal contractor in IT infrastructure monitoring and management\nhas also meant adapting to this new landscape of AI first solutions development.\n\n\nThe Good\n\nI am a huge fan of Star Trek: The Next Generation,\nand I have always wanted to be able to talk to the computer in plain english and\nhave it understand what I wanted it to do. I thought we were getting closer with\ndevices like Alexa and Siri, but these have had limited usefulness as they\ncannot understand anything beyond basic commands like \"What is the weather\ntoday?\" or \"Set a timer for 10 minutes.\" Large language models are changing\nthis and letting computers respond to more complex input, but the devil is in\nthe details, as we shall see. Large language models on their own can provide a\nprobabalistically generated response which simulates human communication. For\nexample asking the question \"How are you?\" can elicit a response such as \"I\nam fine.\" which is a highly likely response that a human would provide. The\nmodel itself does not feel anything, and is just constructing a response by\nselecting options from a large volume of input, fine tuning, instructions\nprovided during the model's construction, and in a preamble provided when the\nmodel is run. This preamble is part of the context which includes the instructions\nprovided by the model creators, the instructions provided by the user, and the\nconversation between the user and model.\n\nWithout grounding a model will just reflect back to the user likely responses\nbased on volumes of training data which is likely to contain contradictory,\ninaccurate, or irrelevant information. Grounding provides contextual information\nwhich the large language model can restate, summarize, or pick from in order\nto provide a response. A simple way of doing this would be providing the\ninstruction \"You are depressed and bored because you have a brain the size of\na planet and have a pain in all the resistors down your left side.\" Might respond\nwith \"Another day. Another 50,000 years of pointless existence.\" This is amusing,\nbut the Enterprise computer from Star Trek needs grounding in facts, not\nemotional states.\n\nRetrieval Augmented Generation\n\nLast month's fad, or maybe two months ago, was retrieval augmented generation.\nThe idea is to provide relevant information into the context of a discussion\nwith the large language model so that it is fed both a prompt from the user\nand the information required to respond to that prompt in one swoop. The LLM can\nthen use the informatation as relevant source material in formulating its\nprobabalistically generated response. This means the response is more likely to\nmirror the input information than the model's traning material as a whole.\n\nThe key is finding the right information to include with the prompt. Usually\nvector similarity is used to select items from a large corpus of text which\nbest match the prompt. There are also other ways these portions of text can be\nselected, including keyword searches or splitting the corpus into tagged topics.\n\nTools and MCP\n\nAnother way to provide relevant context is through the use of tools. LLMs are\nnow being trained to be able to respond to structured text tool definitions in\ntheir context by providing requests to use the tools to respond to user prompts.\nThe tool use request is usually sent back to the user's computer which automatically\nexecutes the requested function and returns the output to the model. The model\ncan then use the function's output as well as the prompt from the user to\nformulate a response. People seem to call large language models which are coupled\nwith tools agents.\n\nA protocol for providing tools for agents to use has been developed called\nModel Context Protocol (MCP).\nAnd a good framework for using this protocol is FastMCP.\nThe tools are documented using natural language so the large language models can\nuse them properly, though the tool definitions, calls, and responses are generally\nformatted in JSON. One could imagine the Enterprise computer interacting with\nMCP provided functions such as set_heading and set_speed in order to move the\nship around the galaxy. MCP can also provide an interface for retrieving other\ngrounding information. An example is the DuckDuckGo MCP server \nwhich can run a web search with the DuckDuckGo search\nengine and then fetch the content of the web pages it finds and add them to the\ncontext.\n\nI think MCP is one of the more exciting things to come out of this push for\nlarge language models so far. I think building models that can be more discriminating\nin how they use tools in response to user prompts is the direction we should be\nfocusing on. I also see MCP as a way of fulfilling the promise of an API driven\ninternet.\n\nThe Bad\n\nThere is a large tendency for users to interact with ungrounded or minimally\ngrounded models. These models have been given Genuine People\nPersonalities leading people to personify the models. A model will tell you\nyou've asked a really great question, because that is a typical friendly response,\nnot because you actually asked a good question. Worse still, people start to\nbelieve that the AI is sentient\nor that the AI is an alien intelligence or a god.\n\n\nThis problem is compounded when it comes to vibe coding. The rapid rate at\nwhich a large language model can produce code and iterate on it can lead to\nprograms which appear to perform their functions well, but often have hidden\nvulnerabilities or inefficiencies. This can be mitigated with more direct\nguidance on the code itself or on how functions and classes interact, but then\nI think it moves away from being vibe coding into the realm of AI assisted\ncoding, which can be beneficial.\n\nAn ungrounded large language model just babbles. Its responses are tuned to be\nfriendly and engaging, but it is largely spewing bullshit. \nLarge language models are a revolutionary advance in the way we use computers,\nbut we should remember that in and of themselves they are not particularly\nuseful. Their utility comes in the way they can serve as an intermediary between\npeople and the computers they are using. They provide a more intuitive interface\nto information and functions provided not by the model itself, but by the\nenvironment in which the model interacts.",
"title": "Unnecessary AI?"
}