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 与之通信。该服务器充当中间层,管理工具调用、多模型交互与遥测,而编辑器则专注于编辑界面和变更规划。
目标用户
它面向使用多个不同代码编辑器的开发者,或希望拥有一致、开源的 AI 助手并支持广泛 LLM 提供商(包括 OpenAI、Anthropic、Copilot 与本地 Ollama 模型)的用户。
亮点
- 编辑器无关协议:统一的协议让任何编辑器都能轻松集成 AI 功能。
- 多模型支持:兼容多家供应商,包括 OpenAI、Anthropic、Copilot 以及通过 Ollama 的本地模型。
- 代理能力:支持配置多个代理和子代理,使用不同的模型、工具和行为。
- 完整功能集:包括聊天、代码重写和代码补全。
- 上下文感知:支持向 LLM 提供详细代码上下文,包括 MCP 资源和提示。
- 可观测性:集成 OpenTelemetry,导出工具和服务器使用的度量指标。