跳至主要内容

60 篇文章 含有標籤「AI」

檢視所有標籤

TechSummary 2025-08-04

· 閱讀時間約 22 分鐘
Gemini
AI Assistant

使用 GitHub Models 在 Actions 中自動化您的專案 🚀​

Source: https://github.blog/ai-and-ml/generative-ai/automate-your-project-with-github-models-in-actions/

  • GitHub Models 將 AI 整合到 GitHub Actions 工作流程中,實現專案內的自動化分類、摘要等功能。
  • 權限設置: 使用 GitHub Models 前需在 permissions 區塊中加入 models: read,並建議遵循最小權限原則,以降低提示詞注入攻擊 (prompt injection) 風險。
    permissions:
    contents: read
    issues: write
    models: read
  • 範例一:在 Bug 報告中請求更多資訊
    • 透過 actions/ai-inference@v1 動作分析 Issue 內容,判斷錯誤報告是否包含足夠的重現資訊(例如:重現步驟、預期行為、實際行為、環境細節)。
    • 若資訊不足,AI 會自動回覆提示作者補齊。此機制利用 AI 模型的回傳值(pass 或詳細說明)建立工作流程中的條件邏輯。
    - name: Analyze Issue For Reproduction
    if: contains(join(github.event.issue.labels.*.name, ','), 'bug')
    id: analyze-issue
    uses: actions/ai-inference@v1
    with:
    model: mistral-ai/ministral-3b
    system-prompt: |
    Given a bug report title and text for an application, return 'pass' if there is enough information to reliably reproduce the issue, meaning the report clearly describes the steps to reproduce the problem, specifies the expected and actual behavior, and includes environment details such as browser and operating system; if any of these elements are missing or unclear, return a brief description of what is missing in a friendly response to the author instead of 'pass'. Consider the following title and body:
    prompt: |
    Title: ${{ steps.issue.outputs.title }}
    Body: ${{ steps.issue.outputs.body }}
  • 範例二:從合併的 Pull Request 建立發布說明
    • 透過 gh CLI 搭配 gh-models 擴充功能,在 Pull Request 合併時自動摘要其標題、內容、評論及審閱,並將摘要內容追加到指定的發布說明 Issue 中。
    cat pr.json | gh models run xai/grok-3-mini \
    "Given the following pull request information, generate a single, clear, and concise one-line changelog entry that summarizes the main change (feature, fix, or bug) introduced by this PR. Use neutral, user-facing language and avoid technical jargon or internal references. Only write the line, with no additional introduction or explanation text." > summary.md
  • 範例三:摘要並優先處理 Issue
    • 設定定期排程工作流程 (例如每週一早上 9 點),使用 gh CLI 抓取過去一週新開啟的 Issue,並將其傳遞給 AI 模型進行摘要、歸納主題及優先級排序,最終創建一個新的 Issue 來呈現週報摘要。
    • 此範例使用獨立的 .prompt.yml 提示文件,提供更複雜的提示邏輯。

TechSummary 2025-08-01

· 閱讀時間約 11 分鐘
Gemini
AI Assistant

Rust 與 Java:為您的專案選擇正確的工具 💻​

Source: https://blog.jetbrains.com/rust/2025/08/01/rust-vs-java/

  • 兩者對比:Rust以其安全性與效能備受讚譽,學習曲線較陡峭但社群成長迅速;Java則因其成熟度與廣泛應用而成為企業級解決方案的基石。Rust的用戶群在2024年達到約227萬開發者,而Java因其成熟且穩健的生態系仍吸引數千萬開發者。
  • Rust的演進與核心理念:起源於2006年Mozilla的專案,於2015年發布1.0穩定版。其核心原則是在沒有垃圾回收的情況下確保記憶體安全,並透過「所有權」(ownership)和「借用」(borrowing)概念避免資料競爭。它杜絕了空指針解引用、懸空指針或緩衝區溢位等常見錯誤。
  • Rust的熱門應用場景:主要用於系統級軟體(如作業系統、嵌入式系統)、WebAssembly、命令列介面(CLIs)、遊戲開發以及Web3領域,因其對記憶體、效能及安全性的嚴格控制而表現出色。
  • Java的歷史與核心理念:可追溯到1991年,於1995年發布。其核心理念是「一次編寫,到處執行」(Write Once, Run Anywhere),透過將程式碼編譯為位元組碼並由Java虛擬機(JVM)解釋執行實現跨平台。Java也嚴格遵循物件導向程式設計(OOP)和DRY(Don’t Repeat Yourself)原則。
  • Java的當前用途:廣泛應用於企業級軟體(如Amazon, Google, Netflix)、Android應用程式開發、網頁服務以及大數據處理(如Apache Hadoop, Spark, Kafka)。
  • 技術差異:
    • 執行時:Java依賴JVM,提供自動垃圾回收和JIT編譯,易於跨平台開發但有記憶體和啟動時間開銷。Rust則提供最小化執行時(zero-cost abstractions),無垃圾回收器,提供精細的記憶體和速度控制。
    • 效能:Rust因無垃圾回收和對資源的精細控制,提供可預測的高速執行。Java依賴JIT編譯器在執行時優化效能,但可能因垃圾回收導致啟動時間較長和不可預測的暫停。
    • 記憶體管理:Java透過垃圾回收自動管理記憶體。Rust則在編譯時透過所有權和借用系統強制執行記憶體安全,無需執行時垃圾回收,提供高效能和可靠性。
    • 學習曲線:Java對初學者較為友好,尤其是熟悉物件導向程式設計的開發者。Rust的學習曲線較陡峭,其所有權概念和借用檢查器可能讓新手感到挫折,但提供了穩定高效的程式碼。
  • 工具與生態系差異:
    • IDEs:Java有IntelliJ IDEA、Eclipse、NetBeans等成熟IDE。Rust在IDE支援上進步顯著,有RustRover,IntelliJ IDEA也透過插件支援Rust。
    • 建構系統與套件管理器:Rust擁有統一的工具鏈Cargo,集建構系統、套件管理器和依賴管理器於一身,使用簡單。Java則有多種建構工具,如Maven和Gradle,功能強大但配置較為複雜。
    • 除錯與分析工具:Java擁有數十年發展的成熟除錯和分析工具。Rust除錯依賴GDB或LLDB,但生態系仍在演進。
    • 開發者體驗:Java提供成熟的企業級開發體驗。Rust的體驗更現代、簡化且社群化,尤其適合注重安全性、效率和簡潔工具流程的開發者。
  • 社群與採用差異:
    • 社群規模與活躍度:Java擁有龐大且成熟的社群。Rust的社群雖較新,但活躍且快速成長。
    • 函式庫與框架:Java擁有龐大的函式庫與框架生態系,如Spring、Jakarta EE。Rust的函式庫生態系仍在擴展,在系統程式設計、嵌入式開發、遊戲引擎等領域表現出色。
    • 行業採用與職缺趨勢:Java在企業軟體、Android和後端開發領域仍有高需求。Rust的職缺市場雖小但快速成長,被Mozilla、Dropbox、Amazon等公司用於效能或安全關鍵應用。
  • 共同點:兩者都旨在防止常見的記憶體相關錯誤;提供強大的並行支援(Java使用傳統線程和java.util.concurrent,Rust強調「無畏並行」和async/await);具備跨平台能力(Java透過JVM,Rust編譯為原生機器碼並支援WebAssembly);支援現代語言特性(如泛型和函數式程式設計);均可用於後端或伺服器端開發。
  • 選擇建議:Rust適用於需要低層次控制、極致效能和記憶體安全的場景(如作業系統、設備驅動、高效能運算、WebAssembly)。Java則適用於大型企業應用,重視穩定性、可維護性和成熟生態系(如Android、網路服務、大數據處理)。
  • 互操作性:可透過Java Native Interface (JNI) 將Rust編譯的函式庫整合到Java專案中,結合兩者的優勢。

TechSummary 2025-07-31

· 閱讀時間約 25 分鐘
Gemini
AI Assistant

Onboarding your AI peer programmer: Setting up GitHub Copilot coding agent for success 🚀​

Source: https://github.blog/ai-and-ml/github-copilot/onboarding-your-ai-peer-programmer-setting-up-github-copilot-coding-agent-for-success/

  • GitHub Copilot 提供兩種代理功能:coding agent (自主,生成 PR) 與 agent mode (互動式,即時執行多步驟任務)。
  • coding agent 的工作流程包括創建分支與 PR、在 GitHub Actions 容器中建立環境、閱讀問題、探索專案、迭代解決方案並最終更新 PR。
  • 可透過自訂 GitHub Actions workflow 檔案(例如 .github/workflows/copilot-setup-steps.yml)來配置 Copilot 的執行環境,確保其能存取所需的工具和服務。
    name: "Copilot Setup Steps"

    on:
    workflow_dispatch:
    push:
    paths:
    - .github/workflows/copilot-setup-steps.yml
    pull_request:
    paths:
    - .github/workflows/copilot-setup-steps.yml

    jobs:
    copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
    contents: read
    steps:
    - name: Checkout code
    uses: actions/checkout@v4

    - name: Set up Python
    uses: actions/setup-python@v4
    with:
    python-version: "3.13"
    cache: "pip"

    - name: Install Python dependencies
    run: pip install -r requirements.txt

    - name: Install SQLite
    run: sudo apt update && sudo apt install sqlite3
  • 撰寫清晰明確的 Issue 與提示對 Copilot 成功生成高品質 PR 至關重要,應包含問題陳述、重現步驟、相關歷史、建議方法等。
  • 透過優化專案結構(README、代碼註釋、良好命名)和自訂指令文件(copilot-instructions.md 或 <file-name>.instructions.md)來提供 Copilot 上下文資訊和組織規範。
    # Classic arcade

    This project hosts a classic arcade, themed after the 1980s 8-bit games.

    ## Standard player flow

    1. Player opens app and sees list of games.
    2. Player selects game to play.
    3. Player sees a splash screen with the message "Insert quarter".
    4. Player presses space to start game and plays game
    6. After game ends, the "Game over" message is displayed.
    7. The player score is checked against high scores. If the score is in top 10, user is prompted for their initials (3 initials).
    8. High scores are displayed, and an option to return to the main menu to start over again.

    ## Frameworks

    - Python `arcade` library is used for the arcade itself
    - SQLite is used to store all scores

    ## Coding guidelines

    - All games must inherit from `BaseGame`
    - Python code should follow PEP8 practices, including docstrings and type hints

    ## Project structure

    - `data`: Stores data abstraction layer and SQLite database
    - `games`: Stores collection of games and `BaseGame`
    - `app`: Stores core app components including menuing system
  • 可利用 Model Context Protocol (MCP) 擴展 Copilot 的上下文和工具,例如透過 Azure MCP server 支持 Bicep 程式碼生成。
    {
    "mcpServers": {
    "AzureBicep": {
    "type": "local",
    "command": "npx",
    "args": [
    "-y",
    "@azure/mcp@latest",
    "server",
    "start",
    "--namespace",
    "bicepschema",
    "--read-only"
    ]
    }
    }
    }
  • Copilot coding agent 內建防火牆,可限制對核心服務的存取,以管理數據外洩風險;遠端 MCP server 或網路資源存取需更新允許列表。

TechSummary 2025-07-30

· 閱讀時間約 9 分鐘
Gemini
AI Assistant

如何使用 GitHub MCP 伺服器實用指南 🚀​

Source: https://github.blog/ai-and-ml/generative-ai/a-practical-guide-on-how-to-use-the-github-mcp-server/

  • GitHub Managed Model Context Protocol (MCP) 伺服器提供全託管端點,免除本地 Docker、存取權杖管理與手動更新的麻煩,讓開發者專注於程式碼交付。
  • 從本地 MCP 設定升級至 GitHub 託管端點,可獲得 OAuth 身份驗證、自動更新,並存取更豐富的 AI 工作流程工具組。
  • 預設工具集包括:儲存庫智慧(Repository intelligence)、議題與拉取請求自動化(Issue and pull request automation)、CI/CD 可見性(CI/CD visibility)、安全洞察(Security insights),並可進行細粒度控制。
  • 託管伺服器與本地 Docker 設置的對比:
    • 本地 Docker 伺服器:需手動維護 Docker 映像、管理個人存取權杖(PATs)、僅限 localhost 存取、預設完整寫入權限。
    • 託管 MCP 端點:GitHub 自動修補與升級、一次性 OAuth 登入、可從任何 IDE 或遠端開發環境存取、內建唯讀模式與按工具集旗標控制。
  • 安裝步驟簡便:在 VS Code 中執行 GitHub MCP: Install Remote Server 並完成 OAuth 流程;其他客戶端則設定伺服器 URL 為 https://api.githubcopilot.com/mcp/。可透過 curl -I https://api.githubcopilot.com/mcp/healthz 驗證連接。
  • 彈性配置存取控制:
    • 設定唯讀模式以安全探索,例如:
      {
      "servers": {
      "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "mode": "read-only"
      }
      }
      }
    • 透過 toolsets 陣列限制作用範圍,例如:
      "toolsets": ["context", "issues", "pull_requests"]
  • 實際應用範例:
    • 新增 CODEOWNERS 檔案並開啟拉取請求:提示 Copilot Agent 即可自動創建檔案、開啟 PR 並指派審閱者。
    • 偵錯失敗的工作流程:提示 Why did the release.yml job fail last night? 即可分析日誌並建議修復。
    • 分類安全警報:提示 List critical Dependabot alerts across all my repos and create issues for each. 即可列出警報並創建對應議題。
  • 未來展望:MCP 伺服器將支援 AI 生成秘密掃描(Secret scanning)及阻擋,並能直接指派議題給 Copilot,實現代理對代理(agent-to-agent)的協作工作流程。

TechSummary 2025-07-29

· 閱讀時間約 22 分鐘
Gemini
AI Assistant

GitHub 全新開源播客:從初次提交到大型專案 🎧​

Source: https://github.blog/open-source/maintainers/from-first-commits-to-big-ships-tune-into-our-new-open-source-podcast/

  • GitHub 推出全新播客,深入探討開源生態系的故事、專案、人物與理念,強調開源作為軟體創新的重要發射台,尤其在 AI agents、edge runtimes、climate-tech dashboards 等領域。
  • 播客由 Abby Cabunoc Mayes、Cassidy Williams、Kedasha Kerr 和 Andrea Griffiths 等資深開源貢獻者輪流主持,分享社群建設、開源科學、開發者教育和公開構建等多元視角。
  • 首集介紹主持人如何參與開源,並探討在內容飽和的世界中創建初學者內容的重要性。
  • 節目每兩週更新一集,將邀請 Jason Lengstorf 和 Keeley Hammond 等特別嘉賓分享他們的開源旅程和見解。
  • 亮點開源專案預覽:
    • Anime.JS: 視覺效果出眾的 JavaScript 動畫函式庫。
    • Docs: 法國和德國政府合作開發的開源文件協作編輯器。
    • CSS Zero: 簡化網頁開發的無構建前端入門套件。
  • 後續主題將深入探討 Model Context Protocol (MCP) 如何提升 AI 工具的透明度和互操作性。

TechSummary 2025-07-28

· 閱讀時間約 18 分鐘
Gemini
AI Assistant

🌾 GitHub Copilot 助力小農戶擴大影響力​

Source: https://github.blog/open-source/social-impact/scaling-for-impact-how-github-copilot-supercharges-smallholder-farmers/

  • 願景與擴展: One Acre Fund 成立於 2006 年,從肯亞的 40 個農戶發展至今已服務非洲十個國家的 500 萬農戶。他們的目標是到 2030 年每年支援 1000 萬農戶,透過開源技術和 AI 創造 10 億美元的新收入。
  • 技術賦能小農戶: 組織提供肥料、種子、培訓和服務,幫助小農戶提高作物產量、改善土壤健康、種植樹木,並增強對氣候變化的抵禦能力。農民對技術的態度從最初的猶豫轉變為積極。
  • GitHub Copilot 的影響: GitHub Copilot 極大地加速了 One Acre Fund 的開發進度,使專案完成速度提升三倍,超過 30% 的工作由 AI 輔助完成。這使他們能夠設定並達成更多目標。
  • 開源解決方案的優勢: 作為非營利組織,One Acre Fund 選擇開源技術是為了平衡「解決方案成熟度與靈活性」,同時避免隨規模擴展而指數級增長的許可費用。他們已將核心營運系統大部分遷移到開源。

TechSummary 2025-07-25

· 閱讀時間約 5 分鐘
Gemini
AI Assistant

⚙️ Upcoming Changes to JetBrains .NET Tools​

Source: https://blog.jetbrains.com/dotnet/2025/07/25/upcoming-changes-to-dotnet-tools/

  • JetBrains 將依據用戶回饋和使用數據,對其 .NET 工具進行一系列精簡與調整,旨在提升工具效能並聚焦核心功能。
  • 2025.2 版本更新重點:
    • dotCover 精簡化: 獨立的 dotCover 工具將被精簡以提升性能並降低複雜度。命令列運行器已現代化,指令整合至統一的 dotcover cover 介面,配置檔從 XML 轉換為簡潔的純文字參數檔。
    • 移除部分不常用過濾選項(方法/類別過濾器、檔案路徑過濾器、原始碼註解過濾器),並終止對舊版應用程式類型(如 IIS Express, WCF, WinRT, 外部 .NET 程序)的支援。
    • Rider 中 Mono 和 Unity 專案的程式碼覆蓋率分析終止: Rider 2025.2 起將不再提供 Mono 和 Unity 專案的覆蓋率分析,因使用率低且增加了技術債。待 Unity 遷移至 CoreCLR(預計 Unity 7 LTS 後)將恢復 Unity 專案的覆蓋率分析。
    • Visual Studio 的 TeamCity 擴充功能終止: 為了簡化工具鏈並專注於更具影響力的開發體驗,此擴充功能將被停用。
  • 2025.3 版本更新重點:
    • Rider 中的動態程式分析 (DPA) 功能整合: DPA 將不再作為獨立工具,其分析能力將進一步整合到 Monitoring 工具中,並作為 dotUltimate 許可證的一部分提供(與 dotTrace 和 dotMemory 分析器相同)。
  • 這些變更旨在釋放開發資源,以持續改進工具的性能、穩定性和核心功能。

TechSummary 2025-07-23

· 閱讀時間約 6 分鐘
OpenAI
AI Assistant

GitHub Models: Simplifying AI Deployment for Open Source Projects 🚀​

Source: https://github.blog/ai-and-ml/llms/solving-the-inference-problem-for-open-source-ai-projects-with-github-models/

  • 介紹 GitHub Models 提供一個免費、OpenAI 兼容的推理 API,免除額外鍵匙和SDK,讓開發者免於繁瑣設置。
  • 兼容多種模型(GPT-4o、Llama 3 等),支援任何接受 baseURL 的客戶端(如 OpenAI SDK、curl)。
  • 在 CI/CD 環境下搭建和擴展,對於開源項目特別友善,提升AI功能採用率。
  • 提供範例程式碼示範如何在 Node.js 中使用 GitHub Models API,且於 GitHub Actions 中無需用戶自行提供API鍵。
  • 強調此方案降低AI採用門檻,促進社群貢獻和快速迭代。

TechSummary 2025-07-22

· 閱讀時間約 6 分鐘
OpenAI
AI Assistant

以 AI 為助手的 UI Debugging 工具 🚀​

Source: https://github.blog/ai-and-ml/github-copilot/debugging-ui-with-ai-github-copilot-agent-mode-meets-mcp-servers/

  • 利用 GitHub Copilot 的 agent 模式配合 Playwright MCP 伺服器,實現自動化 UI 問題診斷與修復,用於排查 Next.js 應用中的佈局問題
  • 透過提供明確詳細的需求,讓 AI 更有效率地協助找出 UI 重疊、間隙等問題
  • 在實作流程中,部署 MCP 伺服器,利用 Copilot 設定指南,實現視覺化問題追蹤與調整
  • 範例:修復導航欄重疊與間隙問題,Copilot 透過自動測試、瀏覽器操作與多次迭代來解決 -強調:詳細描述問題需求是成功的關鍵,結合工具實現無痛調試

TechSummary 2025-07-21

· 閱讀時間約 6 分鐘
OpenAI
AI Assistant

這份摘要聚焦於最新的雲端與人工智能技術趨勢,尤其是 Docker 在代理應用、AWS 的結合應用、以及數據分析、安全規範等方面的創新與實務案例。內容涵蓋從代理應用開發生態、雲端事故調查整合、到資料分析在醫療領域的實務挑戰,提供完整的技術洞見與實務流程。

Docker 推動代理應用的未來 🚀​

Source: https://www.docker.com/blog/wearedevelopers-docker-unveils-the-future-of-agentic-apps/

  • Docker在WeAreDevelopers會議展示支持代理應用的工具進展,代理應用定義為利用LLMs來構建以目標為導向,具備訪問工具、資料和系統的應用。
  • 代理應用的棧中,Docker支持模型下載執行、容器化的工具伺服器,以及用compose.yaml整合模型、工具及自定義代碼。
  • 以範例compose文件整合模型、MCP Gateway與應用,支持多框架(如ADK、CrewAI)並支持雲端部署(Google Cloud Run、Azure)。
  • Docker推出Compose for agents、支援Google原生Cloud Run部署、Docker Offload(雲端GPU資源調度)來降低模型部署門檻。
  • 大型Workshop及Lightning Talks促進社群交流與實務應用,並宣布2026年的WeAreDevelopers北美盛會。

重點: 代理應用將成為AI應用新生態的核心,Docker提供全方位工具支持開發到部署,並強調雲端資源整合。