Skip to content

xshii/llmfccli

Repository files navigation

Claude-Qwen

基于 Ollama + Qwen3 构建的 C/C++ AI 编程助手。

项目介绍

Claude-Qwen 是一个开源的 AI 编程助手,专注于 C/C++ 项目开发。通过本地部署的 Qwen3 大模型,提供智能代码补全、错误修复、测试生成等功能。

设计灵感: 参考 Anthropic Claude Code 的工作机制,结合 Ollama 的本地部署优势。

核心特性:

  • 🔍 智能文件导航 - 跨目录搜索定位代码
  • 🔧 自动编译修复 - 识别并修复编译错误
  • ✅ 测试用例生成 - 自动生成 GTest 单元测试和集成测试
  • 💾 上下文管理 - Token 预算分配和智能压缩
  • 🔄 VSCode 集成 - Diff 对比和一键应用修改

项目优势

1. 完全本地化

  • 数据不上传云端,保护代码隐私
  • 无需 API Key,零使用成本
  • 离线可用,不依赖网络

2. C/C++ 专精

  • 深度集成 CMake 和 GTest
  • 理解 C++ 编译错误格式(gcc/clang/MSVC)
  • 使用 tree-sitter 准确解析代码结构

3. 智能上下文管理

  • 128k 超长上下文窗口
  • 分类 token 预算,优先保留关键信息
  • 自动压缩历史对话,保持流畅体验

4. 自主决策能力

  • 两阶段 Agent 设计(意图识别 + 自主执行)
  • 动态调整工具调用策略
  • 编译-修复循环,最多 3 次重试

快速入门

环境要求

  • Python 3.10+
  • Ollama 已安装
  • CMake 3.15+(仅用于测试项目构建)

安装步骤

# 1. 克隆项目
git clone https://github.com/yourusername/claude-qwen.git
cd claude-qwen

# 2. 安装依赖
pip install -e .[dev]

# 3. 拉取 Qwen3 模型
ollama pull qwen3

# 4. 验证安装(运行测试)
python tests/run_all_tests.py

基本使用

# 启动 CLI 交互模式
claude-qwen

# 常用命令示例
> 找到 network_handler.cpp 并添加超时重试机制
> 编译项目并修复所有错误
> 为当前文件生成单元测试
> 分析 HTTP 模块的依赖关系

配置说明

修改 config/ 目录下的配置文件:

  • token_budget.yaml - Token 分配策略和压缩阈值
  • ollama.yaml - 模型参数(temperature, top_p 等)
  • tools.yaml - 工具白名单和安全限制

测试用例

项目包含 6 个完整的端到端测试:

测试用例 说明 验证点
test_case_1 跨目录文件定位 + 功能添加 grep 搜索、代码插入、风格保持
test_case_2 编译错误自动修复循环 错误解析、循环修复、终止条件
test_case_3 单元测试生成 GTest 框架、边界测试、函数覆盖
test_case_4 模块集成测试生成 依赖分析、Mock 策略、边界行为
test_case_5 上下文保持 多轮对话、历史记忆
test_case_6 错误恢复机制 最大重试、Session 保存

运行测试:

# 全部测试
python tests/run_all_tests.py

# 单个测试
python tests/test_case_1.py

项目结构

claude-qwen/
├── backend/              # Python 后端
│   ├── agent/           # Agent 核心逻辑
│   ├── llm/             # Ollama 客户端
│   ├── tools/           # 工具系统(文件、编译、分析)
│   └── cli.py           # 命令行界面
├── vscode-extension/    # VSCode 插件(开发中)
├── tests/               # 测试用例
│   └── fixtures/        # 测试项目(包含故意的错误)
├── config/              # 配置文件
└── README.md

开发进度

  • 测试用例和测试项目
  • 项目结构和配置文件
  • Token 计数器
  • Ollama 客户端
  • 基础工具(view/edit/grep/bash)
  • Agent 主循环
  • 上下文压缩
  • CLI 交互界面
  • VSCode 插件

更新日志

v0.2.0 (2025-12-26)

新功能

  • 工具执行结果摘要显示(最多5行,绿色成功/红色错误)
  • find_similar_file 智能路径纠错,自动建议相似文件名

Bug 修复

  • 修复 git 工具参数被 validator 校验掉的问题(LLM 发送 JSON 字符串时)
  • 修复 "总是允许" 功能对 view_file 等工具未生效的问题
  • 修复确认系统测试用例的 API 不匹配问题

重构

  • 重写 test_edit_file_confirmation.py 适配新的 edit_file API(old_str/new_str)
  • 更新确认测试以使用 ConfirmResult 返回类型

如何反馈

我们欢迎任何形式的反馈和贡献!

提交 Issue

  • Bug 报告:GitHub Issues
  • 功能建议:打上 enhancement 标签
  • 使用问题:打上 question 标签

贡献代码

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交修改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

交流讨论

致谢

许可证

MIT License - 详见 LICENSE 文件

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •