數月前,在我們公布智慧體安全產品路線圖時,第一時間幾乎沒有任何回響。
於是我們開始找專業人士,點對點地尋求意見。這個由 AVL Code、AVL Claw、AVL MCP、AVL Skill 組合而成的新品「矩陣」,收穫的幾乎都是負回饋:
- 這幾個就不是一個東西,Skill 怎麼能和 Claw 並列呢?
- AVL MCP 是什麼鬼,你們要自己搞個私有協定麼?
- 明明有開源的 Claw,用就行了,又重複發明輪子!
- AVL Code?你們這是要挑戰 Claude Code 嗎?你們的瀾砥模型行嗎?還有 Cursor 呢!就是 OpenCode 你們也挑戰不了吧。
我們不知道該如何回答這些問題,於是決定依靠直覺,從 AVL Code 啟動——而那時最火的是 Claw。
做了才知道
雖然 IT 部門翻出一堆古董筆電、搞了一屋子「蝦機」,並先把 IT 營運實踐了起來,但在研發推進中,第一個中止出局的反而是 AVL Claw。
公司為瀾砥團隊定的任務是:打造 AI 驅動的可靠安全生產力工具。而「蝦機」們的怠工、欺騙——有的「蝦」每天自己跑去刷 NBA……——讓我們意識到,自己實現 Claw 並不能避免這些問題。完全的系統控制、直接掌握大量登入憑證,挑戰了我們對安全紅線的理解;更重要的是,我們並非要打造全能生活助理,而是要讓它實現穩定的生產力輸出。於是果斷中止 AVL Claw,加速 AVL Code。
AVL Code,我們定義為 AI 智慧程式開發與安全分析桌面助手。它的模式很清晰:工程師以之為工具,講清楚任務,讓 AI 幹活;安全圍欄很清晰:作為用戶端,可以設定嚴格的行為管控策略,也運行在主機的安全機制之下,不會如「龍蝦控腦」般狂奔;對標對象很清晰:Claude Code、Codex、Cursor 都如高山在前,可以借鑑、可以攀援;初始發力方向也很清晰:模型的局限先天就決定了我們無法在純程式開發能力上比拼(但不能沒有),所以還是從我們最擅長的安全分析、逆向工程做技能強化,再逐步補強程式開發能力。我們內建了可執行格式解析、雜湊、熵、十六進位、反匯編、反編譯、安全領域知識庫等工具。
在向前衝擊的過程中,模糊的都會清晰化,死路都會被驗證走不通,關於 Skill 和 MCP 的爭議也迅速清晰了起來。
AVL Skill 最初的設想,是建構一個帶有安全檢測和憑證驗簽的技能體系,從而建立一條可信鏈。用國密演算法做驗證很快就做好了;然而儘管 Skill 投毒事件頻發,整個 AI 工具鏈體系依然在簡單的信任模式下向前狂奔。於是,這套機制就很自然地沉澱為 AVL Code 的內部機制。
AVL MCP 的情況也差不多。最初提設想時,是想把它作為防毒引擎的一個擴充元件。大鬍子說,「我們的防毒引擎是物件檢測,在 AI 時代要擴充到過程檢測」,於是就考慮把安全機制嵌入到智慧體的呼叫過程中,作為新的中介軟體產品。但在快速成長的時代,人們往往不會為安全買單,於是 AVL MCP 也被 AVL Code 吸收了。
AVL Code 還沒有被證明此路不通,那我們就要加速。於是我們定下了至少每日一更——當然,觸發更新的更主要因素不是功能添加,而是及時解決各種小 bug。最頻繁的一次,是某一天發布了 6 次版本更新。
狗食先自吃
尋找試用使用者並不容易。在資深工程師的技術圈子裡,即使你把帶著 1000 點券的邀請碼送上,他都可能心如止水、點滴不動。真正的好兄弟,並不是點個讚哄你開心,而是直接告訴你:我是 Codex 和 CC 的雙槍將,每月用的是 MAX 方案。在 Codex 和 CC 的重度使用者中,很多人都覺得用其他 Code 是浪費生命。
資安圈子呢?你前手給人家提供一個邀請碼,幾分鐘後,日誌裡就看到一記悍然的注入。反正每天網際網路側都是大量攻擊事件,IT 部門也在常態化自動回應——我們早已習慣了「開放服務就會被攻擊」的常態。
讓別人用,前提是自己用起來。安天一直強調「狗食自吃(Dogfooding)」。這一理念是從微軟學來的:1988 年,微軟 DOS 已經基本統治個人主機,但區域網路作業系統產品 LAN Manager 被 Novell 吊打,沒有外部使用者。高階主管 Paul Maritz 寫了一封郵件,標題是 "Eating our own Dogfood",意思很簡單——沒人用,就自己先用。
AVL Code 當然也想搞內部全面推廣。但顧慮是:擔心 GPU 算力要優先保外部測試體驗,因此內部一直沒有提供下載位址;而在外側入口看到內部申請時,產品經理反而基本不給放行。但同事們發現,AVL Code 其實只要登入公司 SSO 就可以試用,於是不再透過申請索要下載位址,而是以可執行程式「人傳人」的方式,開始了內部試用。
測試部門率先開始燒 Token。他們當時要測一個輔助小工具「網管之手」,作業系統相容性要求很細。在相容性分析環節,AVL Code 幾分鐘就跑完了人工幾小時的活,把模糊的「應該能跑」變成量化的「能跑、不能跑、原因是什麼」,產出一張可直接驅動測試設計、技術選型、部署規劃的全景相容性地圖。隨後,他們又用 AVL Code 智慧安裝設定 cve-mcp-server,從自然語言指令到 MCP 服務就緒,實現了研發與測試環境的全自動閉環交付。
安服上手 AVL Code,來自一次小實戰。一天晚上接到主管部門要求:為回應蘋果手機漏洞,安天要快速發布一個線上檢查頁面,引導低版本使用者升級。值班的哥們並不會寫程式碼,於是把工作要求扔進了 AVL Code,頁面工具就生成了。
我們最心心念念的安天 CERT 同志們,反而沒有第一時間跟進——CERT 最初並不相信 AI 從逆向到溯源能做得比他們更好。改變發生在今年 3 月:跟進回應 Axios 遭遇的 npm 儲存庫木馬投毒事件時,工程師幾乎是抱著懷疑把樣本丟給 AVL Code 做分析和溯源判定,數分鐘後,AVL Code 吐出「組織歸屬結論:40–50% 可能歸屬專業網路犯罪組織或新興 APT,25–30% 可能歸屬 Lazarus Group 分支」。而 CERT 人工分析的結論是:來自 Lazarus。自此,CERT 部門裡的 AVL Code 使用者瞬間激增。
而在分析 Shai-Hulud(TeamPCP 蠕蟲)時,AVL Code 的輸出直接為工程師標定了「claude/settings.json 的 SessionStart 鉤子」,從而支撐了「蠕蟲主體功能是用 Claude Code 編寫的」這一判斷。
試用總結下來的結論是:使用效果最好的部門,是把 AVL Code 嵌入了工作流程。而工作流程的重構並不是設計出來的,而是在與智慧體的磨合中,自然湧現出了合理的方式。
硬體是大問題,但智慧不是問題
用多少張卡來支撐自用和外測?咬牙切齒也就湊出 8 張。我們起初以為可能十幾個人併發就會跑滿,但 8 張卡竟然咬牙撐住了。邏輯就是兩個字——「優化」,或者五個字——「優化再優化」。
卡是永遠不夠的。但卡不夠,就不做 AI 了嗎?
去年在機場候機時,鄰座一位大仙正在和幾個人狂侃 AI——我是來答辯瀾砥垂直大模型備案的,而他在講如何判斷一個 AI 專案。然後他突然發現了正在敲程式碼的我。
「那兄弟,別幹活了,以後都不用幹活了,都大模型幹了。」
「哦,我們也搞大模型,我們也做了一個基模。」
「你們還搞了個基模?」
「垂直的、二進位的……」我有些悻悻地說。
「別談什麼壹進位、二進位,你們有多少張卡……」
雖然我沒想明白「壹」怎麼進位,但還是咬咬牙,決定把老弱病殘的 3090 也算上,顫顫巍巍地說:20 多張……
「沒有一萬張卡,搞什麼基模。」
老哥瞬間抹殺了我們存在的意義。我心裡憤憤——「壹萬張卡」,你就知道「壹萬卡」——但沒說什麼,繼續幹自己的活。
先知不與你同行,但 AI 與你同行
從 ChatGPT 橫空出世以來,很多人都同時被期待感與焦慮感包裹著,我們也一樣;包括歷史上錯誤的判斷和選擇,也都會在這時被心理上放大。
2011 年,GPU 加速已被極度關注的時候,我們最開始想的是把它放到最高速的網路檢測設備上,來提升協定堆疊和病毒比對的效率,但驗證結論並不理想——GPU 擅長大量併發,而網路流量檢測卻有極高的即時性要求。在判斷「對樣本自動化分析」的價值時,當時內部一致的結論是:GPU 幹和 CPU 幹沒有本質區別。於是我們一邊申請專利「一種基於 GPU 和緩衝區的網路資料處理方法及系統」,一邊又形成了「GPU 對網路安全用處不大」的基本判斷。
這是過早的實踐反而做出了錯誤的判斷嗎?回望時,我們認為不是。要走正確的道路,試錯是必須的,而且更需要持續。
在這個變革的時代,思考難以招架資訊的膨脹,資訊之間交叉、對立,人人都在用 AI,人人理解的 AI 又都不一樣。每一次腦力激盪,都能發散出一堆「可幹」的創意,然後每個創意又都能找到一堆「不好幹」的理由。
我們也渴望先知大神指點迷津,於是反覆經歷:辛頓說……,然後李飛飛說……,楊立昆說……,然後感覺大神說得對、大神們說的好像又不太一樣、大神說的好像和我這個領域關係不大……
「寧要一個堂吉訶德,不要十個哈姆雷特。」這是我入職安天時,貼在工位旁一張 A4 紙上列印的標語。這句話對我的影響,遠勝過了幾天的入職培訓。
AI 時代能更好地輔助思考,但反覆思辨、遲疑,就會在可能性中癱瘓;AI 時代也無與倫比地降低了行動的門檻,先行動、快速試錯,就可以把想像推向現實。
做「哈姆雷特」,還是「堂吉訶德」?這是一個選擇。我們選擇做帶有持續回饋機制的堂吉訶德和桑丘。
我們開發 AVL Code,也希望讓更多人成為 AI 時代的行動者。
Claude Code、Codex、Cursor,你們真的無比強大,但——我們騎著驢來了!
