一个用现代 C++23 构建的 AI 编码 Agent 系统,具备完整的 TUI 交互界面、细粒度权限控制和可扩展技能架构。
- 使用
std::expected统一错误处理,协程与异步编程支持流式 LLM 输出 - RAII 自动管理文件句柄、进程句柄、网络连接等资源
std::span零拷贝视图处理文件读取与 Token 流
- 打包为单一可执行文件,开箱即用
- 0 数据资产依赖,首次运行自动创建必要目录
- 支持便携模式,可 U 盘携带或 CI 环境使用
- 默认最小权限,敏感操作需显式授权
- 高危命令自动拦截(
rm -rf /、shutdown、mkfs等) - Argon2id 密码派生密钥加密保护 API-Key 等敏感信息
- 支持路径白名单、命令白名单与工具级权限控制
- 用户可随时中断 Agent 执行并注入纠正指令
- 高危操作触发人工确认,Agent 可主动向用户提问
- 执行过程中可修改计划、切换模型、调整权限
- 实时展示 Agent 状态、Token 消耗、模型信息与任务进度
- 文件修改强制 Diff 展示,编辑历史可追踪
- 支持创建存档点与一键回退
┌─────────────────────────────────────────────────────────────┐
│ 用户输入层 │
│ TUI / CLI / 外部频道 │
└──────────────────────────┬──────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 命令路由与输入解析层 │
│ 自然语言 / 系统命令 / Shell / 工具调用 / 记忆引用 │
└──────────────────────────┬──────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent 核心循环 │
│ 上下文构建 → LLM 推理 → 工具调用 → 结果回灌 → 继续推理 │
└───────┬─────────────┬─────────────┬─────────────┬───────────┘
▼ ▼ ▼ ▼
┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
│ Provider │ │ Tool-List │ │ Session │ │ Permission │
│ LLM 接入 │ │ 工具集 │ │ 会话记忆 │ │ 权限安全 │
└────────────┘ └────────────┘ └────────────┘ └────────────┘
- Provider 供应商:支持 OpenAI / Anthropic 风格 API,多 Provider 路由与失败自动切换
- LSP 服务器:接入语言服务器协议,提供语法诊断、代码补全、跳转定义等代码智能
- MCP 服务器:模型上下文协议,统一注册外部工具
| 分类 | 工具 | 说明 |
|---|---|---|
| 文件操作 | read write edit search fs |
精准行列编辑、正则搜索、大文件分片 |
| 执行进程 | exec task |
终端指令执行、后台进程生命周期管理 |
| 网络下载 | websearch webfetch |
支持 Bing/Google 搜索、断点续传 |
| 规划记忆 | todolist mind-map memory |
任务清单、思维导图、语义记忆搜索 |
| 多模态 | image question |
图片理解、交互式提问 |
| 版本控制 | git-saved git-restore |
编辑存档点与一键回退 |
| 高级能力 | subagent channel-msg |
子 Agent 任务派发、第三方频道消息 |
- 指令智能补全系统,支持
⬆️/⬇️选择 - 侧边栏实时展示 TODO、编辑历史、上下文使用情况、LSP/MCP 状态
- 思考内容与工具输出收纳显示,双击展开
- 流式输出模型回复,Markdown 渲染
- 基于工作目录的会话管理,支持保存、恢复、搜索
- 完整编辑历史记录,任何修改可追踪、可回退
- 三级记忆作用域:全局、项目、会话
- 技能按文件夹存储,支持 Git 自动更新
- 可注册命令、工具、提示词模板、快捷键与主题
- YAML manifest 声明式配置
- 无交互可运行,适用于 CI/CD 环境
- 支持 JSON/JSONL 机器可读输出
- 明确的退出码规范(0-9)
- C++23 兼容编译器(GCC 13+、Clang 16+、MSVC 2022+)
- CMake 3.21+
- FTXUI 5.1.0、nlohmann/json 3.11.3、tomlplusplus 3.4.0、argparse 3.1
- OpenSSL、libcurl
# 克隆并构建
git clone https://github.com/yourusername/codeseek.git
cd codeseek
mkdir build && cd build
cmake ..
cmake --build .
# 运行
./codeseek
# CLI 模式
./codeseek --no-tui "检查 src/ 中的安全问题"
# 指定模型与权限
./codeseek --model gpt-4 --permission ask
# CI/CD 集成
./codeseek --no-tui --permission auto --output jsonl --timeout 300 "审查本次变更"配置文件位置:~/.config/codeseek/config.toml
[provider]
type = "openai"
api_key = "your-api-key"
base_url = "https://api.openai.com/v1"
default_model = "gpt-4"
[mcp]
enabled = true
servers = ["my-server:python mcp_server.py"]
[lsp]
enabled = true
servers = ["cpp:clangd", "python:pylsp"]
[theme]
name = "default".code/
├── config/ # 配置文件
├── sessions/ # 会话数据
├── edit-history/ # 编辑历史与快照
├── history/ # 输入历史
├── logs/ # 运行日志
└── audit.log # 审计日志
.code-sys/
└── skills/ # 技能扩展
MIT License - 查看 LICENSE 文件了解详情。