市面上已经有不少成熟的 AI 编程工具,它们确实很厉害,可以做很多事情。但是在实际使用过程中,我发现一个问题:这些工具总是太通用,和我的工作流程并不完全匹配。它们缺少针对我项目特性的“个性化”。于是,我萌生了一个想法:为什么不自己动手,做一个完全贴合我需求的 CLI 编程助手呢?
于是,我决定用 Pydantic-AI 搭建属于自己的 AI 编程Agent。现在,它不仅能帮我修复测试、查文档,甚至还能修改代码。下面,我就来分享整个过程,以及为什么我选择自己动手。
为什么要自己动手?
市面上的商业工具,比如 GitHub Copilot 或 Claude Code 确实很酷,但它们就像超市买来的饼干:方便快捷,但总是少了一点“专属感”。
我的项目有一些奇怪的配置,还有一些 AWS 的特性,让通用工具经常束手无策。自己动手的好处有三个:
- 1. 量身定制:你的助手会完全适应项目的复杂性和混乱。
- 2. 学习与掌控:自己搭建过程让你理解这些 AI 工具是怎么运作的,这种知识非常宝贵。
- 3. 决策自主:想先修复代码再看测试?没问题,你说了算。
打个比方:当然外卖披萨很快,但自己挑配料,总是更合心意。
我的 AI 助手结构
我的Agent并不是一个神秘黑盒,它由几个模块组合而成:
• 大脑:Claude Sonnet 4(通过 AWS Bedrock),理解代码就像长期 pair programming 的搭档。
• 胶水:Pydantic-AI,使搭建Agent像堆积乐高一样简单。
• 工具:MCP Servers,一些小插件,用于跑测试或查文档。
• 交互界面:纯 CLI,输入命令即可获取答案,无需华丽 GUI。
这里 MCP 是关键,它像一个通用连接器,你可以像插 USB 一样添加工具,无需复杂集成。
第一步:从最基础开始
我先用 Python 的快速包管理器 uv 搭建基础环境:
复制这里只安装了两个包:pydantic-ai 用于搭建Agent,boto3 用于与 AWS 交互。接着在 main.py 里写了以下内容:
复制运行:
复制立刻就能进入 CLI。我输入:“写一个反转字符串的函数”,它就输出了干净的 Python 代码。简直太神奇了,但这只是开始。
第二步:让它帮我跑测试(我最讨厌手动跑)
每天频繁运行 pytest?太浪费时间了。我给Agent加了一个工具来处理:
复制现在我只需输入:“测试挂了,帮我看看!” 它就能运行 pytest,分析错误,并给出修改建议。早期有一次,它试图去“修测试而不是修代码”,结果我立刻给它设定了规则。
第三步:给Agent一些开发规则
智能归智能,但还是得指导它。我写了一段开发说明,让它知道我的偏好:
复制现在,它会遵循 TDD 和小修原则,不再轻易大改代码。
第四步:用 MCP 插件增强它
MCP 服务器就像小应用,为Agent添加新技能,本地运行保证数据安全。我用了几个:
• 安全 Python 沙箱:
复制• 最新文档查询:
复制• AWS 知识库:
复制• 网络搜索:
复制• 智能代码推理:
复制• 桌面指挥官:
复制这一套下来,它可以:
1. 跑测试。
2. 查文档。
3. 修改代码。
4. 再次验证测试。
就像和一个永远不偷零食的 AI 搭档 pair programming。
改变我的开发流程
自从有了这个Agent,我的工作方式彻底改变:
• 调试像团队协作:它能运行测试、给出修复建议,并解释原因。
• 学习更快:新库?它能演示例子、指出坑点。
• 不再切换标签:文档、搜索、AWS 全都在一个 CLI 里。
• 更聪明的问题解决:一步步推理,而不是简单输出代码。
• 内置代码审查:提交前发现潜在问题,就像有个随叫随到的资深开发。
我的总结与经验
1. MCP 是核心:不是单一工具,而是组合魔力。测试 + 文档 + 编辑 = 高效。
2. 实时信息胜过训练数据:实时搜索与最新文档总是比旧训练数据靠谱。
3. 思考比敲代码重要:智能Agent是合作伙伴,而不仅是自动补全。
4. 上下文很关键:Agent记住测试错误,修改代码时不用反复提醒。
5. 定制化是王道:通用工具也许能用,但自己的助手更懂你的代码库。
打造一个自己的 CLI 编程小助手,不仅提高了效率,也让整个开发过程变得更有趣、更可控。对我来说,这已经不只是一个工具,而是一位永不疲倦、懂我项目的“编程搭档”。