Skip to content

loveStudyWjj/code_comment_agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Comment Agent

基于 Microsoft Agent Framework RC6 的代码注释自动补全工具。

功能

  • 📝 自动添加注释:为缺少注释的代码自动生成清晰的说明
  • 🔍 结构分析:识别代码中的函数、类、模块等结构
  • 🌐 多语言支持:Python、JavaScript、TypeScript、Java、Go、Rust、C/C++ 等
  • 📊 注释统计:分析代码注释比例,了解代码可读性状况
  • 💾 批量处理:支持批量处理目录下的多个代码文件

安装

# 克隆仓库
git clone https://github.com/your-username/code_comment_agent.git
cd code_comment_agent

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

配置

复制 .env.example.env 并配置:

cp .env.example .env

编辑 .env 文件:

# 使用 OpenAI 官方 API
OPENAI_API_KEY=sk-your-api-key-here
OPENAI_CHAT_MODEL=gpt-4o-mini

# 或使用本地模型(如 Ollama)
OPENAI_BASE_URL=http://localhost:11434/v1
OPENAI_CHAT_MODEL=llama3

使用

交互式模式

python code_comment_agent.py

菜单选项:

  1. 为单个文件添加注释
  2. 批量处理目录下的代码文件
  3. 查看文件注释比例统计
  4. 退出

命令行参数(可选扩展)

# 单文件处理
python code_comment_agent.py --file path/to/code.py

# 批量处理
python code_comment_agent.py --dir path/to/project

# 指定注释风格
python code_comment_agent.py --file code.py --style inline

支持的语言

语言 扩展名 注释风格
Python .py Docstring (""" """)
JavaScript .js JSDoc (/** */)
TypeScript .ts, .tsx JSDoc/TypeScript Doc
Java .java Javadoc (/** */)
Go .go godoc (//)
Rust .rs rustdoc (///)
C/C++ .c, .cpp, .h Doxygen/普通注释
Kotlin .kt KDoc (/** */)
Swift .swift Swift Doc (///)
PHP .php PHPDoc (/** */)

注释原则

Agent 遵循以下注释原则:

  1. 文件级注释:描述模块用途、主要功能和依赖
  2. 函数注释:说明用途、参数、返回值、异常
  3. 类注释:说明类的用途、属性和关键方法
  4. 复杂逻辑注释:解释算法和业务逻辑意图
  5. 避免过度注释:简单代码保持自解释

输出示例

处理后的代码会保存在 commented_code/ 目录:

commented_code/
├── original_file_commented_20260403_120000.py
├── another_file_commented_20260403_120100.js

许可证

MIT License - 详见 LICENSE 文件

致谢

基于 Microsoft Agent Framework 构建。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages