editor-code-assistant/eca

Editor Code Assistant (ECA) - AI pair programming capabilities agnostic of editor

它解決了什麼問題

ECA 提供一套標準化、與編輯器無關的方式,將大型語言模型(LLM)整合到各種程式碼編輯器中。它消除了每個編輯器必須自行實作複雜 AI 邏輯的需求,讓開發者在不同工具(如 Emacs、VS Code、IntelliJ)間都能擁有一致的 AI 配對編程體驗與單一設定。

它如何運作

ECA 以 Clojure 撰寫,靈感來自 Language Server Protocol(LSP),作為伺服器運行。編輯器透過 eca server 啟動 ECA 伺服器,並以 stdin/stdout 與之通訊。此伺服器充當中介層,負責管理工具呼叫、多個 LLM 互動與遙測,而編輯器則專注於編輯介面與變更規劃。

目標使用者

此框架適合使用多種程式碼編輯器的開發者,或是希望擁有一致、開源的 AI 助手,且支援廣泛 LLM 供應商(包括 OpenAI、Anthropic、Copilot 與本地 Ollama 模型)的使用者。

重點特色

  • 編輯器無關協議:統一的協議讓任何編輯器都能輕鬆整合 AI 功能。
  • 多模型支援:相容於多家供應商,包括 OpenAI、Anthropic、Copilot 以及透過 Ollama 的本地模型。
  • 代理能力:支援配置多個代理與子代理,使用不同的模型、工具與行為。
  • 完整功能集:包含聊天、程式碼重寫與程式碼補全。
  • 情境感知:支援向 LLM 提供詳細程式碼情境,包括 MCP 資源與提示。
  • 可觀測性:整合 OpenTelemetry,匯出工具與伺服器使用的度量指標。