Skip to content
所有標籤

#python

44 篇文章

Looplane 的 provider-neutral native loop:一次 model turn 如何走到驗證終態

Looplane 的 native lane 由 AgentRunner 掌握狀態轉移:準備 workspace、送出 model request、執行 tool calls、寫回 observations,模型沒有再呼叫工具時才進入 verification。step、wall time、重複動作、token 與取消條件都能先於模型宣告終止 run;provider adapter 的協定翻譯留給下一篇。

Looplane 的工具隔離:path allowlist、argv 嚴格化、process group 與 credential-free subprocess

這篇只拆 Looplane 的 tool executor 如何把一次呼叫安全落地:`SafePathPolicy` 限制 path 並阻擋 symlink escape,`VerificationCommand` 固定 argv 且使用 `shell=False`,subprocess 只拿清理過的 env,寫入走 read-version hash 與 atomic replace,timeout 會終止整個 process group。權限決策、OS sandbox 與 tool program 各留給後續專篇。

Looplane 架構地圖:一次 coding-agent 任務如何穿過 workspace、runtime、tools 與 events

Looplane 把 coding-agent 任務拆成可追蹤的邊界:native runtime 的副作用經過 Looplane tools、permission 與 sandbox;external runtime 保留自己的 loop 與工具,再把 patch 交回 Looplane 稽核。這篇是規劃中 20 篇系列的入口地圖。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 1:Knowledge——命題邏輯、模型檢查、推理規則與知識表示

Week 1 進入知識表示與推理:命題邏輯連結詞、模型檢查算法、Modus Ponens/Resolution 推理規則、CNF 轉換,專案 Knights 與 Minesweeper 實作邏輯謎題與掃雷 AI。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 2:Uncertainty——機率、貝氏網路、馬可夫模型與遺傳推斷

Week 2 從確定性轉向機率:貝氏法則、貝氏網路 D-separation、馬可夫模型、PageRank 隨機漫步,專案 Heredity 算基因型、PageRank 算網頁權重。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 3:Optimization——局部搜尋、模擬退火、約束滿足問題與填字遊戲

Week 3 探討優化問題:爬山算法、模擬退火逃離局部最優、CSP 框架與 AC-3 弧一致性、回溯搜尋,專案 Crossword 實作填字遊戲生成器。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 4:Learning——監督式學習、k-NN、SVM、強化學習 Q-learning 與 Nim

Week 4 進入機器學習:監督式分類(k-NN、SVM、Perceptron)、模型評估、強化學習基礎(MDP、Q-learning、ε-greedy),專案 Shopping 預測購買意願、Nim 學會玩遊戲。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 5:Neural Networks——反向傳播、TensorFlow/Keras、CNN 與交通號誌辨識

Week 5 進入神經網路:感知機到多層網路、反向傳播鏈式法則、損失函數、優化器、TensorFlow/Keras 實作、CNN 卷積/池化、專案 Traffic 訓練 CNN 辨識交通號誌。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 6:Language——N-gram 語言模型、TF-IDF 問答系統、Parser 與 Attention

Week 6 處理自然語言:N-gram 語言模型平滑、CFG 句法解析、TF-IDF 文檢索、注意力機制、Transformer 概念,專案 Parser 生成句子、Questions 實作問答系統。

Harvard CS50 AI 綜論(一):從搜尋到語言——七週 AI 知識弧線的完整圖譜

綜論第一篇:梳理七週主題如何從符號搜尋一路延伸到語言模型,揭示古典 AI 到現代 ML 的知識脈絡與設計哲學。

Harvard CS50 AI 綜論(二):專案組合全景——十二個 Projects 逐一比較、難度分級與技能對照表

綜論第二篇:十二個專案完整比較——算法核心、代碼量、難度、驗收重點、可遷移技能,附難度分級與學習建議。

Harvard CS50 AI 總結:什麼永恆、什麼改變、下一步走哪條路

系列最終篇:回顧七週十二專案的永恆核心、2020/2023 錄影在 2026 年的缺口、免費 OCW 路線的完整性,給出後續學習路線圖(Transformer、LLM、RAG、Agent、評測)。

Harvard CS181 HW0:開學前先做這 4 題,卡哪題就先補哪裡

HW0 用四題檢查 CS181 的先修:矩陣 y=Xw 的可解條件、目標函數的微分與優化、機率推理,以及用 Python 實作 OLS。做不順的地方就是開學後要優先補的缺口。

Harvard CS181 HW1:冰芯溫度迴歸— 先掌握線性、核、神經網路三條路徑

HW1 以 800k 年冰芯溫度資料做線性迴歸、核迴歸與簡易神經網路,先掌握三種模型的訓練與驗證方法,為接下來的分類與深度學習鋪路。

tech guide Harvard CS50 AI 導讀

Harvard CS50 AI Week 0:Search——從 DFS、BFS、A* 到 Minimax 與 Alpha-Beta 剪枝

Week 0 以搜尋算法為起點,涵蓋 BFS 最短路徑、Minimax 對弈、Alpha-Beta 剪枝優化,附 Degrees 與 Tic-Tac-Toe 兩專案完整實作。

ai guide Harvard CS50 AI 導讀

Harvard CS50 AI 導讀:七週主題、十二個 projects 與一門 2020 年錄影的課怎麼跟

CS50 AI 的 OpenCourseWare 版公開七週影片、投影片、notes 與十二個 Python projects,校外自學者可以拿到 autograder 回饋和每個 project 都達 70% 以上的免費 CS50 Certificate;但前六週錄影沿用 2020 年 Spring 版,只有 Week 6 Language 換成 2023 年重錄版。

為什麼 Python:寫 coding agent 的語言選擇代價與補償

五個成熟 coding agent 沒有一家用 Python——pi/opencode/claude-code 用 TypeScript,codex 從 TS 重寫成 Rust,omp 把熱路徑補上 8 萬行 Rust native crate。looplane 仍選 Python,代價是啟動效能與打包,補償手段是 lazy import、uv 和 Cloudflare Sandbox。

tech deep-dive

台股研究 Agent 實戰系列(篇 2):LangGraph 並行架構——五個分析師同時開工

五個 analyst 在同一個 superstep 並行 fan-out,延遲是 max 不是 sum;回測與 reflection 擋在 synthesis 前面,讓 LLM 只能解釋已存在的證據。

ai deep-dive

AG2:以對話、GroupChat 與 speaker selection 組織多 Agent 協作

AG2 延續 AutoGen 的 ConversableAgent 心智模型:agent 透過訊息協作,GroupChatManager 再用 round-robin、manual、random 或 LLM 決定下一位發言者。

ai deep-dive

Python coding agent 實戰 M11:為什麼 exec 迴圈做不出 Claude Code 的對話體驗

要做出 Claude Code 或 Codex 的 TUI,關鍵不是滿版配色,而是長生命期 session、typed transcript 與 tool-boundary approval。

ai deep-dive

DSPy:用 Signature、Metric 與 Optimizer 編譯 AI 程式

DSPy 不把 prompt 當手寫字串,而以 Signature 宣告任務、Module 決定執行策略,再用資料集與 metric 讓 Optimizer 編譯出較好的提示與示例。

ai deep-dive

Haystack 深入介紹:用 Component 與 Pipeline 組出可測試的 RAG

Haystack 把 indexing、retrieval、generation 與 evaluation 都做成可替換的 Component,再用 directed multigraph Pipeline 串接;適合要把 RAG 流程當成程式資產測試、版本化與部署的 Python 團隊。

ai deep-dive

LangChain v1 Agents:create_agent、middleware 與 LangGraph runtime

LangChain v1 用 create_agent 提供高階 agent loop,底層由 LangGraph 執行;工具、structured output 與 middleware 是正式擴充邊界。

ai deep-dive

Pydantic AI:用型別、Dependency Injection 與驗證建立 Python Agent

Pydantic AI 把 Agent 寫成 Agent[Deps, Output]:依賴、工具輸入與最終輸出都有型別,模型結果必須通過 Pydantic 驗證。

CMU 10-301 HW1:先用數學與 Python 找出機器學習地基缺口

HW1 是 written+programming 作業:用機率、微積分、線代與 CS 題組檢查地基,再實作 majority-vote classifier。

Django:ORM、Admin、Auth 與長期演進的 Python Web Framework

Django 的價值是把資料模型、migration、auth、admin、forms 與安全預設組成一致系統;代價是要理解 QuerySet、middleware、async 邊界與 production settings。

tech deep-dive

Scrapy 深入介紹:從 Engine 到 Pipeline 的自架爬蟲架構

Scrapy 把抓取流程拆成 Engine、Scheduler、Downloader、Spider、Item Pipeline 與 Middleware;適合大量、規則明確的 HTTP 頁面,也能自行控制排程、節流、重試與資料落地。

tech deep-dive

Selenium 深入介紹:從 WebDriver session 到 Grid 的瀏覽器自動化

Selenium 透過標準化 WebDriver session 操作真實瀏覽器,適合跨瀏覽器流程、既有測試資產與遠端 Grid;它能執行 JavaScript 頁面,卻不保證繞過 CAPTCHA 或其他反自動化機制。

ai guide

Apify 完整介紹:Actor、Task、排程與資料集怎麼組成爬取平台

Apify 不是單一 crawler,而是把爬取程式包成 Actor,再用 Task 固定設定、Schedule 觸發執行、Dataset 交付結果的平台。適合不想自己維護佇列、排程與執行環境的團隊,但 Actor 費用、運算、proxy、儲存與傳輸會共同消耗預付額度。

ai guide

Browser Use 完整介紹:讓 AI Agent 操作瀏覽器的任務迴圈

Browser Use 把瀏覽器狀態、模型決策與 click/type/extract 等動作組成可重複迴圈;開放原始碼版本適合自訂工具與執行策略,Cloud 則代管瀏覽器、profile、proxy 與並行工作。

CrewAI:用角色扮演組織多 Agent 協作的框架

CrewAI(GitHub 57.4k star,MIT,PyPI 週下載 1,164 萬)用角色(role)、目標(goal)、背景故事(backstory)定義 agent,再把一組 agent 編成 crew 來協作。跟 LangGraph 的圖優先和 MAF 的工作流優先不同,CrewAI 是團隊優先——你不畫節點和邊,你描述一個團隊裡每個人負責什麼。2024 年底完成 LangChain 依賴的全面移除,現在是獨立框架。商業端分開源套件與 AMP 託管平台,AMP 加的是視覺化建構、部署、追蹤與合規。

ai guide

Firecrawl 完整介紹:Scrape、Crawl、Map 與結構化抽取怎麼選

Firecrawl 把單頁抓取、網站探索、整站爬取與 JSON 抽取包成同一套 API;雲端版省下瀏覽器、proxy 與 worker 維運,自架版則換得基礎設施控制,但預設能力不等同雲端。

LlamaIndex:它已經不是 RAG 框架了,而你可能還在照舊教學選它

LlamaIndex(GitHub 51,775 star,MIT,2026-08-21 實查)的重心已經從索引搬到 Workflows:獨立套件 llama-index-workflows 的 PyPI 週下載 281 萬,比傘狀套件 llama-index 的 197 萬還高。這篇拆核心抽象、跟自己刻 pipeline 的取捨,並實測它在繁中語料上的預設值——同樣的 chunk_size=1024,英文裝得下 4,645 字元,繁中只有 1,332。另附一個選型前必看的事實:TypeScript 版已封存停更。

ai guide

Scrapling 完整介紹:從 adaptive selector 到並行 Spider

Scrapling 把 HTTP、Playwright 瀏覽器、CSS/XPath 抽取與 Spider 放進同一套 Python API;adaptive selector 會保存元素特徵,版面改動後再用相似度重新定位,但仍需要驗證輸出。

Temporal:把流程寫成程式碼,崩了也能接著走完

Temporal 是 durable execution 平台(Server 1.31.2、Python SDK temporalio 1.31.0,MIT,2026-08 實查)。它跟 BullMQ / Celery 那種任務佇列的差別不是規模,是保證的東西不同:佇列保證訊息被消費,Temporal 保證一段橫跨多次外部呼叫的流程走完。代價是工作流程碼必須決定性——而 LLM 呼叫天生非決定性,這篇講這個張力怎麼解、什麼時候不划算。

Coding 面試攻略:ML-flavored 程式題的準備策略

AI Engineer 的 coding 面試和 SWE 不完全一樣——除了 LeetCode medium,還會出 ML-flavored 的題(實作 tokenizer、寫 batch inference pipeline、處理稀疏矩陣)。準備策略:LeetCode medium 練到 70% 通過率就夠,剩下的時間花在 numpy/pandas 操作、資料處理 pipeline、以及 ML 相關的程式題。

ai deep-dive 文件解析實戰

確定性抽取層:不用任何模型,先解決八成的 PDF

數位原生 PDF 的文字是讀得到的,缺的只是結構。PyMuPDF、pdfplumber、pypdf、Tika 這一層用啟發式規則就能還原段落與表格,零 GPU、零推論成本。最大的選型陷阱不是準確度,是 PyMuPDF 的 AGPL-3.0 授權。

tech debug

LLM agent 的 tool description 決定它怎麼選 tool:三個踩坑修法

把 tool description 從軟建議改成硬規則(白名單 + 後果說明),LLM 亂選 tool 的問題消失了;另外加 skip_signal=True 修掉 vector store 雙重 indexing。

ai guide 文件解析實戰

MarkItDown:把任何檔案餵給 LLM 之前,先讓它變成 Markdown

Microsoft 開源的輕量工具,把 PDF、Office、圖片、音訊等格式統一轉成 Markdown,專門為 LLM pipeline 設計。

ai guide

notebooklm-py:用 Python 操控 Google NotebookLM 的非官方 API

notebooklm-py 透過逆向工程 Google 的 batchexecute RPC 協議,讓你用 Python / CLI / AI Agent 程式化操作 NotebookLM,包含音訊、影片、投影片、測驗等生成功能。

tech guide

Celery:Python 生態裡分散式任務佇列的標準解法

Celery 是 Python 最主流的分散式任務佇列,用 Redis 或 RabbitMQ 當 broker,讓耗時工作跑在背景。島島的 AI 服務用它處理 LLM 回饋生成等非同步任務。

tech guide

FastAPI:Python AI 服務的標準答案

FastAPI 是基於 Python type hint 的現代 Web framework,自動生成 OpenAPI 文件、原生 async 支援、效能接近 Node.js。AI/ML 服務的首選,也是 Python 後端裡最值得學的框架。

tech guide

把爬蟲腳本做成 MCP Server,讓 Claude 直接用

用 FastMCP 把本地 Python 腳本包成 MCP Server,讓 Claude Code 可以直接呼叫,不再需要手動跑 pipeline。

tech debug

MCP Tool 回傳 1M 字元:search_local_jobs 的 token 爆炸問題

MCP tool 回傳 description 欄位導致 1033 筆職缺超過 token 上限,改成預設不回傳 description 並加上分頁就解決了。