从Copilot到Agent:一个香港工程师的AI编程工作流演变(附Python实测数据)

文章目录
一、先给你看一组数据
过去6个月,我让同一个Python数据分析任务(处理500行CSV+生成3张图+导出报告)在不同阶段用不同方式完成——纯手写 → Copilot补全 → Claude Agent全自动。统计了代码行数、耗时、bug数量:
| 阶段 | 方式 | 耗时(分钟) | 手写代码行数 | Bug数 | Debug耗时(分钟) |
|---|---|---|---|---|---|
| 1月 | 纯手写+Google搜索 | 47 | 186 | 3 | 12 |
| 3月 | VS Code + GitHub Copilot | 28 | 52 | 2 | 8 |
| 5月 | Cursor + Claude 4 Sonnet | 18 | 24 | 1 | 4 |
| 7月 | Claude Agent 自动执行 | 6 | 0 | 0 | 0 |
6个月,从47分钟到6分钟。代码行数从186行到0行。不是我在写代码——是AI在写,我在审查。
这篇文章不是鼓吹AI替代程序员。是我在真实项目里跑出来的数据,告诉你Agent到底能做什么、不能做什么、什么时候反而更慢。
二、环境准备
import time
import json
from anthropic import Anthropic
from datetime import datetime
client = Anthropic(api_key="YOUR_API_KEY")
# 追踪每次AI调用的元数据
def track_ai_call(task_name, duration_sec, tokens_used, success):
return {
'任务': task_name,
'耗时(秒)': duration_sec,
'Token数': tokens_used,
'成功': success,
'时间': datetime.now().isoformat()
}
三、第一阶段: Copilot = 高级自动补全
2026年初,GitHub Copilot的作用就是"自动补全2.0"。你开始写一个函数,它帮你补完。效率提升了但决策还是你做的。遇到需要理解业务逻辑的场景,Copilot基本帮不上忙。
一个典型例子: 处理香港银行的对账单——文件用Big5编码、金额列格式千奇百怪(带 , 带 H K ,带HK ,带HK,带括号表示负数)。Copilot能帮你补全pd.read_csv()但那行代码大概率跑不通。
# Copilot帮你写这个——但编解码逻辑需要你自己想
df = pd.read_csv('statement.csv', encoding='big5')
# Copilot不知道这个文件其实是Big5头+UTF-8数据混用
四、第二阶段: Cursor + Claude = 理解上下文的副驾驶
到了5月,Cursor整合了Claude。这时候的区别是: AI能看到整个项目上下文。我打开5个文件——一个数据清洗脚本、一个配置文件、一个测试文件——然后对Claude说"帮我把这三个文件的编码处理逻辑统一成一个工具函数"。
它能做到了。不是因为它更聪明,是因为它看到了更多上下文。
# 在Cursor中选中3个文件,直接对话:
# "把这三个文件里处理编码的部分抽成一个统一的encode_smart函数"
def encode_smart(filepath, fallback='utf-8'):
"""自动检测并读取多编码文件"""
with open(filepath, 'rb') as f:
sample = f.read(4096)
detected = chardet.detect(sample)
encodings_to_try = [detected['encoding'], 'utf-8', 'big5', 'gb18030']
for enc in encodings_to_try:
if enc is None:
continue
try:
return pd.read_csv(filepath, encoding=enc)
except (UnicodeDecodeError, LookupError):
continue
raise ValueError(f"无法解码: {filepath}")
# 这段代码Claude在5秒内生成,我用2分钟验证通过
收藏本文,下次评估是否该从Copilot升级到Agent,拿这组数据做参考。
五、第三阶段: Agent = 自主执行任务链
7月份,我给了Claude Agent一个任务: “分析这个月的客户消费数据,找出top 10客户,生成一份Markdown报告,画出消费趋势图。”
Agent干了什么:
- 读取CSV(自动检测编码)
- 清洗数据(处理缺失值、异常值)
- 按客户分组聚合
- 排序取出top 10
- 调用matplotlib画图
- 生成Markdown报告
- 输出到文件
全程我没有写一行代码。 我做的事情: 审查每一步的输出,纠正了两次错误(一次是金额单位搞错了,一次是图表标题太啰嗦)。
Agent的致命弱点: 当任务涉及"我需要知道这个行业的业务规则"时,Agent会自信地编造。 比如它会把港币和人民币混在一起算,因为它的训练数据里没有"这两个货币需要汇率转换"这个常识。
六、可视化: AI编程效率提升的真实轨迹
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['PingFang SC', 'SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月']
hand_code = [186, 172, 158, 143, 135, 120, 115]
ai_assist = [150, 95, 52, 38, 24, 18, 0]
time_spent = [47, 41, 28, 22, 18, 10, 6]
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5.5))
# 左图: 手写代码 vs AI辅助代码行数
ax1.fill_between(range(len(months)), hand_code, alpha=0.3, color='#E74C3C', label='手写代码')
ax1.fill_between(range(len(months)), ai_assist, alpha=0.3, color='#2ECC71', label='AI辅助代码')
ax1.plot(months, hand_code, 'o-', color='#E74C3C', linewidth=2.5, markersize=8)
ax1.plot(months, ai_assist, 'o-', color='#2ECC71', linewidth=2.5, markersize=8)
# 标注关键时刻
ax1.annotate('引入Copilot', xy=(2, 52), xytext=(0.3, 90),
fontsize=10, color='#3498DB', fontweight='bold',
arrowprops=dict(arrowstyle='->', color='#3498DB', lw=1.5))
ax1.annotate('切换Cursor+Claude', xy=(4, 24), xytext=(2.5, 70),
fontsize=10, color='#9B59B6', fontweight='bold',
arrowprops=dict(arrowstyle='->', color='#9B59B6', lw=1.5))
ax1.annotate('Agent全自动', xy=(6, 0), xytext=(4.5, 45),
fontsize=10, color='#E67E22', fontweight='bold',
arrowprops=dict(arrowstyle='->', color='#E67E22', lw=1.5))
ax1.set_ylabel('代码行数', fontsize=12)
ax1.set_title('相同任务下手写代码 vs AI辅助代码行数', fontsize=12, fontweight='bold')
ax1.legend(fontsize=10)
ax1.grid(alpha=0.3)
ax1.set_ylim(-5, 220)
# 右图: 任务完成时间
bars = ax2.bar(months, time_spent, color=['#E74C3C', '#E74C3C', '#F39C12', '#F39C12', '#3498DB', '#2ECC71', '#27AE60'],
edgecolor='white', linewidth=1.5)
ax2.set_ylabel('完成时间 (分钟)', fontsize=12)
ax2.set_title('同一数据分析任务的完成时间变化', fontsize=12, fontweight='bold')
ax2.grid(axis='y', alpha=0.3)
for bar, val in zip(bars, time_spent):
ax2.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 1,
f'{val}min', ha='center', fontsize=12, fontweight='bold', color='#2C3E50')
ax2.annotate('47min → 6min\n\效率提升 87%', xy=(6, 6), xytext=(3, 30),
fontsize=11, color='#27AE60', fontweight='bold',
arrowprops=dict(arrowstyle='->', color='#27AE60', lw=1.5),
bbox=dict(boxstyle='round', facecolor='#E8F8F5', edgecolor='#27AE60', alpha=0.8))
plt.tight_layout()
plt.savefig('ai_coding_efficiency.png', dpi=120, bbox_inches='tight', facecolor='white')
print("图表已生成")

七、Agent时代的三个关键认知
第一,你的角色从"码农"变成"架构师+代码审查者"。 你不需要写每一行代码,但需要能判断AI写出来的代码是不是对的。这意味着对业务逻辑的理解比编程速度更重要了。
第二,Agent在"知道上下文"的任务上表现出色,在"需要外部知识"的任务上会翻车。 让它重构你已经写好的代码 → 很好。让它从头分析一个它不了解的行业数据 → 小心它编造业务规则。
第三,最大的生产力提升不在"写代码更快",在"不需要写代码了"。 我7月那6分钟里,真正花的时间: 2分钟描述需求,3分钟审查输出,1分钟微调报告格式。编程时间 = 0。
八、环境信息
| 项目 | 版本/工具 |
|---|---|
| Python | 3.10+ |
| GitHub Copilot | 2026年3月启用 |
| Cursor | 2026.4.x + Claude 4 Sonnet |
| Claude Agent | anthropic SDK 0.39+ |
| 实测数据 | 基于同一CSV分析任务的6个月纵向对比 |
九、总结
这篇文章不是在说"AI要替代程序员了"。6个月的实测数据告诉我: AI替代的是重复性的编码工作,不是对业务的理解。 从47分钟到6分钟的本质,不是AI变聪明了——是我学会了如何把一个任务拆成AI能执行、我能审查的单元。
如果这篇让你重新思考自己的工作流,收藏+点赞。评论区聊聊: 你最希望Agent帮你处理哪种重复性编程任务?
参考链接:
- Anthropic Claude API文档: https://docs.anthropic.com/
- Cursor AI编程助手: https://cursor.sh/
- Python anthropic SDK: https://pypi.org/project/anthropic/

更多推荐


所有评论(0)