<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Go on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/go/</link>
        <description>Recent content in Go on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sat, 06 Jun 2026 22:26:00 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/go/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>DeepSeek-Reasonix 怎麼用？DeepSeek 原生終端編程代理</title>
        <link>https://knightli.com/zh-tw/2026/06/06/deepseek-reasonix-terminal-coding-agent/</link>
        <pubDate>Sat, 06 Jun 2026 22:26:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/06/deepseek-reasonix-terminal-coding-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;esengine/DeepSeek-Reasonix&lt;/code&gt; 是一個面向終端的 AI 編程代理。它和很多「套一層 OpenAI API 的 CLI」不太一樣，專案定位是 DeepSeek-native：圍繞 DeepSeek 的 prefix cache 穩定性來設計，讓長會話成本更低，也更適合一直開著工作。&lt;/p&gt;
&lt;p&gt;README 裡對它的描述很直接：一個 config- and plugin-driven harness，單個靜態 Go binary，模型、Agent、工具和插件都放在 &lt;code&gt;reasonix.toml&lt;/code&gt; 裡聲明。&lt;/p&gt;
&lt;h2 id=&#34;它解決什麼問題&#34;&gt;它解決什麼問題
&lt;/h2&gt;&lt;p&gt;終端編程 Agent 現在很多，但常見問題也明顯：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;配置寫死，換模型不方便；&lt;/li&gt;
&lt;li&gt;工具接入方式不統一；&lt;/li&gt;
&lt;li&gt;長會話 prompt 一直變，快取命中率差；&lt;/li&gt;
&lt;li&gt;每次任務都重新開始，token 成本高；&lt;/li&gt;
&lt;li&gt;想用 DeepSeek，但現有工具未必按 DeepSeek 的特點最佳化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reasonix 的重點不是「又一個聊天 CLI」，而是把 DeepSeek 的 prefix cache 當作設計中心。長會話裡如果前綴穩定，快取命中更好，成本和速度都會更可控。&lt;/p&gt;
&lt;h2 id=&#34;核心設計&#34;&gt;核心設計
&lt;/h2&gt;&lt;p&gt;專案 README 裡列出的幾個特點值得關注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Config-driven：provider、agent、tools、plugins 都透過 &lt;code&gt;reasonix.toml&lt;/code&gt; 配；&lt;/li&gt;
&lt;li&gt;Multi-model：DeepSeek flash/pro 和 MiMo 有預設，也可以接任何 OpenAI-compatible endpoint；&lt;/li&gt;
&lt;li&gt;Composable：可以讓 executor 和 planner 兩個模型分工；&lt;/li&gt;
&lt;li&gt;Plugin-driven：外部工具透過 stdio JSON-RPC 子程序接入，兼容 MCP 思路；&lt;/li&gt;
&lt;li&gt;Built-in tools：內建工具編譯時自註冊；&lt;/li&gt;
&lt;li&gt;Single static Go binary：部署簡單，不需要拖一堆執行時。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;對喜歡把開發環境放在終端裡的人來說，這個方向很清爽。配置文件就是控制台，插件就是能力邊界。&lt;/p&gt;
&lt;h2 id=&#34;適合怎麼用&#34;&gt;適合怎麼用
&lt;/h2&gt;&lt;p&gt;Reasonix 更適合這些場景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你已經在用 DeepSeek 做程式碼任務；&lt;/li&gt;
&lt;li&gt;希望終端裡有一個常駐編程 Agent；&lt;/li&gt;
&lt;li&gt;想圍繞 prefix cache 最佳化長會話成本；&lt;/li&gt;
&lt;li&gt;想把工具和插件透過配置組合起來；&lt;/li&gt;
&lt;li&gt;想用 OpenAI-compatible endpoint 切換不同模型；&lt;/li&gt;
&lt;li&gt;喜歡 Go 單文件二進位的部署方式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它不一定適合完全不碰終端的使用者。如果你更喜歡 IDE 內建體驗，Cursor、Copilot 或 Claude Code 可能更順手。Reasonix 的氣質更偏工程師工具箱：配置、插件、終端、長會話。&lt;/p&gt;
&lt;h2 id=&#34;和-claude-code--codex-的區別&#34;&gt;和 Claude Code / Codex 的區別
&lt;/h2&gt;&lt;p&gt;Claude Code、Codex 這類工具更像完整產品，Reasonix 更像可配置的 Agent harness。&lt;/p&gt;
&lt;p&gt;你可以這樣理解：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;工具&lt;/th&gt;
          &lt;th&gt;更像什麼&lt;/th&gt;
          &lt;th&gt;適合誰&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code / Codex&lt;/td&gt;
          &lt;td&gt;開箱即用的編程 Agent&lt;/td&gt;
          &lt;td&gt;想快速完成任務的人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Cursor&lt;/td&gt;
          &lt;td&gt;IDE 內的 AI 開發環境&lt;/td&gt;
          &lt;td&gt;重度圖形介面和專案編輯使用者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek-Reasonix&lt;/td&gt;
          &lt;td&gt;面向 DeepSeek 和終端工作流的 Agent 框架&lt;/td&gt;
          &lt;td&gt;想控制配置、工具和成本的人&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Reasonix 的優勢在可控和 DeepSeek 最佳化，代價是你需要理解配置和插件，不會像商業 IDE 那樣一路點點點。&lt;/p&gt;
&lt;h2 id=&#34;使用前要想清楚&#34;&gt;使用前要想清楚
&lt;/h2&gt;&lt;p&gt;終端編程 Agent 能力越強，風險也越大：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文件讀寫、命令執行和網路存取要有邊界；&lt;/li&gt;
&lt;li&gt;插件來源要可信；&lt;/li&gt;
&lt;li&gt;長會話快取不是權限隔離；&lt;/li&gt;
&lt;li&gt;多模型協作時要注意 planner 和 executor 的職責；&lt;/li&gt;
&lt;li&gt;不要把生產密鑰、伺服器憑據直接暴露給 Agent；&lt;/li&gt;
&lt;li&gt;自動修改程式碼後仍然要跑測試和 review。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你準備長期使用，建議先在個人專案裡跑通，再逐步接入正式倉庫。尤其是能執行 shell 的 Agent，權限要從小給起。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;DeepSeek-Reasonix 的價值在於，它把 DeepSeek 的成本特性和終端編程代理結合起來。它不是最「傻瓜式」的工具，但對願意調配置、接插件、長期駐留終端的人來說，很有吸引力。&lt;/p&gt;
&lt;p&gt;如果你的目標是「用 DeepSeek 做一個可控、低成本、長會話的本地終端編程代理」，Reasonix 值得試。如果你只是偶爾讓 AI 改幾行程式碼，直接用現成 IDE 插件可能更省心。&lt;/p&gt;
&lt;h2 id=&#34;參考來源&#34;&gt;參考來源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/esengine/DeepSeek-Reasonix&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;esengine/DeepSeek-Reasonix - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Go 語言官方倉庫怎麼看？從源碼理解 Go 的演進</title>
        <link>https://knightli.com/zh-tw/2026/06/06/golang-go-official-repository-guide/</link>
        <pubDate>Sat, 06 Jun 2026 22:26:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/06/golang-go-official-repository-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;golang/go&lt;/code&gt; 是 Go 程式語言的官方倉庫。它不只是原始碼倉庫，也是 Go 編譯器、runtime、標準函式庫、工具鏈、issue 討論和語言提案的重要入口。&lt;/p&gt;
&lt;p&gt;如果你只是寫業務代碼，不一定每天看它；但如果你想理解 Go 為什麼這樣設計，官方倉庫是繞不開的。&lt;/p&gt;
&lt;h2 id=&#34;倉庫裡有什麼&#34;&gt;倉庫裡有什麼
&lt;/h2&gt;&lt;p&gt;Go 官方倉庫包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go 編譯器；&lt;/li&gt;
&lt;li&gt;runtime；&lt;/li&gt;
&lt;li&gt;標準庫；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;go&lt;/code&gt; 指令和工具鏈；&lt;/li&gt;
&lt;li&gt;測試和建置腳本；&lt;/li&gt;
&lt;li&gt;issue 和 proposal 討論；&lt;/li&gt;
&lt;li&gt;release 相關變更。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;很多你平常使用的能力，像是 goroutine、channel、GC、標準函式庫網路包、模組工具鏈，都能在這裡找到源頭。&lt;/p&gt;
&lt;h2 id=&#34;適合誰看&#34;&gt;適合誰看
&lt;/h2&gt;&lt;p&gt;適合這些人：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go 後端開發者；&lt;/li&gt;
&lt;li&gt;想理解 Go runtime 和調度的人；&lt;/li&gt;
&lt;li&gt;關注 Go 版本演進的人；&lt;/li&gt;
&lt;li&gt;寫高效能服務的人；&lt;/li&gt;
&lt;li&gt;做語言、編譯器或標準函式庫研究的人；&lt;/li&gt;
&lt;li&gt;遇到標準庫邊界問題，需要查實現的人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不建議一開始就硬啃全倉庫。可以從自己熟悉的標準函式庫包開始，例如 &lt;code&gt;net/http&lt;/code&gt;、&lt;code&gt;context&lt;/code&gt;、&lt;code&gt;sync&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;學-go-不只看文法&#34;&gt;學 Go 不只看文法
&lt;/h2&gt;&lt;p&gt;Go 的核心不在文法複雜，而在工程取捨：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;簡潔文法；&lt;/li&gt;
&lt;li&gt;強標準庫；&lt;/li&gt;
&lt;li&gt;並發模型；&lt;/li&gt;
&lt;li&gt;快速建置；&lt;/li&gt;
&lt;li&gt;格式統一；&lt;/li&gt;
&lt;li&gt;部署簡單；&lt;/li&gt;
&lt;li&gt;語言演進克制。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;理解這些設計取捨，比背語法更有用。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;golang/go&lt;/code&gt; 是 Go 生態的根。普通開發者可以把它當作查證標準庫行為、關注版本變化和學習 runtime 的入口。&lt;/p&gt;
&lt;p&gt;如果你已經寫了一段時間 Go，偶爾讀讀官方源碼，會比只看教程更紮實。&lt;/p&gt;
&lt;h2 id=&#34;參考來源&#34;&gt;參考來源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/golang/go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;golang/go - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
