Skip to content

Latest commit

 

History

History
494 lines (369 loc) · 13.8 KB

File metadata and controls

494 lines (369 loc) · 13.8 KB

HelloQoder:AI 驱动的 Agentic Coding 实践

探索人机协作编程的新范式

6 个全栈项目 · 3 种技术生态 · 1 套方法论


摘要

本文介绍 HelloQoder 项目集,这是一系列完全由 AI 编程助手 Qoder 驱动开发的全栈应用。通过 6 个涵盖不同技术领域的项目,我们展示了 Agentic Coding(智能体编程)范式在实际工程中的应用,探讨了人机协作编程的方法论、最佳实践与未来展望。

关键词:Agentic Coding、人机协作、AI 编程助手、全栈开发、Qoder


1. 引言

1.1 背景与动机

随着大语言模型(LLM)技术的快速发展,AI 辅助编程正在从简单的代码补全演进为更高级的形态。传统的 AI 编程辅助工具主要提供行级或块级的代码建议,而新一代的 Agentic Coding 范式则将 AI 定位为一个具有自主规划、执行和验证能力的"编程智能体"。

HelloQoder 项目集正是这一范式的实践成果——6 个功能完整的全栈应用,涵盖视频处理、电商微服务、心理健康平台等多个领域,全部通过与 Qoder 的对话式交互完成开发。

1.2 Agentic Coding 定义

Agentic Coding 是一种以 AI 智能体为核心的编程范式,具有以下特征:

特征 描述
自主规划 AI 能够理解高层需求,自动分解为可执行的任务序列
工具调用 AI 可以调用文件系统、终端、搜索等工具完成实际操作
上下文感知 AI 理解项目结构、技术栈约束和代码依赖关系
迭代反馈 支持基于运行结果的问题诊断和代码修正

与传统开发流程相比:

传统开发:需求文档 → 设计 → 编码 → 测试 → 部署
Agentic Coding:自然语言描述 → AI 理解 → 代码生成 → 即时反馈 → 迭代优化

2. 项目集概览

2.1 项目矩阵

HelloQoder 包含 6 个技术领域各异的项目:

项目 领域 核心技术栈 架构模式
Glimmer 桌面/移动自动化 Vue 3 + Python + GLM-4V 前后端分离
CartService 电商微服务 FastAPI + PostgreSQL + SQLAlchemy RESTful 微服务
NovelTTSApp 语音合成 .NET 10 + GLM-TTS + NAudio Clean Architecture
EpubToSplitTxt 文本处理 .NET 9 + VersOne.Epub 管道处理模式
MindMates 心理健康 AI Vue 3 + .NET 10 + FastAPI + MiMo 三层架构 + DDD
BatchClip 视频编辑 FastAPI + Streamlit + FFmpeg 前后端分离

2.2 技术栈分布

后端服务
├── Python 生态
│   ├── FastAPI (异步 Web 框架)
│   ├── LangChain (LLM 编排)
│   ├── SQLAlchemy 2.0 (异步 ORM)
│   └── Milvus SDK (向量数据库)
│
├── .NET 生态
│   ├── .NET 10 / C# 13
│   ├── Microsoft Agent Framework
│   ├── Entity Framework Core
│   └── Microsoft.Extensions.AI
│
前端与 UI
├── Vue 3 + TypeScript + Vite
├── Element Plus / Tailwind CSS
├── Streamlit (Python 快速 UI)
└── VS Code Extension (TypeScript)

AI 模型集成
├── 智谱 GLM-4V / GLM-TTS
├── 小米 MiMo
├── OpenAI / DashScope 兼容
└── LightRAG (知识图谱增强)

数据存储
├── PostgreSQL (关系型)
├── Milvus (向量数据库)
└── 文件系统 (媒体资产)

3. 代表性项目深度解析

3.1 MindMates:心理健康 AI 平台

3.1.1 架构设计

MindMates 采用三层架构,实现前端、业务后端、AI 后端的职责分离:

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Frontend  │────▶│  Backend-Business │────▶│   Backend-AI    │
│  Vue 3 SPA  │     │   .NET 10 API    │     │ FastAPI + MiMo  │
└─────────────┘     └──────────────────┘     └─────────────────┘
        │                   │                        │
        ▼                   ▼                        ▼
   用户交互            PostgreSQL               Milvus
   会话管理            用户认证               RAG 检索
   消息展示            数据持久化             危机检测

3.1.2 Clean Architecture 实践

.NET 业务后端严格遵循 DDD 分层:

backend-business/
├── MindMates.Api/           # API 层:控制器、中间件
├── MindMates.Application/   # 应用层:DTO、服务接口
├── MindMates.Domain/        # 领域层:实体、仓储接口
└── MindMates.Infrastructure/# 基础设施:EF Core、外部服务

3.1.3 危机检测机制

AI 后端集成了危机关键词检测,当用户消息包含自残、自杀等敏感词汇时,优先返回求助资源:

CRISIS_KEYWORDS = ["自杀", "结束生命", "不想活了", "想死", "伤害自己"]

def detect_crisis(message: str) -> bool:
    return any(keyword in message for keyword in CRISIS_KEYWORDS)

3.2 NovelTTSApp:小说转有声书

3.2.1 Clean Architecture 实现

NovelTTSApp 展示了 .NET 生态下 Clean Architecture 的标准实现:

src/
├── Core/                    # 核心层:零外部依赖
│   ├── Entities/            # 领域实体
│   │   ├── Novel.cs
│   │   ├── AudioSegment.cs
│   │   └── VoiceReference.cs
│   └── Interfaces/          # 核心接口
│       ├── INovelReader.cs
│       ├── ITtsService.cs
│       └── IAudioProcessor.cs
│
├── Infrastructure/          # 基础设施层:接口实现
│   ├── Services/
│   │   ├── ZhipuTtsService.cs
│   │   ├── AudioProcessor.cs
│   │   └── BilibiliDownloader.cs
│   └── DependencyInjection.cs
│
└── App/                     # 应用层:编排和入口
    ├── Services/NovelProcessor.cs
    └── Program.cs

3.2.2 语音克隆工作流

支持从 Bilibili 视频提取参考音频进行声音克隆:

1. 下载 Bilibili 视频 → 提取 10 秒参考音频
2. 上传至智谱 API → 获取 file_id
3. 调用 voice/clone → 创建 voice_id
4. 使用 voice_id 调用 GLM-TTS → 生成克隆语音

4. Qoder 开发方法论

4.1 对话驱动开发(Conversation-Driven Development)

Qoder 的核心价值在于将自然语言转化为可执行的代码。以下是典型的开发对话模式:

4.1.1 项目初始化

用户输入

"基于 rules 为我完成完整的应用程序"

Qoder 执行

  • 解析规则文件中的技术栈约束
  • 创建项目结构和文件骨架
  • 安装依赖包
  • 实现核心业务逻辑
  • 配置依赖注入

产出:一次对话 → 3 个项目、15+ 文件

4.1.2 代码审查

用户输入

"Code Review"

Qoder 执行

  • 扫描代码质量问题
  • 识别架构违规
  • 检查编码规范一致性
  • 自动修复问题

产出:两个单词 → 完整审查 + 4 处修复

4.2 规则文件:AI 的"领域知识"

规则文件是 Qoder 高质量输出的基础,典型结构:

## Codebase
- 语言: C# (.NET 10)
- 架构: Clean Architecture

## Dependencies
- Microsoft.Extensions.AI
- NAudio, Polly, Serilog

## AI Coding Rules
- 必须使用 async/await
- 优先使用流式处理
- 结合 Polly 处理重试
方面 无规则 有规则
技术栈选择 随机 精确遵循
架构风格 单体 Clean Architecture
代码风格 不一致 现代 C# 统一风格
错误处理 基础 自动应用 Polly

4.3 迭代反馈循环

用户描述需求
    ↓
Qoder 生成代码
    ↓
用户运行/测试
    ↓
反馈问题或优化点  ──→ Qoder 修复/优化
    ↓
验收完成

最佳实践

  1. 小步迭代:每次对话聚焦一个目标
  2. 及时反馈:发现问题立即沟通
  3. 保持审查:AI 生成代码仍需人工复核

5. 技术实现细节

5.1 异步编程模式

所有项目均遵循异步优先原则:

Python (FastAPI)

async def chat(request: ChatRequest) -> ChatResponse:
    memory = memory_manager.get_memory(request.session_id)
    response = await llm.ainvoke(messages)
    return ChatResponse(response=response.content)

.NET (C# 13)

public async Task<AudioSegment> SynthesizeAsync(
    string text, 
    CancellationToken ct = default)
{
    var bytes = await File.ReadAllBytesAsync(filePath, ct);
    return await _ttsService.GenerateAsync(text, ct);
}

5.2 依赖注入配置

.NET 项目

// DependencyInjection.cs
public static class DependencyInjection
{
    public static IServiceCollection AddInfrastructure(
        this IServiceCollection services, 
        IConfiguration config)
    {
        services.AddScoped<INovelReader, NovelReader>();
        services.AddScoped<ITtsService, ZhipuTtsService>();
        services.AddScoped<IAudioProcessor, AudioProcessor>();
        return services;
    }
}

Python 项目

# 使用 FastAPI 依赖注入
@app.post("/api/chat")
async def chat_endpoint(
    request: ChatRequest,
    chat_service: ChatService = Depends(get_chat_service)
):
    return await chat_service.process(request)

5.3 容器化部署

MindMates 项目展示了完整的 Docker Compose 部署方案:

version: '3.8'
services:
  frontend:
    build: ./frontend
    ports: ["80:80"]
    depends_on: [backend-business]
  
  backend-business:
    build: ./backend-business
    ports: ["5000:5000"]
    environment:
      - ConnectionStrings__DefaultConnection=${DB_CONNECTION}
    depends_on: [postgres]
  
  backend-ai:
    build: ./backend-ai
    ports: ["8000:8000"]
    environment:
      - MIMO_API_KEY=${MIMO_API_KEY}
    depends_on: [milvus]
  
  postgres:
    image: postgres:17-alpine
    volumes: [postgres_data:/var/lib/postgresql/data]
  
  milvus:
    image: milvusdb/milvus:v2.4.0
    ports: ["19530:19530"]

6. 效率与质量分析

6.1 开发效率对比

指标 传统开发 Qoder 开发 效率提升
项目初始化 2-4 小时 5-10 分钟 10-20x
CRUD 接口 1-2 小时 2-5 分钟 15-30x
代码审查 30-60 分钟 1-2 分钟 20-30x
文档生成 1-2 小时 5-10 分钟 10-15x

6.2 代码质量指标

NovelTTSApp 项目的 Code Review 评分:4.3/5 ⭐

维度 评分 说明
架构设计 4.5 严格遵循 Clean Architecture
代码风格 4.5 现代 C# 13 特性应用
异步处理 4.0 全异步 I/O
错误处理 4.0 Polly 重试策略
可维护性 4.5 清晰的分层和接口定义

7. 经验与最佳实践

7.1 适用场景

✅ 高效场景

  • 原型快速搭建
  • 标准化项目初始化
  • CRUD 接口生成
  • 代码审查与重构
  • 文档生成

⚠️ 需谨慎场景

  • 复杂业务逻辑
  • 性能关键代码
  • 安全敏感模块
  • 算法优化

7.2 人机协作原则

  1. 清晰需求:明确功能目标和技术栈约束
  2. 规则先行:编写好规则文件再开始开发
  3. 分阶段推进:先架构,再功能,后优化
  4. 验证反馈:运行代码,发现问题,及时反馈
  5. 人工复核:AI 生成代码需人工审查后合并

7.3 问题诊断模式

当遇到问题时,Qoder 的典型诊断路径:

1. 添加调试日志 → 观察实际值
2. 检查配置优先级 → 环境变量覆盖
3. 验证依赖兼容性 → API 参数变更
4. 比对数据格式 → 向量维度/编码格式
5. 排查网络问题 → 代理/SSL/超时

8. 结论与展望

8.1 核心结论

  1. Agentic Coding 已可用于生产级项目:6 个全栈项目的成功开发证明了这一范式的可行性。

  2. 规则文件是质量保障的关键:清晰的技术约束使 AI 输出更加可控和一致。

  3. 人机协作优于纯自动化:AI 处理重复性工作,人类把控架构和业务决策。

  4. 效率提升显著但非万能:标准化场景效率提升 10-30 倍,复杂逻辑仍需人工介入。

8.2 未来展望

今天: 对话 → 代码
明天: 对话 → 测试 → 部署
后天: 对话 → 完整 DevOps 流程

随着 AI 能力的持续提升,我们预见:

  • 更强的上下文理解:跨文件、跨项目的全局理解
  • 更精准的代码生成:接近人类高级工程师水平
  • 更完善的验证机制:自动生成测试、运行验证
  • 更深的领域适配:针对特定行业的专业 Agent

附录

A. 项目仓库结构

HelloQoder/
├── Glimmer/          # 桌面/移动自动化 Agent
├── CartService/      # 电商购物车微服务
├── NovelTTSApp/      # 小说转有声书应用
├── EpubToSplitTxt/   # Epub 电子书切分工具
├── MindMates/        # 心理健康 AI 平台
├── BatchClip/        # 批量视频编辑工具
└── README.md         # 项目总览

B. 技术资源

资源 用途
Microsoft Agent Framework .NET Agent 开发
LangChain LLM 应用编排
Milvus 向量数据库
智谱 AI GLM 系列模型

C. 开发统计

指标 数值
项目数量 6
编程语言 C#, Python, TypeScript
框架数量 10+
核心对话轮次 ~100 轮
生成代码行数 15,000+

Made with ❤️ by Qoder

探索 AI 驱动开发的无限可能