模型夠聰明,Loop 才真的轉得起來

模型能力不足時,流程看起來有 agent、有 ticket、有 tool call,也有 PR;實際運作起來,卻是:

Coding agent 提出問題
→ Orchestrator 知道需要人類決策
→ Relay 失敗或 timeout
→ Orchestrator 開始自作主張
→ 人類手動開 terminal、貼 ticket、搬答案、搬 PR link

最後,人類被迫成為整條 loop 的 breakpoint,還要 on-call 當文件小弟。

往高情商想,這讓人類很有參與感。往工程角度看,這是讓整個系統裡最昂貴、最容易被打斷的節點,負責最不需要思考的 copy-and-paste。堪稱業界創舉。

Grok 4.5 和 GPT‑5.6 Sol 帶給我的最大 Culture Shock,不是 benchmark 分數,而是 Orchestrator 第一次能穩定地…..

跟一群AI一起工作,是怎樣的一個體驗

三個禮拜,我幫自己找了一群 AI 同事。薪水不高,脾氣不錯,不適用勞基法,但會吐槽我。

Hermes 當 TPM 負責開票,Codex 當工程師負責寫 code,Grok 當那個 review時話很多的吃瓜群眾。我?我就負責在它們吵起來的時候出來說「你們都給我冷靜」。

整件事最可怕的發現是:AI 寫的 code 測試全過、lint 全綠——然後功能全錯。

LLM Wiki on Cloud:把你的過去知識,餵進 LLM 的對話裡帶著走

Andrej Karpathy 前陣子提了一個概念:LLM Wiki——把 wiki 的結構化知識和 LLM 的語言能力結合,讓 AI 不只是生出看似合理的文字,而是基於你真正寫過的、整理過的、沉澱過的知識來回答問題。

老實講,這概念一看就覺得「對啊,為什麼沒有人這樣做?」於是我自己刻了一個。

LLM Wiki Cloud MVP status

一個基於 Karpathy LLM Wiki 哲學的雲端知識庫服務。把素材丟進去,AI 自動讀懂、重組成結構化 wiki,然後你可以用自然語言查詢整個知識庫——每個答案都有 citation,點擊就能追回原始文章。跟 RAG 最大的差別:不是查詢時才匆匆翻幾頁,而是入庫當下就讓 LLM 把知識整理好。

如何在CLion上用Rust玩LeetCode

之前花了不少時間在goland上跑起leetcode plugin,需要一些設定才可以讓整個goland跑起來。現在多了一個Rust可以玩解題,那我們首先還是要先把整個環境搭起來啦!

需要條件

  • CLion。官方Rust套件是比較prefer CLion,我不太確定其他的JetBrains系列IDE能不能跑,反正我是用CLion跑起來就是了。
  • Cargo/rustc 這在裝官方的rust套件應該就已經裝上去了。如果你不知道這是啥的話,先把rust學熟在想著用rust解題吧….
  • IntelliJ Rust Plugin,雖然官方建議用CLion跑,不過看這名字….應該可以在IntelliJ跑起來?
  • LeetCode Editor or LeetCode Editor Pro ,兩者其實差異不大,只差在後者login比較方便,前者要去找session ID。我是覺得他對我幫助很大,我就付費支持啦。
Read more “如何在CLion上用Rust玩LeetCode”
Leave a comment

Go 1.18:Generic and Fuzz

錯誤的種類

在講這個之前,先提一下主流語言通常「錯誤檢出」方面通常分為三個階段:

  • 編譯前階段 (pre-compile time)
    • 指的是這個錯誤不需要被編譯即可被檢出
    • 很多語言沒有這東西,他需要language server protocol(LSP)支援,如gopls
    • 很多IDE各語言的賣點就是自己獨到的LSP,但是剛好拿來做利子的C++擁有非常混亂的LSP實作,常常pre-compile time報錯,但是compile下去沒問題,以及反之….主要也是因為C++實在是過於複雜。
  • 編譯階段 (compile time)
    • 指的是這個錯誤在編譯的時候就可以找出來
    • 前兩者也可以並稱為compile time,如果沒有要特別指名LSP提供的功能的話。
  • 執行階段 (runtime)
    • 指的是這個錯誤需要在執行期才會發作

而go是一個滿特殊的語言,他能夠把一些runtime才能檢出的東西藉由gopls以及go vet 做結構性語法檢查下,將錯誤把runtime提前到pre-compile time。

Read more “Go 1.18:Generic and Fuzz”
Leave a comment

用tag實作Password Mask

我其實滿驚訝目前好像沒有任何library有實作這個,或者有但是我找不到,所以我就實作了一個。別看這功能看起來很小巧簡單,這個需要對reflect有相當的認識,所以把製作心得記錄下來。

成品網址

https://github.com/Rayer/hood

需求

通常我們server boot up的時候需要印出很多log,有時候無可避免的要把整個config給印到log上,這樣會產生一個問題:要是config內含敏感資訊,如帳號跟密碼,這就會產生一些資安問題:

log.Infof("bootup with config : %+v", config)

印出來就會像這樣(標準的%+v會印出來的格式)

{Host:192.168.1.1 User:username Password:mypassword123}


顯然,這是不太恰當的,所以我們總歸來講有幾種作法

  1. 把他轉json再印,把敏感的地方用 json:"-"讓他不被印出來
  2. 實作 func String() string,把敏感資料手動by key抹除掉
Read more “用tag實作Password Mask”
Leave a comment

將服務遷移到Google Cloud Functions

最近開始把腦筋動到每個月要吃掉我20鎂的linode,看看能不能用Google Compute Platform來取代掉單純的VM。GCP本身有提供Free Tier, 所以只要小心地控制用量,搬遷應該是可以省下一筆,而且也可以玩玩GCP的一些新功能。

需求分析

我這次先搬遷之前寫的一個爬蟲服務,這個爬蟲服務應該是我現有服務裡面最簡單的一個,首先先分析一下他有什麼特性:

  • 需要定時被喚醒(設計上大概10分鐘一次就夠了)
  • 需要一個地方存放爬下來的分析資料
  • 不需要實體上的Database
  • 程式本體相當小
Read more “將服務遷移到Google Cloud Functions”
Leave a comment