{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "tanghoong",
  "description": "Levelling up in public — notes from building AI systems solo.",
  "home_page_url": "https://blog.tanghoong.com/",
  "feed_url": "https://blog.tanghoong.com/feed.json",
  "language": "en",
  "authors": [
    {
      "name": "tanghoong",
      "url": "https://github.com/tanghoong"
    }
  ],
  "items": [
    {
      "id": "https://blog.tanghoong.com/posts/engineering/an-ai-agent-does-not-need-to-remember-everything-zh/",
      "url": "https://blog.tanghoong.com/posts/engineering/an-ai-agent-does-not-need-to-remember-everything-zh/",
      "title": "AI Agent 不需要記住所有事",
      "summary": "讓 agent 講出一個像樣的答案，已經不是最難的部分。難的是它明天還能用——而那其實不是記憶問題，是狀態問題。",
      "content_text": "讓 agent 講出一個像樣的答案，已經不是最難的部分。難的是它明天還能用——而那其實不是記憶問題，是狀態問題。",
      "date_published": "2026-08-02T00:00:00.000Z",
      "date_modified": "2026-09-06T20:00:59.000Z",
      "tags": [
        "engineering",
        "AI Agents",
        "Enterprise AI",
        "System Architecture",
        "中文"
      ]
    },
    {
      "id": "https://blog.tanghoong.com/posts/engineering/sync-or-async-for-an-ai-support-chatbot/",
      "url": "https://blog.tanghoong.com/posts/engineering/sync-or-async-for-an-ai-support-chatbot/",
      "title": "Sync or async for an AI support chatbot",
      "summary": "If customer A is waiting for the LLM, does customer B have to wait too? The answer is an architecture decision, and it matters long before you have a thousand customers.",
      "content_text": "If customer A is waiting for the LLM, does customer B have to wait too? The answer is an architecture decision, and it matters long before you have a thousand customers.",
      "date_published": "2026-08-02T00:00:00.000Z",
      "date_modified": "2026-09-06T20:00:59.000Z",
      "tags": [
        "engineering",
        "AI Agents",
        "System Architecture",
        "Backend Engineering",
        "LLM"
      ]
    },
    {
      "id": "https://blog.tanghoong.com/posts/engineering/sync-or-async-for-an-ai-support-chatbot-zh/",
      "url": "https://blog.tanghoong.com/posts/engineering/sync-or-async-for-an-ai-support-chatbot-zh/",
      "title": "AI 客服系統該用同步還是非同步？",
      "summary": "客戶 A 在等 LLM 回應的時候，客戶 B 要不要跟著等？這是個架構問題，而且遠在你有一千個客戶之前就開始有影響。",
      "content_text": "客戶 A 在等 LLM 回應的時候，客戶 B 要不要跟著等？這是個架構問題，而且遠在你有一千個客戶之前就開始有影響。",
      "date_published": "2026-08-02T00:00:00.000Z",
      "date_modified": "2026-09-06T20:00:59.000Z",
      "tags": [
        "engineering",
        "AI Agents",
        "System Architecture",
        "Backend Engineering",
        "LLM",
        "中文"
      ]
    },
    {
      "id": "https://blog.tanghoong.com/posts/engineering/an-ai-agent-does-not-need-to-remember-everything/",
      "url": "https://blog.tanghoong.com/posts/engineering/an-ai-agent-does-not-need-to-remember-everything/",
      "title": "An AI agent does not need to remember everything",
      "summary": "Producing a convincing answer is no longer the hard part. The hard part is the agent still working tomorrow — and that turns out to be a state problem, not a memory problem.",
      "content_text": "Producing a convincing answer is no longer the hard part. The hard part is the agent still working tomorrow — and that turns out to be a state problem, not a memory problem.",
      "date_published": "2026-08-01T00:00:00.000Z",
      "date_modified": "2026-09-06T20:00:59.000Z",
      "tags": [
        "engineering",
        "AI Agents",
        "Enterprise AI",
        "System Architecture",
        "AI Engineering"
      ]
    },
    {
      "id": "https://blog.tanghoong.com/posts/welcome/",
      "url": "https://blog.tanghoong.com/posts/welcome/",
      "title": "Why this blog is a folder of markdown files",
      "summary": "No database, no CMS, no admin panel, no server. Not because those things are bad, but because every one of them is a cost I would keep paying long after the novelty of setting it up wore off.",
      "content_text": "No database, no CMS, no admin panel, no server. Not because those things are bad, but because every one of them is a cost I would keep paying long after the novelty of setting it up wore off.",
      "date_published": "2026-07-29T00:00:00.000Z",
      "date_modified": "2026-09-06T20:00:59.000Z",
      "tags": []
    }
  ]
}