为什么你的 AI Agent 总是像个智障?来自 Manus 大佬的 2 年血泪避坑指南

本文永久链接 – https://tonybai.com/2026/03/18/why-ai-agents-act-stupid-manus-expert-pitfall-guide 大家好,我是Tony Bai。 如果你在过去一年里跟风写过 AI Agent(智能体),你大概率经历过这样的绝望时刻: 你兴致勃勃地给大模型挂载了二三十个精心编写的 Function Calling(函数调用)工具,比如 read_file, search_web, execute_python……你期待它能像钢铁侠的贾维斯一样运筹帷幄。 ...

March 18, 2026 · 7 min · Tony Bai

Go开发者必看!JetBrains 2024报告深度解读:Go语言现状、趋势与未来机遇

Go开发者必看!JetBrains 2024报告深度解读:Go语言现状、趋势与未来机遇 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 10, 2025 · 6 min · Tony Bai

Go工具链版本已不由你定:go和toolchain指令详解

本文永久链接 – https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod Go语言自诞生以来,就一直将向后兼容性作为其核心理念之一。Go1兼容性承诺确保了为Go1.0编写的代码能够在后续的Go1.x版本中持续正确地编译和运行。这一承诺为Go的成功奠定了坚实的基础,它不仅保障了稳定性,也大大减轻了随着语言演进带来的代码维护负担。然而,兼容性的内涵并不仅限于向后兼容。向前兼容性,即旧版本的工具链能够优雅地处理针对新版本编写的代码,对于打造流畅的开发体验同样至关重要。 在Go 1.21版本之前,向前兼容性在某种程度上是一个被忽视的领域。尽管go.mod文件中的go指令可以标明模块预期的Go版本,但在实际中,它更像是一个指导性建议,而非强制性规则。旧版本的Go工具链会尝试编译那些需要较新版本的代码,这经常导致令人困惑的错误,更有甚者会出现“静默成功”的情况——代码虽然可以编译,但由于较新版本中的细微改动,其运行时行为可能并不正确。 ...

January 14, 2025 · 18 min · Tony Bai

使用issue2md将Github issue转换为Markdown

使用issue2md将Github issue转换为Markdown | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 使用issue2md将Github issue转换为Markdown 十二月 23, 2024 0 条评论 ...

December 23, 2024 · 6 min · Tony Bai

Go官方发布的go.dev给gopher们带来了什么

众所周知,Go是一个诞生于Google内部的编程语言,它在2009年11月份开源,在开源后立即受到了来自全世界开发人员的关注与贡献。但初期的Go语言的发展依旧是由Go核心团队的若干leader决定的,这种类“民主集中制”的方法延续了若干年。直到Go核心团队逐渐意识到Go应该更多倾听社区的声音,并让更多的gopher参与到Go项目的开发和贡献中来,甚至影响和决定一些语言特定的演化。于是Go团队开始特意为Go社区发展招兵买马。像Steve Francia、Francesc Campoy(后已经从google离职加入Dgraph)等都是在这个阶段加入Go team的。 Go团队在很长一段时间里尤其重视与社区的互动,比如连续多年发起Go user调查、Gophercon大会后的Go team与社区的见面会和分组讨论、去GOPATH降低Go入门学习曲线、发布Go新品牌标识、添加Go module机制、改善官网等。 ...

November 14, 2019 · 5 min · Tony Bai

docker容器内服务程序的优雅退出

近期在试验如何将我们的产品部署到docker容器中去,这其中涉及到一个技术环节,那就是如何让docker容器退出时其内部运行的服务程序也 可以优雅的退出。所谓优雅退出,指的就是程序在退出前有清理资源(比如关闭文件描述符、关闭socket),保存必要中间状态,持久化内存数据 (比如将内存中的数据flush到文件中)的机会。docker作为目前最火的轻量级虚拟化技术,其在后台服务领域的应用是极其广泛的,其设计者 在程序优雅退出方面是有考虑的。下面我们由简单到复杂逐一考量一下。 ...

October 9, 2014 · 15 min · Tony Bai

使用命令行方式开发Android应用

这两天参加了一个Android开发入门培训,讲师的水平不敢恭维,课讲的基本上也是一塌糊涂,不过通过这次培训,我算是达到了Android开发快速入门的预期目标。 一般来说Android应用开发的标准工具组合是JDK + Android SDK + ADT (Android Development Tools) + Eclipse,大家基本上是通过IDE GUI进行开发操作的。不过我个人更喜欢命令行,所以这次我也尝试探索了一下使用命令行方式开发Android应用的方法。 入门的第一步就是搭建开发环境。关于Android开发环境搭建的资料早已汗牛充栋,不过我也看了一下这些资料多是关于如何在Windows下使用Eclipse搭建环境的,而在Linux环境下不用Eclipse的手工搭建环境的资料甚少。而我用的是Ubuntu 10.04,所以在这里我想说说Ubuntu下搭建Android开发环境的过程,以及在此过程中遇到的诸多问题的解决。 ...

May 24, 2011 · 9 min · Tony Bai

借开源实现你的雄心壮志

本文翻译自"Fulfill Your Ambitions with Open Source",来自于《程序员应该知道的97件事》一书中的某个章节。 如果你在工作中没能开发那些可以实现你雄心壮志的软件,那你将有很不错的机会。也许你正在为一家庞大的保险公司开发软件,然而你实际上却宁愿供职于Google、Apple、Microsoft或是你自己初创的公司去开发下一个对世界影响巨大的软件。如果你去为你根本不关心的系统开发软件,那你永远也实现不了你心中的抱负。 ...

March 26, 2011 · 3 min · Tony Bai

你应该关心你的代码

本文翻译自”You Gotta Care about the Code“,来自于《程序员应该知道的97件事》一书中的某个章节。 即使不用大侦探福尔摩斯,我们也能知道优秀的程序员能写出好代码。糟糕的程序员…则不能。他们生产出代码巨兽,而其他人则不得不去清理。你想写出好代码,对不对?你渴望成为一名优秀的程序员。 ...

March 22, 2011 · 3 min · Tony Bai

知道如何使用命令行工具

本文翻译自”Know How to Use Command-line Tool“,来自于《程序员应该知道的97件事》一书中的某个章节。 现今,很多软件开发工具被打包成集成开发环境(Integrated Development Environments,IDE)提供给开发者。微软的Visual Studio和开源的Eclipse就是两个颇受欢迎的IDE,当然还有很多其他类似的工具。很多程序员喜欢使用IDE,这不仅是因为IDE容易使用,而且IDE还可以让程序员无需过多考虑一些过程中的微小细节,特别是构建过程。 ...

March 16, 2011 · 3 min · Tony Bai