gabrielchasukjin/cloi

A local-first coding agent for the terminal, powered by Ollama. Reads, searches, edits and runs code on your machine — no API key, no data leaving the host.

解决的问题

Cloi 是一个面向终端的本地优先代码代理,允许用户通过自然语言接口与代码库进行交互。它通过完全在本地使用 Ollama 运行,无需外部 API 密钥,且防止数据离开主机,从而消除了对外部 API 的依赖。

工作原理

Cloi 与 Ollama 集成,执行一个工具使用循环,使代理能够读取、搜索、编辑文件并运行 shell 命令。它采用多种可靠性机制来确保准确性:

  • 硬件感知模型选择: 测量 VRAM、RAM 和核心数量,为每个步骤建议一个主模型,并为复杂任务建议一个更大的备用模型。
  • 升级逻辑: 如果代理陷入僵局(例如重复相同的调用或连续工具失败),它会自动将对话交给更大的备用模型。
  • 验证机制: 对文件内容的声明会与实际工作区状态进行比对,以防止幻觉。
  • 结果缓存: 重要结果会被存储,可后续调用,减少重复的工具调用。
  • Python 解释器: 会话级解释器允许代理在单个单元中执行复杂逻辑、算术或文件操作,而无需多次工具调用。
  • 上下文管理: 不让 Ollama 静默丢弃令牌,Cloi 会总结对话的较早部分以维持上下文。

适用人群

希望拥有完全私密、在自己硬件上本地运行、直接在终端中操作的 AI 代码助手的开发者。

主要亮点

  • 本地优先: 由 Ollama 驱动,无需 API 密钥或数据传输。
  • 动态模型路由: 基于观察到的失败而非预先猜测任务类型,切换到更大的模型。
  • 内置验证: 自动将引用和行引用与实际文件进行比对。
  • 集成 Python 解释器: 允许在代理工作流中高效处理数据和循环。
  • 工作区防护机制: 限制路径仅限工作区,对写入和 shell 命令执行需用户授权。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch