这个项目能做什么
AIForge 是一款原生 C++23 终端 AI 客户端,围绕供应商中立的运行时内核设计。它支持通过 Venice (通过 venice-cpp) 进行流式交互,支持单次及基于管道的 AI 工作流,以及持久且可恢复的聊天会话。交互式 Chat 界面基于 TermForge 构建,以实现强大的终端渲染。
核心特性包括:
- **供应商中立内核**:核心逻辑与 AI 供应商解耦,支持持久化、可回溯的运行与投影。
- **持久化会话**:会话状态、事件和转录记录使用 SQLite 持久化存储;会话可以恢复或继续。
- **可回溯的任务规划**:支持结构化的 `ask_user` 工具调用、计划修订、任务图,以及带有冲突分析和基于仓库的待办事项跟踪的精确修订决策。
- **基于文件的 Persona**:系统指令从 XDG 配置中的 `.md` 或 `.txt` 文件加载;通过内容哈希和原子更新进行安全管理。
- **模型发现与选择**:列出可用模型及其能力、价格和上下文大小;允许通过 CLI 或交互式 `/model` 命令进行过滤和选择。
- **瞬时角色选择**:在运行时选择特定供应商的角色,而无需更改核心配置。
- **本地音频支持 (Linux)**:通过 ALSA (RtAudio) 进行捕获和播放,处理过程安全且不会暴露给 AI 模型。
- **图像处理**:支持生成、查看和导出图像,采用内容寻址存储和验证 (通过 RasterForge 支持 PNG, JPEG, WebP)。
- **受限执行**:通过策略门控进程执行、输入/输出大小限制和能力限制来增强安全性。
- **用量与支出控制**:跟踪每个会话的 Token 使用量和货币成本;执行可配置的支出上限。
- **斜杠命令系统**:统一且可扩展的命令注册表,具备帮助、补全和可用性检查功能。
- **静态分析与风格**:强制执行代码格式化 (clang-format 20) 和静态分析 (clang-tidy 20),并配有文档化策略。
通过 CMake (3.28+) 使用 GCC 13+ 或 Clang 17+ 构建,核心功能依赖于 TermForge, venice-cpp 和 RasterForge。SQLite 提供持久化会话存储。测试和 linting 已集成到构建系统中。
该架构强调安全性、确定性和可审计性,架构决策由 ADR (架构决策记录) 和设计文档管理。显著的约束包括 UTF-8 验证、内容寻址制品,以及严格拒绝不安全输入或符号链接。
支持无头 (CLI) 和交互式 TUI 两种模式运行。在终端中不带参数启动时,将打开交互式 Chat 工作区。支持 stdin 管道传输,用于 diff 审查、代码分析和自动化。
采用 BSD 3-clause 许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。