# Kode 系统概述 ## 介绍 Kode 是一个 AI 驱动的终端助手,它将 Claude 和其他语言模型的强大功能直接带到您的命令行。它被设计为一个复杂的开发工具,能够理解您的代码库、执行命令,并通过自然语言交互处理复杂的工作流程。 ## 核心设计理念 ### 1. **工具优先架构** Kode 中的所有内容都被抽象为"工具" - 一个自包含的功能单元,具有标准化的接口: - 通过 Zod 模式进行输入验证 - 权限检查和安全性 - 带进度报告的异步执行 - 为 AI 和人类消费格式化结果 这种设计允许无限的可扩展性,同时保持一致性和安全性。 ### 2. **终端原生体验** 与基于 Web 的 AI 助手不同,Kode 专为终端工作流程而构建: - React 组件使用 Ink 直接渲染到终端 - 为高级用户提供键盘快捷键和类 vim 绑定 - 带实时进度指示器的流式响应 - 终端中的语法高亮和差异可视化 ### 3. **上下文感知智能** AI 自动通过以下方式理解您的项目: - Git 状态和最近的提交 - 目录结构分析 - AGENTS.md 和 CLAUDE.md 项目文档 - .claude/commands/ 和 .kode/commands/ 中的自定义命令定义 - 先前的对话历史和分叉对话 ### 4. **通过权限实现安全** 平衡安全性和可用性的双层安全模型: - **宽松模式**(默认):简化的工作流程,最少的中断 - **安全模式**(--safe 标志):每个操作的细粒度权限请求 ### 5. **提供商无关** 通过统一接口支持多个 AI 提供商: - Anthropic Claude(主要) - OpenAI 和兼容的 API - 自定义端点和本地模型 - 基于上下文大小的自动模型切换 ### 6. **通过 MCP 实现可扩展性** 模型上下文协议(MCP)集成支持: - 第三方工具集成 - 自定义服务器连接(stdio/SSE) - 从 Claude Desktop 配置导入 - 项目范围的服务器管理 ## 技术栈 ### 核心技术 - **语言**:TypeScript,采用宽松严格模式进行实用开发 - **运行时**:Node.js 18+,使用 Bun 进行开发,TSX 用于生产 - **UI 框架**:React + Ink 用于终端渲染 - **CLI 框架**:Commander.js 用于参数解析 - **验证**:Zod 用于运行时类型检查 ### AI 集成 - **Anthropic SDK**:与 Claude 模型的原生集成 - **OpenAI SDK**:支持 GPT 模型和兼容的 API - **流式传输**:服务器发送事件用于实时响应 - **上下文管理**:智能令牌计数和压缩 ### 开发工具 - **构建系统**:基于 Bun 的自定义构建脚本 - **测试**:Bun 测试运行器,支持模拟 - **格式化**:Prettier,保持一致的代码风格 - **错误跟踪**:Sentry 集成用于生产监控 - **分析**:Statsig 用于功能标志和使用指标 ## 系统架构层 ### 1. 表示层 React 组件渲染到终端,提供: - 交互式提示和选择 - 语法高亮的代码显示 - 进度指示器和加载动画 - 支持 markdown 的消息格式化 ### 2. 命令与控制层 通过以下方式编排用户交互: - 用于快速操作的斜杠命令系统 - 用于 AI 对话的自然语言处理 - 工具选择和执行管道 - 上下文注入和管理 ### 3. 工具执行层 标准化的工具接口支持: - 文件操作(读取、写入、编辑) - Shell 命令执行 - 代码搜索和分析 - 任务管理和规划 - 通过 MCP 的外部工具集成 ### 4. 服务集成层 连接到外部服务: - AI 模型提供商(Anthropic、OpenAI) - 用于扩展功能的 MCP 服务器 - 用于版本控制集成的 Git - 用于项目分析的文件系统 ### 5. 基础设施层 基础服务包括: - 配置管理(全局/项目) - 权限系统和安全性 - 日志记录和错误处理 - 会话和历史管理 - 成本跟踪和分析 ## 关键设计模式 ### 用于流式传输的异步生成器 工具使用异步生成器来产生进度更新,在长操作期间启用实时反馈,同时保持取消支持。 ### 基于组件的 UI 架构 每个 UI 元素都是一个 React 组件,从简单的文本显示到复杂的交互式对话框,确保一致性和可重用性。 ### 配置级联 设置从全局 → 项目 → 运行时流动,每个级别都有验证,允许灵活的自定义而不复杂。 ### 错误边界 全面的错误处理确保优雅降级,提供用户友好的消息和自动错误报告。 ### 上下文注入 相关的项目上下文会自动注入到 AI 对话中,无需手动指定即可提高响应质量。 ## 开发原则 ### 1. **用户体验优先** 每个功能都是为终端工作流程效率而设计的,具有键盘优先的交互和最小的上下文切换。 ### 2. **渐进式披露** 复杂的功能隐藏在简单的界面后面,需要时可以使用高级选项。 ### 3. **优雅失败** 错误会得到优雅的处理,提供有用的消息、后备选项和恢复建议。 ### 4. **性能意识** 缓存、延迟加载和流式传输确保即使在大型代码库中也能进行响应式交互。 ### 5. **默认安全** 对潜在危险的操作进行权限检查是强制性的,具有清晰的用户同意流程。 ## 系统功能 ### 核心功能 - **代码理解**:分析项目结构和关系 - **文件操作**:使用验证读取、写入和编辑文件 - **命令执行**:运行带输出捕获的 shell 命令 - **搜索与分析**:查找代码模式和依赖关系 - **任务管理**:规划和跟踪开发任务 ### AI 增强功能 - **自然语言命令**:用简单的英语描述您想要的内容 - **上下文感知建议**:AI 理解您项目的具体情况 - **多步骤工作流**:自动分解复杂任务 - **代码生成**:按照项目模式创建新代码 - **重构支持**:安全地修改现有代码 ### 集成功能 - **MCP 服务器**:连接到外部工具和服务 - **自定义命令**:定义可重用的基于 markdown 的命令 - **Git 集成**:理解并使用版本控制 - **多个 AI 模型**:根据任务在模型之间切换 ## 未来可扩展性 该架构是为未来扩展而设计的: - 可以通过实现工具接口添加新工具 - 可以通过 ModelManager 集成额外的 AI 提供商 - 自定义命令启用用户定义的工作流 - MCP 支持允许第三方扩展 - 可以以最小的更改添加插件系统 这种模块化、可扩展的设计确保 Kode 可以随着用户需求的发展而发展,同时保持稳定性和安全性。