<?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/tags/go/</link>
        <description>Recent content in Go on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sat, 06 Jun 2026 22:26:00 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/go/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>DeepSeek-Reasonix 怎么用？DeepSeek 原生终端编程代理</title>
        <link>https://knightli.com/2026/06/06/deepseek-reasonix-terminal-coding-agent/</link>
        <pubDate>Sat, 06 Jun 2026 22:26:00 +0800</pubDate>
        
        <guid>https://knightli.com/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/2026/06/06/golang-go-official-repository-guide/</link>
        <pubDate>Sat, 06 Jun 2026 22:26:00 +0800</pubDate>
        
        <guid>https://knightli.com/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>
