2026年5月30日 星期六

[AI] 2025-05-30 News

AI News Digest - 2026-05-30

 ai     anthropic    google    github  

Summary

The AI landscape in late May 2026 is dominated by massive financial moves and significant model upgrades. Anthropic secured a monumental $65B funding round, signaling continued high-stakes investment in frontier models. Simultaneously, they released Claude Opus 4.8, focusing on professional performance and consistency. Google DeepMind introduced Gemini Omni and Gemini 3.5, emphasizing multimodal versatility and agentic action. GitHub continues to refine its ecosystem with session syncing, while independent developers like Simon Willison track the steady improvements in tools like Datasette.

2026年5月底的AI領域主要受大規模融資和重大模型升級所主導。Anthropic獲得了破紀錄的650億美元融資,顯示了對前沿模型的持續高額投資。同時,他們發布了 Claude Opus 4.8,專注於專業性能和穩定性。Google DeepMind 推出了 Gemini Omni 和 Gemini 3.5,強調多模態通用性和代理行動能力。GitHub 持續優化其生態系統,而像 Simon Willison 這樣的獨立開發者則關注 Datasette 等工具的穩定進步。


Anthropic

Introducing Claude Opus 4.8

  • Summary: An upgrade to the Opus class of models, featuring stronger performance across coding, agentic tasks, and professional work, with improved consistency for long-running tasks.
    Opus 系列模型的升級版本,在程式碼編寫、代理任務和專業工作方面表現更強,並提高了長時間運行任務的一致性。
  • Why it matters: It bridges the gap between raw intelligence and reliable automation, making it more suitable for complex enterprise workflows.
    它縮小了原始智能與可靠自動化之間的差距,使其更適合複雜的企業工作流程。
  • Key takeaway: Professional AI is shifting from "one-off answers" to "reliable session-long agents."
    專業 AI 正在從「一次性回答」轉向「可靠的會話級代理」。

Anthropic raises $65B in Series H funding

  • Summary: A massive new funding round to support continued research and development of frontier AI models at a nearly $1T valuation.
    一輪巨額的新融資,以近 1 兆美元的估值支持前沿 AI 模型的持續研發。
  • Why it matters: This confirms that the compute and talent requirements for frontier models are still scaling exponentially.
    這證實了前沿模型對算力和人才的需求仍在呈指數級增長。
  • Key takeaway: The capital moat for top-tier AI providers is becoming insurmountable for smaller players.
    頂級 AI 供應商的資本護城河正變得讓小型競爭者難以逾越。

Google DeepMind

Introducing Gemini Omni

  • Summary: A new multimodal model designed to create "anything from anything," expanding the generative capabilities across all media types simultaneously.
    一款全新的多模態模型,旨在實現「任何形式到任何形式」的創作,同時擴展了所有媒體類型的生成能力。
  • Why it matters: It moves away from siloed modalities (text, image, audio) toward a truly unified latent space for all digital information.
    它告別了孤立的多模態(文本、圖像、音頻),轉向一個真正統一的所有數位資訊潛在空間。
  • Key takeaway: Multi-modal isn't a feature anymore; it's the fundamental architecture.
    多模態不再只是一項功能;它是基礎架構。

Gemini 3.5: Frontier Intelligence with Action

  • Summary: The latest iteration of Gemini focusing on "actionable intelligence" and autonomous execution of multi-step processes.
    Gemini 的最新迭代,專注於「可執行的智能」和多步驟流程的自主執行。
  • Why it matters: Google is doubling down on the "agent" paradigm to integrate AI more deeply into its Workspace and Cloud ecosystems.
    Google 正在加倍投入「代理」範式,以將 AI 更深地整合到其 Workspace 和雲端生態系統中。
  • Key takeaway: The focus of LLMs has officially shifted from "knowing" to "doing."
    LLM 的焦點已正式從「知識」轉向「行動」。

Simon Willison

Release datasette 1.0a31

  • Summary: A significant alpha release for Datasette, introducing the ability to execute write queries and save stored queries directly.
    Datasette 的一個重要 Alpha 版本,引入了直接執行寫入查詢和儲存已存查詢的功能。
  • Practical insight: This makes Datasette a more interactive tool for data management rather than just a read-only viewer.
    這使得 Datasette 成為一個更具互動性的數據管理工具,而不僅僅是一個唯讀的檢視器。
  • Useful tools: Datasette continues to be a core recommendation for developers working with SQLite and LLM-generated data.
    對於處理 SQLite 和 LLM 生成數據的開發者來說,Datasette 仍然是核心推薦工具。

GitHub Copilot

Take your local GitHub sessions anywhere

  • Summary: Remote control for GitHub Copilot sessions is now generally available, allowing developers to sync work state between IDEs, CLI, and mobile.
    GitHub Copilot 會話的遠端控制現已正式發布,允許開發者在 IDE、CLI 和行動裝置之間同步工作狀態。
  • Developer productivity impact: Reduces friction when switching devices or environments, maintaining the "context" of a complex coding task.
    減少切換設備或環境時的摩擦,維持複雜編碼任務的「上下文」。
  • Important feature: Cross-platform context syncing is a major win for developer flow.
    跨平台上下文同步是開發者流程的一大勝利。

Overall Trends

  • Massive Consolidation of Capital: Anthropic's valuation and funding levels suggest the cost of staying at the "frontier" remains astronomical.
    巨額資本整合: Anthropic 的估值和融資水平表明,保持在「前沿」的成本仍然極高。
  • Agentic Shift: Both Gemini 3.5 and Claude Opus 4.8 are pivoting heavily toward "agentic" capabilities—models that don't just talk but act.
    代理化轉向: Gemini 3.5 和 Claude Opus 4.8 都重度轉向「代理」能力——即不只是交談而是能執行任務的模型。
  • Multimodal Universalism: Gemini Omni points toward models that handle any input to any output seamlessly.
    多模態全能化: Gemini Omni 指向能無縫處理任何輸入到任何輸出的模型。
  • Developer Experience (DX) Focus: GitHub and independent toolmakers are focusing on "state" and "context" management to keep developers in the flow.
    專注開發者體驗 (DX): GitHub 和獨立工具開發者正專注於「狀態」和「上下文」管理,以保持開發者的專注流。

2026年5月25日 星期一

[AI] 2025-05-25 News

AI News Digest - May 25, 2026

 ai     agents    llm    anthropic  

Summary

The AI industry is entering a more mature phase focused on the practical deployment of "Agentic" systems and deep enterprise integration. Recent updates from Google DeepMind and Antigravity highlight a shift toward autonomous operating systems and models optimized for action rather than just conversation. Anthropic is doubling down on enterprise adoption through partnerships with firms like KPMG while continuing to refine its frontier model safety. Simultaneously, the community, led by figures like Simon Willison, is delivering the modular tools—such as Datasette Agent—necessary for developers to harness these powerful models in specialized environments. GitHub's recognition as a leader in AI coding agents further solidifies the trend of AI becoming a fundamental layer in the software development lifecycle. Overall, the focus has moved from "what can LLMs say" to "what can AI agents reliably do" within production workflows and corporate infrastructure.

AI 行業正進入一個更成熟的階段,重點在於「代理人」(Agentic) 系統的實際部署和深度的企業整合。Google DeepMind 和 Antigravity 最近的更新突顯了向自主操作系統和優化「行動」而非僅僅是「對話」的模型轉變。Anthropic 正在透過與 KPMG 等公司的合作加倍投入企業採用,同時持續完善其前沿模型的安全性。同時,以 Simon Willison 為首的社群正提供模組化工具(例如 Datasette Agent),讓開發者能在專業環境中運用這些強大的模型。GitHub 被認可為企業 AI 編碼代理的領導者,進一步鞏固了 AI 成為軟體開發生命週期中基礎層級的趨勢。總體而言,重點已從「LLM 能說什麼」轉向「AI 代理人在生產工作流和企業基礎設施中能可靠地做什麼」。


Anthropic

Project Glasswing: An initial update

  • Summary: An update on Anthropic's internal initiative to enhance model transparency and safety benchmarks. / 關於 Anthropic 內部旨在提高模型透明度和安全基準的倡議更新。
  • Why it matters: Safety remains a core differentiator for Anthropic as models become more autonomous. / 隨著模型變得更加自主,安全性仍然是 Anthropic 的核心競爭力。
  • Key takeaway: Continued commitment to rigorous testing before full feature rollout for frontier models. / 持續承諾在向大眾推出前沿模型的所有功能之前進行嚴格測試。

KPMG integrates Claude across its core business and workforce

  • Summary: A massive enterprise integration announcement where KPMG will deploy Claude to its thousands of employees. / 一項重大的企業整合公告,KPMG 將向其數千名員工部署 Claude。
  • Why it matters: Validates the readiness of Claude for high-stakes professional services and data-sensitive environments. / 驗證了 Claude 在高風險專業服務和數據敏感環境中的成熟度。
  • Key takeaway: Enterprise adoption is scaling rapidly, moving from pilots to core business integration. / 企業採用正在迅速擴張,從試點轉向核心業務整合。

Google DeepMind

Gemini 3.5: frontier intelligence with action

  • Summary: The latest Gemini release designed specifically to power autonomous agents with high-reliability "actions." / 最新發佈的 Gemini,專為具備高可靠「行動」能力的自主代理人提供動力。
  • Why it matters: Moves Google beyond the "chatbot" paradigm into the "agentic" software era. / 將 Google 推向超越「聊天機器人」模式,進入「代理人」軟體時代。
  • Key takeaway: A fundamental shift toward models that can interface directly with system-level tools. / 朝向能與系統級工具直接對接的模型進行根本性轉變。

Introducing Gemini Omni

  • Summary: A new multimodal model capable of processing and generating audio, video, and text in a single unified stream. / 一款全新的多模態模型,能夠在單一統一流中處理和生成音訊、影片和文字。
  • Why it matters: Enables more natural, low-latency human-AI interaction across different sensory inputs. / 實現了跨越不同感官輸入的更自然、低延遲的人機互動。
  • Key takeaway: Multimodality is becoming "omni-directional," allowing for seamless context switching. / 多模態正變得「全方位」,允許無縫的語境切換。

Simon Willison

Release datasette-agent 0.1a4

  • Summary: A new version of the AI agent for Datasette, focused on improving data exploration and tool usage. / Datasette AI 代理人的新版本,重點在於改進數據探索和工具使用。
  • Practical insight: Modular agents are easier to debug and specialize for specific datasets. / 模組化代理人更容易調試,並針對特定數據集進行專門化。
  • Useful tools or techniques mentioned: Integration with the llm library for flexible backend model switching. / 與 llm 庫整合,實現靈活的後端模型切換。

Release datasette 1.0a30

  • Summary: Significant updates to the core Datasette tool to support the growing ecosystem of AI plugins. / 對 Datasette 核心工具的重大更新,以支持不斷增長的 AI 插件生態系統。
  • Practical insight: Preparing core infrastructure is essential for the "agent-first" future of data tools. / 為「代理優先」的數據工具未來準備核心基礎設施至關重要。
  • Useful tools or techniques mentioned: Improved plugin hooks that allow agents to query and visualize data more effectively. / 改進的插件掛鉤,使代理人能更有效地查詢和視覺化數據。

Google Antigravity

Introducing Google Antigravity 2.0

  • Summary: A major release of the platform designed to build and manage fleets of AI agents. / 該平台的重大版本發佈,旨在構構建和管理 AI 代理集群。
  • Interesting innovation: Features a unified dashboard for monitoring agent health and cost across large deployments. / 具有統一的儀表板,用於跨大規模部署監控代理人的健康狀況和成本。
  • Real-world impact: Simplifies the complexity of managing multiple autonomous agents in a corporate environment. / 簡化了在企業環境中管理多個自主代理人的複雜性。

Google Antigravity Built an OS (and more)

  • Summary: An exploration of a specialized operating system built from the ground up to be AI-native. / 對從頭開始構建的 AI 原生專業操作系統的探索。
  • Interesting innovation: The OS treats the LLM as the kernel scheduler for human-system interactions. / 該操作系統將 LLM 視為人機交互的核心調度程序。
  • Real-world impact: Represents the ultimate goal of the agentic shift: an entire environment designed for AI collaboration. / 代表了代理人轉變的終極目標:為 AI 協作設計的整個環境。

GitHub Copilot

GitHub recognized as a Leader in the Gartner® Magic Quadrant™ for Enterprise AI Coding Agents

  • Summary: GitHub's platform has been officially recognized for its leadership in the emerging AI coding agent market. / GitHub 的平台在緊急的 AI 編碼代理市場中的領導地位已獲得正式認可。
  • Developer productivity impact: Confirms that Copilot is setting the standard for how AI assists in large-scale enterprise development. / 確認了 Copilot 正為 AI 如何協助大規模企業開發設定標準。
  • Important feature or workflow: Focuses on the "Agentic" features like PR summaries and automated refactors. / 重點在於「代理人」功能,如 PR 摘要和自動重構。

Building a general-purpose accessibility agent—and what we learned in the process

  • Summary: Insights from building an agent that helps developers ensure their software is accessible to everyone. / 構建一個幫助開發者確保其軟體對所有人皆可訪問的代理人的心得。
  • Developer productivity impact: Automates a historically manual and error-prone part of the QA process. / 將歷史上繁瑣且容易出錯的 QA 過程自動化。
  • Important feature or workflow: Uses vision and code analysis to proactively suggest accessibility fixes in real-time. / 利用視覺和代碼分析,即時主動地提出無障礙修復建議。

Overall Trends

  • The Rise of the OS-Agent: AI is moving from being an "app" to being the "operating system" or at least a core layer within it. / AI 正從一個「應用程序」轉向「操作系統」,或至少是其中的核心層。
  • Enterprise-Grade Reliability: The focus has shifted toward compliance, transparency, and "actionable" intelligence that businesses can trust. / 重點已轉向企業可信賴的合規性、透明度和「可操作」的智能。
  • Specialized Data Agents: Tools like Datasette Agent show that general-purpose LLMs are most effective when paired with specialized data interfaces. / 像 Datasette Agent 這樣的工具表明,通用 LLM 與專業數據接口配對時最為有效。

2026年5月19日 星期二

[Go] Concurrency Patterns - for-select loop

The for-select Loop

 golang     concurrency    for-select  

The for-select loop helps a lot in

  • Iterating something into a channel
  • Infinite loop until we tell it to stop

This example uses 2 channels, data is for sending/receiving data, done is the channel to signal the data iteration to stop in certain condition.

func IterateToChannel() {
	data := make(chan string)
	done := make(chan interface{})
	go func() {
		for v := range data {
			fmt.Print(v, " ")

			// Stop the DATA_LOOP if the value is a integer
			if _, err := strconv.Atoi(v); err == nil {
				close(done)
			}
		}
	}()

DATA_LOOP:
	for _, v := range []string{"a", "b", "1", "c"} {
		select {
		case <-done:
			break DATA_LOOP
			// return
		case data <- v:
		}
	}
}


The code prints a b 1 and stops.

Notice that in the above sample code, we can use the default case to write the incoming string to the channel data until the done channel is closed and stop the DATA_LOOP.

DATA_LOOP:
	for _, v := range []string{"a", "b", "1", "c"} {
		select {
		case <-done:
			break DATA_LOOP
        default:
            data <- v
		}
	}


Or do nothing in the default case and exit the select block.

DATA_LOOP:
	for _, v := range []string{"a", "b", "1", "c"} {
		select {
		case <-done:
			break DATA_LOOP
		default:
		}
		data <- v
	}


This example creates a infinite loop to print current time, but the loop will only run 5 times.

func InfiniteLoopThatCanStop() {
	const max int = 5
	counter := 0
	done := make(chan interface{})

LOOP:
	for {
		select {
		case <-done:
			break LOOP
		case <-time.After(1 * time.Second):
			if counter >= max {
				fmt.Println("Time's up")
				close(done)
			} else {
				// Print the current time in GMT format
				fmt.Println(time.Now().UTC().Format(http.TimeFormat))
				counter++
			}
		}
	}
}


[Go] Concurrency Patterns - Data Protected by Confinement

Data Protected by Confinement

 golang     concurrency    pattern  

Confinement ensures information is only available from one concurrent process. When this is achieved, a concurrent program is implicitly safe and no synchronization is needed.

Consider the following example.

data := []int{1, 2, 3, 4}

loopData := func(handleData chan<- int) {
	defer close(handleData)
	for _, v := range data {
		handleData <- v
	}
}

handleData := make(chan int)
go loopData(handleData)

// This line will cause deadlock
// handleData <- 5

for num := range handleData {
	fmt.Println(num)
}


If somebody adds the line handleData <- 5, the program will be deadlocked because there is another goroutine (which called loopData) was sending message to the channel handleData.

Lexical confinement can solve this problem because it uses lexical scope to expose only the correct data and concurrency primitives for multiple concurrent processes to use. It makes it impossible to do the wrong thing.

Let's update the above sample code with lexical confinemnt pattern:

data := []int{1, 2, 3, 4}

chanOwner := func() <-chan int {
	// Initiate the channel within the lexical scope of the function
	handleData := make(chan int)

	go func() {
		defer close(handleData)
		for _, v := range data {
			handleData <- v
		}
	}()
	return handleData
}

roChan := chanOwner()

for num := range roChan {
	fmt.Println(num)
}


  • The function chanOwner initiates the channel handleData in its lexical scope, and returns the readonly channel.
  • This limits the scope of write aspect of the channel to the closure that only the channel owner can write to channel, other goroutines have no chance to write but only can read from the channel.

In summary, lexical confinement has the following benefits:

  • We don't have to do the data synchorization concurrent code, because synchorization comes a cost and developer may do it wrong without any compiler error.
  • The concurrent code will be simplier to understand than without lexically confined variables and scopes.
  • Sometimes it's hard to establish confinement and we have to fall back to Go concurrency primitives.

2026年5月14日 星期四

[Git] Sparse Checkout

Sparse Checkout

 git     sparse-checkout  

A subcommand in git used to reduce the files present in the working tree to a subset of all tracked files. Also, the name of the file in the $GIT_DIR/info directory used to track the sparsity patterns corresponding to the user’s desired subset.


Steps

1.Init An Empty Repository

mkdir {project}
cd {project}
git init
git remote add -f origin ssh://git@xxxxx/project.git


Now git updates and fetches the origin without cloning anything.

2.Enable Sparse Checkout

git config --local core.sparseCheckout true 


3.Define Sparsity Patterns

Define the sparsity patterns (file paths) that we're only interested.

echo "some/dir/" >> .git/info/sparse-checkout
echo "another/sub/file" >> .git/info/sparse-checkout


Or by the git sparse-checkout set command, notice this overwrite ".git/info/sparse-checkout":

git sparse-checkout set "some/dir/" "another/sub/file


Or by the git sparse-checkout add command that append the path to ".git/info/sparse-checkout":

git sparse-checkout add "some/dir/"
git sparse-checkout add "another/sub/file"


The sparsity patterns supports excluding a path by putting ! before the path.

.git/info/sparse-checkout

/*
!src/


  • /*: includes everything at the root and all subdirectories.
  • !src/: excludes the src/ folder and everything inside it.

4.Completing Sparse Checkout

And after that, we can do pull, switch or checkout to certain branch, and only the pathes defined in ".git/info/sparse-checkout" will be presented in the working tree.

git pull
git switch my-branch
git checkout my-branch


Other Commands

git sparse-checkout list

Show the sparsity patterns defined.

git sparse-checkout reapply

We can change the sparsity patterns anytime by git sparse-checkout command and it will take effect right away. But if we edit the ".git/info/sparse-checkout", remember to re-apply the changes. e.g.

sed -i "/.*log/d" .git/info/sparse-checkout
git sparse-checkout reapply



Reference