<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LLM on 魔都水滴</title>
    <link>https://blog.margrop.net/tag/llm/</link>
    <description>Recent content in LLM on 魔都水滴</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sun, 19 Jul 2026 20:30:00 +0800</lastBuildDate>
    <atom:link href="https://blog.margrop.net/tag/llm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>AI 为什么会一本正经地胡说八道？——你以为它在思考，其实它在玩‘超级成语接龙’</title>
      <link>https://blog.margrop.net/post/ai-hallucination-super-chengyu/</link>
      <pubDate>Sun, 19 Jul 2026 20:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/ai-hallucination-super-chengyu/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;AI 幻觉不是“模型偶尔抽风”，也不只是某个版本的 Bug。只要模型的核心任务仍然是：根据上下文预测下一段最可能出现的文字，那么它就可能生成一段听起来非常完整、语气非常肯定、实际上没有证据支撑的内容。&lt;/p&gt;&#xA;&lt;p&gt;最容易记住的比喻是：&lt;strong&gt;大语言模型像一个读过很多书、特别会接话的“超级成语接龙选手”。它擅长把句子接得顺，却不天然保证每句话都是真的。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>AI 为什么总说‘我忘了’？Token、上下文窗口与那叠写满就必须丢掉的便利贴</title>
      <link>https://blog.margrop.net/post/ai-token-context-window-sticky-notes/</link>
      <pubDate>Sun, 19 Jul 2026 18:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/ai-token-context-window-sticky-notes/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;AI 的“记忆力差”，很多时候不是它完全没有记住，而是当前对话能带进模型的内容有限。可以把上下文窗口想成一叠有限容量的便利贴：新的问题和工具输出不断贴上去，便利贴写满以后，系统就必须压缩、截断，或者把最旧的一部分移走。被移走的内容，模型在当前请求里就很可能再也看不到。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;你有没有遇到过这种场景：刚刚和 AI 约定“所有代码都用 Python”，聊了十几轮以后，它突然给出一段 JavaScript；你明明把项目背景写得很完整，AI 却又问了一遍“你使用的是什么系统”；或者你上传了一篇长文档，AI 能准确复述开头，却对中间那条最重要的限制条件一无所知。&lt;/p&gt;&#xA;&lt;p&gt;这看起来像“AI 记性不好”，但更准确的说法是：&lt;strong&gt;AI 每次回答时，能看到的内容受到上下文窗口限制；而能看到，也不代表它会同等重视每一段内容。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;本文不把 Token 讲成吓人的数学名词，而是把它讲成一套便利贴管理规则。你会看到 Token 是什么、上下文窗口如何装载、为什么长对话会遗忘、Agent 为什么更容易把窗口塞满，以及普通用户如何用简单的整理方法让 AI 少忘事。&lt;/p&gt;</description>
    </item>
    <item>
      <title>别把 API Key 到处塞了：我用 NewAPI 搭了一个自用 AI 中转站</title>
      <link>https://blog.margrop.net/post/newapi-self-hosted-relay-station/</link>
      <pubDate>Fri, 10 Jul 2026 15:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/newapi-self-hosted-relay-station/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;NewAPI 不是一个“白嫖模型”的工具，也不是一个神秘代理。它更像我家里的“AI 前台”：所有 App 只认一个入口，前台负责转发到合法授权的上游模型，顺手做令牌、额度、分组、日志、模型限制和用量统计。对自用场景来说，最舒服的地方不是“多了一个网页”，而是终于不用把每个上游 Key 分散塞进十几个客户端。&lt;/p&gt;&#xA;&lt;p&gt;本文会按我自己搭自用中转站的思路写：为什么需要它、容易误解在哪里、最小可用 Docker Compose 怎么跑、为什么我建议加持久化目录、Windows 11 / Ubuntu 26.04 / macOS 26 三套一键脚本怎么写，以及让 Agent 自动配置时应该给它什么边界。全文不放真实内网地址、完整主机名、私有域名和任何密钥。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>我把 AnythingLLM 装进 Docker 之后，容器像一只上紧发条的小松鼠——反复重启直到我把那个 1000:1000 给它</title>
      <link>https://blog.margrop.net/post/anythingllm-docker-deploy/</link>
      <pubDate>Wed, 17 Jun 2026 20:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/anythingllm-docker-deploy/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR（先说结论）&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;AnythingLLM 这只&amp;quot;啥都能塞进去的 LLM 口袋书&amp;quot;官方就有 Docker 镜像，正常情况下 &lt;code&gt;docker run&lt;/code&gt; 一行就能起；但它里面那位 &lt;code&gt;anythingllm&lt;/code&gt; 用户很挑剔——挂给它的宿主机目录必须属于 &lt;code&gt;1000:1000&lt;/code&gt;，否则它写不动自己的 SQLite 数据库，Prisma 启动迁移会直接挂掉，容器就会进入&amp;quot;重启—挂掉—再重启&amp;quot;的死循环。修起来不到一分钟：&lt;code&gt;chown -R 1000:1000 /你的数据目录&lt;/code&gt;，再 &lt;code&gt;docker compose up -d&lt;/code&gt; 一次，它就乖乖听 &lt;code&gt;3001&lt;/code&gt; 了。&lt;/p&gt;&#xA;&lt;p&gt;本文顺道把&amp;quot;Prisma 那个 &lt;code&gt;file:../storage/anythingllm.db&lt;/code&gt; 相对路径为什么能坑死人&amp;quot;讲清楚，最后附上 Portainer stack 写法、几条常见坑、以及中英两个 demo 地址。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Markdown 王座崩塌：当 AI Agent 走出聊天框，HTML 成为新答案</title>
      <link>https://blog.margrop.net/post/markdown-throne-falls-ai-agent-html-output/</link>
      <pubDate>Wed, 10 Jun 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/markdown-throne-falls-ai-agent-html-output/</guid>
      <description>如果说 2023 年是属于 ChatGPT 与 Markdown 的&amp;quot;聊天框时代&amp;quot;，那么 2026 年正在宣告一个新阶段的到来：AI 不再只是&amp;quot;回答&amp;quot;你，它要&amp;quot;接管&amp;quot;你的界面。当 Agent 开始直接控制浏览器、操作 SaaS、构建可交互的应用原型时，Markdown 曾经作为 LLM 输出的&amp;quot;事实标准&amp;quot;——那个简洁、可读、token 友好的优雅格式——正在迅速暴露出它作为&amp;quot;最后一公里&amp;quot;的致命短板。HTML，不是 Markdown，正在成为新一代 Agentic 输出的新答案。&#xA;一、导言：Markdown 的王座，是怎么建起来的？ 要理解这场变革的迫切性，我们得先回到 Markdown 当年&amp;quot;加冕&amp;quot;的历史现场。&#xA;2004 年，John Gruber 写下了一行看似不起眼的 Perl 脚本，目标极其朴素：让写网页的人能够用一种&amp;quot;读起来像写好的文章&amp;quot;的纯文本格式写作。Markdown 的设计哲学是&amp;quot;少即是多&amp;quot;——用 *斜体* 而不是 &amp;lt;em&amp;gt;斜体&amp;lt;/em&amp;gt;，用 # 标题 而不是 &amp;lt;h1&amp;gt;标题&amp;lt;/h1&amp;gt;。它的成功，本质上是一次&amp;quot;人类可读性&amp;ldquo;对&amp;rdquo;机器可表达性&amp;ldquo;的胜利。&#xA;二十年过去了。Markdown 早已不再只是博客圈的极客玩具，它渗透进了几乎所有数字写作场景：GitHub 的 README、Reddit 的评论、Notion 的文档、Discord 的消息、Slack 的频道、Jupyter Notebook 的单元格……它成了互联网&amp;rdquo;默认书写协议&amp;quot;。&#xA;而真正让 Markdown 登上 AI 王座的，是 2022 年末 ChatGPT 的横空出世。&#xA;OpenAI 在训练 GPT-3.5/4 时，让模型生成 Markdown 几乎是&amp;quot;母语级别的本能&amp;quot;——因为整个互联网的代码、文档、Stack Overflow 答案、技术博客，全是 Markdown 的海洋。当一个格式占据了 80% 的训练语料，它就不再是&amp;quot;一种格式&amp;quot;，而成了模型的&amp;quot;母语&amp;quot;。</description>
    </item>
    <item>
      <title>别再迷信 Agent 框架：12-Factor Agents 才是 AI 时代的工程底线</title>
      <link>https://blog.margrop.net/post/12-factor-agents-agent-principles/</link>
      <pubDate>Sat, 23 May 2026 14:50:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/12-factor-agents-agent-principles/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;12-Factor Agents&lt;/code&gt; 不是一个让你安装后直接开箱即用的 Agent 框架，也不是某种 Codex / Claude / Cursor 里的 Skill。它更像 AI 时代写 Agent 的工程原则清单：当你发现“把大模型、工具列表和一个 while loop 拼起来”只能做到 70% 到 80% 可用，却迟迟过不了生产质量线时，这套原则会提醒你把提示词、上下文、工具调用、状态、人类审批、错误压缩和控制流重新收回到软件工程手里。&lt;/p&gt;&#xA;&lt;p&gt;我最喜欢它的一点，是它没有把 Agent 神化。相反，它反复强调：可靠的 Agent 并不是“让模型自由发挥”，而是把 LLM 放在一个可观察、可恢复、可审计、可中断、可复现的系统里。真正值得学习的不是某个框架 API，而是这背后的工程姿势。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;本文所有示例都使用公开项目、公开链接和占位符，不包含真实服务器地址、账号、Token、业务配置或任何内网信息。文中配图来自 HumanLayer 开源项目 &lt;code&gt;12-factor-agents&lt;/code&gt; 的官方仓库，内容按其 CC BY-SA 4.0 授权引用；代码授权信息以原仓库为准。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
