核心概览
MyDeskBot 是一个强大的 AI 辅助开发平台,提供全面的开发支持。
核心概念
AI 助手
MyDeskBot 的核心是智能 AI 助手,它可以:
- 🧠 理解代码 - 深度理解您的代码库
- 📝 生成代码 - 智能生成高质量代码
- 🔍 代码审查 - 实时代码质量检查
- 💡 提供建议 - 基于最佳实践的建议
- 🎯 上下文感知 - 理解整个项目上下文
模型提供商
MyDeskBot 支持多种 AI 模型提供商:
- OpenAI - GPT-4, GPT-3.5 Turbo
- Anthropic - Claude 3 Opus, Sonnet, Haiku
- Google - Gemini Pro
- 开源模型 - 通过 Ollama 使用本地模型
工具和插件
丰富的工具和插件生态:
- MCP 工具 - Model Context Protocol 集成
- IDE 插件 - 集成到您喜爱的编辑器
- 桌面应用 - 独立的 AI 助手应用
- 命令行工具 - 终端中的 AI 辅助
架构概览
┌─────────────────────────────────────────────────┐
│ 用户界面 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ IDE 插件 │ │ 桌面应用 │ │ CLI 工具 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ MyDeskBot 核心 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 上下文引擎│ │ 提示词系统│ │ 规则系统 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 模型适配器│ │ 缓存管理 │ │ 错误处理 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ 模型提供商 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ OpenAI │ │ Anthropic│ │ 其他提供商│ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────┘主要组件
1. 上下文引擎
负责理解和分析您的代码库:
mermaid
graph LR
A[代码扫描] --> B[语法分析]
B --> C[符号提取]
C --> D[依赖分析]
D --> E[模式识别]
E --> F[知识图谱]功能:
- 索引代码库
- 理解代码结构
- 识别代码模式
- 维护依赖关系
2. 提示词系统
智能生成和管理提示词:
功能:
- 自动生成提示词
- 提示词模板管理
- 上下文注入
- 提示词优化
3. 规则系统
配置化规则和约束:
功能:
- 代码风格规则
- 安全规则
- 性能规则
- 自定义规则
4. 模型适配器
统一的模型接口:
支持:
- OpenAI API
- Anthropic API
- Azure OpenAI
- 本地模型(Ollama)
- 自定义端点
5. MCP 工具集成
Model Context Protocol 工具集成:
集成工具:
- GitHub
- Notion
- Supabase
- Sentry
- Netlify
- 等等...
工作流程
1. 代码补全流程
用户输入
↓
上下文收集
↓
提示词生成
↓
模型推理
↓
结果过滤
↓
展示建议2. 代码审查流程
选择代码
↓
静态分析
↓
规则检查
↓
AI 审查
↓
生成报告
↓
展示建议3. 计划模式流程
描述任务
↓
需求分析
↓
生成计划
↓
用户确认
↓
分步执行
↓
结果验证核心特性
智能感知
- 项目感知 - 理解整个项目结构
- 模式学习 - 学习您的编码风格
- 上下文相关 - 基于整个代码库
高度可配置
- 模型选择 - 支持多种 AI 模型
- 自定义规则 - 配置化规则系统
- 插件扩展 - 丰富的插件生态
隐私安全
- 本地处理 - 敏感操作可在本地完成
- 数据加密 - 传输和存储加密
- 可控范围 - 控制发送的数据
高性能
- 智能缓存 - 减少重复请求
- 流式输出 - 快速响应用户
- 增量索引 - 高效的代码库索引
使用场景
日常开发
- 代码补全
- 快速修复
- 代码解释
- 文档生成
代码审查
- 质量检查
- 安全审查
- 性能优化
- 最佳实践
学习辅助
- 技术学习
- 代码示例
- 概念解释
- 最佳实践
自动化
- 脚本生成
- CI/CD 配置
- 测试生成
- 文档自动化
技术栈
后端
- Node.js - 运行时
- TypeScript - 主要语言
- Rust - 性能关键组件
前端
- React - UI 框架
- Electron - 桌面应用
- Tauri - 新一代桌面应用
AI/ML
- OpenAI API - 模型服务
- Anthropic API - Claude 模型
- LangChain - AI 应用框架
扩展性
插件系统
- IDE 插件(IntelliJ, VS Code, Neovim)
- MCP 工具集成
- 自定义规则
API 集成
- REST API
- GraphQL API
- WebSocket(实时通信)
本地部署
- Docker 支持
- Kubernetes 支持
- 私有部署
配置管理
配置文件
yaml
# config.yaml
name: 我的 MyDeskBot 配置
version: 0.0.1
schema: v1
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
apiKey: "${{ secrets.OPENAI_API_KEY }}"
roles:
- chat
- edit
- apply
- name: "claude-3-sonnet"
provider: "anthropic"
model: "claude-3-sonnet"
apiKey: "${{ secrets.ANTHROPIC_API_KEY }}"
roles:
- chat
- autocomplete
- name: "local-llama"
provider: "ollama"
model: "llama2"
apiBase: "http://localhost:11434"
roles:
- chat环境变量
bash
# ~/.mydeskbot/.env
OPENAI_API_KEY=your-openai-key
ANTHROPIC_API_KEY=your-anthropic-key