等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go
seq库为Go语言引入链式管道编程,解决传统嵌套函数调用的可读性问题。Go语言因泛型限制,此前库如lo只能采用从内往外的写法,导致代码阅读顺序与数据流相反。Go 1.27引入泛型方法,允许方法定义类型参数,使seq得以实现从左到右的链式调用。库基于iter.Seq接口,支持Filter、Map、Sum、GroupBy、Distinct等操作,并具备惰性求值特性,可处理无限序列和短路优化。示例展示分组统计、去重求和、前缀和计算、滑动窗口等实用场景,强调代码流与数据流一致的优势。开发过程中使用AI辅助,但核心设计基于需求文档。seq需要Go 1.27版本,提升了Go代码的表达力和维护性,为函数式风格编程提供支持。
如何做决策 - 从 Go 的一个 issue 说起
本文由Go语言开源项目中一个重复提交提案的争议性issue切入,深入探讨了技术团队如何进行有效决策。文章引述了斯坦福教授John Ousterhout的“开放式决策”框架,其核心原则是:当试图推翻已定决策时,必须回答“你掌握了什么新的信息?”,若无则不予重新讨论。该框架将决策过程系统化为四个步骤:广泛收集意见、推动达成共识、清晰地宣布决定、以及基于新信息进行审慎的重新审议。文章强调,广泛收集意见需在“能改变结果”的阶段进行,并应尽早引入关键反对者。达成共识并非追求完全一致,而是通过透明投票获取多数认同,管理者应慎用否决权。决策的宣布必须明确且有据可查。文章还通过正反案例对比,分析了“害怕反馈”、“暗箱操作”和“草率收场”等常见误区,并讨论了该方法在鼓励建设性分歧、目标一致的中小型组织中尤为有效。最后,文章将其与“独裁者”式决策风格对比,指出后者依赖非凡直觉,难以复制。全文旨在为开发者和技术管理者提供一套可实践、可复制的工程决策流程,强调管理过程优于管理结果。
如何写好设计文档?
本文基于Go官方proposal仓库中的五个优秀设计文档,提炼其共性结构与写作方法,形成一份可复用的设计文档写作指南。Go设计文档以朴素语言讨论重要取舍,让陌生读者快速理解问题、方案及原因。总结出的通用模板包括元信息、摘要概述、背景动机、设计提案、理由取舍、兼容性、实现过渡计划和附录等部分。关键点包括:标题用一句话说清做什么;摘要埋下最重要承诺;背景动机用具体代码示例说明痛点,让读者‘疼’起来;设计提案采用渐进式教学,配Go声明和代码示例,明确边界;理由取舍主动对比备选方案,解释‘为什么不是别的’;兼容性诚实承认代价,提供渐进迁移路径;实现计划用数据和工具支撑可落地性;附录后置完整API和FAQ。文章强调设计文档应注重可读性、实用性和长期价值,适用于软件工程师和技术负责人参考。
01 引言:软件工程范式的五十年之变
文章回顾了软件工程自1968年以来的范式演变,从瀑布模型到敏捷、DevOps,指出核心假设“代码由人编写”首次被大语言模型打破。AI Coding Agent的演进分为四层:补全、对话、任务、自主流程,逐步将人类角色从作者转变为指挥者和审查者。Vibe Coding虽降低编程门槛,但易导致代码质量陷阱,需通过Agentic Engineering和结构化方法提升产出。核心主张是从Prompt-Driven转向Skill-Driven,强调持久化、可复用的Skill系统,如Spec-Driven Development和Ralph Loop等方法论。这些变革基于“用结构化知识驾驭非结构化AI能力”的原则,为AI时代软件工程提供新框架,凸显工程素养的关键作用。
00 卷首语:当 Karpathy 说他半年没写一行代码
Andrej Karpathy宣布半年未亲手写代码,转而使用AI Agent驱动开发,标志软件工程进入新纪元。他提出软件3.0概念:LLM作为新型计算机,编程通过提示实现,产生‘参差不齐的智能’。行业趋势显示AI编程工具从Copilot到Claude Code快速进化,效率提升数百倍。然而,AI放大工程缺陷,Vibe Coding可能导致技术债务,而Agentic Engineering强调人类在架构、验证和责任感上的核心作用。方法论如Matt Pocock的Skills系统、Spec-Driven Development、Ralph Loop的自主循环和Garry Tan的gstack虚拟团队,共同应对验证差距。Harness Engineering聚焦Agent运行环境,确保可靠性。文章指出,当开发速度不稀缺,工程化成为壁垒,人类需提升品味、判断力和系统审美。作为卷首语,它引出本书对AI时代软件工程方法论的系统探讨。
从需求到上线,让 AI 管理你的整个研发流程!
goal-workflow 是一套AI驱动的研发工作流系统,旨在自动化从需求分析到代码交付的整个软件开发生命周期。系统通过四个标准化步骤实现端到端闭环:首先,/prd 命令利用AI生成结构化PRD文档和Issue卡片,通过交互式问题澄清需求并拆解任务;其次,/goal 命令基于Issue实现功能代码,AI代理自动分析代码库、编写实现并运行测试;然后,/review-it 命令进行可信代码审查,遵循验证后执行、拒绝噪音、迭代修复原则,确保代码质量;最后,/ship-it 命令自动化提交流程,包括git操作、创建PR、合并代码和关闭Issue。工具兼容Claude Code、Codex等多种AI代码编辑器,提供双语支持和灵活部署,集成GitHub Issues、本地Markdown等平台。其核心理念是让AI处理重复性、规则性工作,释放开发者专注于创造性任务,提升团队研发效率和个人开发速度,减少需求理解不一致和返工问题。
antigravity-cli
Google在2026年I/O大会上发布Antigravity CLI,正式取代Gemini CLI,整合进Antigravity产品家族。该工具与Antigravity 2.0桌面版共享统一Agent引擎,支持自然语言交互,用户可通过对话指令Agent完成代码编辑、工作流编排等任务。核心特性包括Subagents(子智能体),允许主Agent派生子Agent并行处理后台任务如文档查询、构建验证,并拥有完整工具权限;终端沙箱利用操作系统原生能力(macOS sandbox-exec、Linux nsjail、Windows AppContainer)实现安全隔离,零启动开销;插件系统提供打包命名空间,可部署技能、智能体、规则等组件。安装通过一键脚本跨平台完成,认证支持本地和SSH环境。三大核心斜杠命令:/goal启用深度工作模式,自动执行复杂任务直到目标达成,使用独立模型评判;/schedule设置定时或循环任务,基于Cron调度实现自动化检查和报告;/grill-me用于方案对齐,确保AI输出准确。Antigravity CLI定位终端优先、键盘效率,与桌面版互补共享设置,提供统一AI开发工具链。
Clawpatch + codex-review:AI 代码审查工具链的正确打开方式
本文探讨了AI驱动的代码审查工具链Clawpatch与codex-review skill,旨在解决传统代码审查中审查者缺乏完整上下文的核心矛盾。Clawpatch通过`clawpatch map`命令将代码仓库映射为包含入口点、归属文件、上下文文件和关联测试的语义特征单元,突破了传统逐文件扫描的局限。它支持主流技术栈的自动识别,并基于这些语义单元调用AI进行审查,生成结构化的findings,包含分类、严重程度、置信度和证据。其修复流程设计保守,通过`clawpatch fix --finding
使用 CLIProxyAPI, 让最新的 Codex 能够支持国内的各大模型
CLIProxyAPI 是一个轻量级 AI API 代理服务器,核心功能是实现 OpenAI Responses API 与 Chat Completions API 之间的双向格式转换,从而解决 OpenAI Codex CLI 仅支持 Responses API 而国内模型如 DeepSeek、GLM、Kimi 等仅提供 Chat Completions API 的兼容性问题。工作原理涉及请求方向的格式映射(如将 instructions 转换为 system message)和响应方向的流式 SSE 数据支持。安装通过 Git 克隆和 Go 编译完成,配置灵活,支持多 Provider 和模型别名设置,配置文件采用 YAML 格式并支持热加载。路由机制允许通过 prefix 前缀或 alias 自动匹配指定 Provider,避免重名冲突。文章提供了详细的配置示例,包括添加新 Provider 和模型,以及关键配置项说明。此工具简化了 Codex CLI 与国内 AI 模型的集成,适用于有 API 代理需求的开发者。
SPEC和PRD的区别
在软件开发中,产品需求文档(PRD)和技术规格说明书(SPEC)是两个关键文档,分别对应需求分析和系统设计阶段。PRD由产品经理主导,聚焦于“做什么及为什么做”,从用户与商业视角定义产品功能,包括用户故事、业务目标和信息架构,旨在转化商业需求为具体功能描述。SPEC则由技术主管或工程师负责,回答“怎么做及做成什么样”,关注技术实现细节,如数据库设计、API接口规范和系统边界,将PRD中的抽象需求落地为结构化标准。文章通过建造房屋的类比生动阐释:PRD如同业主需求清单(如“别墅两层”),SPEC则类似施工图纸(如“客厅面积45平方米,承重墙使用C30混凝土”)。此外,文章指出行业正从“看PRD写代码”转向规范驱动开发(SDD),因AI能高效执行高度结构化的SPEC,凸显其在自动化开发中的价值。在敏捷流程中,PRD先用于需求评审,SPEC随后指导编码和测试,确保从概念到实现的连贯性。
SPEC和方案设计有什么区别
在软件研发流程中,方案设计与SPEC(规格说明书)是两个关键但易混淆的文档类型。方案设计处于技术调研与评审阶段,核心是开放式的论证与权衡,通过对比多种备选方案(如缓存vs分库分表)来探索技术可行性,目的是暴露问题、达成共识,内容动态且可修改。SPEC则位于最终确认与开发阶段,作为闭环式的施工图,定义精准的技术细节,如API接口格式、数据库表结构和边界条件,提供静态、确定的执行标准,直接指导前端开发、测试用例编写等任务。例如,造桥场景中,方案设计讨论悬索桥与斜拉桥的选型理由,而SPEC规定斜拉索直径、混凝土标号等具体参数。实践中,团队可能将两者合并使用,前半部分写架构分析,后半部分写接口设计,以兼顾灵活性与确定性。理解区别有助于在不同研发阶段选择合适文档,提升协作效率与交付质量。
如何构建你自己的 Agent 运行时
文章剖析了当前AI Agent运行时框架的单体式缺陷,指出如LangChain等框架将运行时组件捆绑为整体,导致定制和扩展困难。iii引擎提出一种模块化架构,将运行时拆分为多个独立worker,包括turn-orchestrator、approval-gate、session、llm-budget等,每个worker通过共享引擎和WebSocket协议连接,使用触发器机制(如iii.trigger())实现通信。这种设计允许开发者替换特定worker而无需重写整个系统。文章详细列出Agent运行时必须完成的15项核心工作,涵盖持久化turn请求、凭证管理、模型目录查询、状态机驱动、策略检查、审批处理、预算追踪、上下文压缩等,并展示了iii引擎如何通过worker映射这些职责。执行流程从客户端请求开始,经过引擎触发、turn编排、模型调用、工具执行到结果返回,强调了自动化的OpenTelemetry集成用于调试。此外,文章通过五个示例说明构建自定义运行时的方法,如替换模型目录为实时API、添加新AI provider、从私有库提供技能、覆盖系统提示词以及替换审批UI,突出了模块化和可组合性优势。
告别死锁和陈旧语法、告别性能瓶颈:三个开源 Skill,新手Gopher 秒变 Go 语言大神
文章聚焦Go语言开发者面临的三大核心挑战:并发死锁与数据竞争、性能瓶颈分析、代码语法现代化。针对并发问题,介绍AI Skill chao-go-sync,它整合并发编程知识,能诊断潜在竞态条件、锁竞争等bug,并推荐如RWMutex或WaitGroup.Go等优化方案。针对性能问题,chao-go-perf Skill提供数据驱动分析,指导基准测试编写、逃逸分析解读、CPU缓存优化及版本感知的性能改进。针对代码现代化,modern-go Skill基于go.mod版本自动应用28种语法转换规则,如将interface{}替换为any、使用slices.SortFunc等,确保代码符合最新Go惯用法。这些Skill嵌入AI编码助手后,可实时辅助开发者:例如分析项目并发缺陷时,提供详细报告和修复建议;检查性能问题时,指出热点函数和内存分配;升级旧代码时,自动执行转换并输出变更总结。文章通过实际案例演示Skill功能,并给出安装命令,强调这些开源工具如何降低Go开发门槛,提升效率与代码质量。
百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形
baize 是百度开源的毫秒级网络监控工具,针对传统监控难以捕获的偶发性轻微丢包和比特翻转问题设计。它通过每秒5000包的高频探测,实现0.1%丢包率的精确检测,统计窗口可调至100ms。核心特性包括ECMP全路径覆盖,利用确定性端口轮转算法探测所有哈希路径;无需时钟同步的单向丢包检测,通过携带上一窗口发包信息在Server端无状态还原,避免NTP依赖;以及互补比特翻转检测,使用四种salt填充模式精确识别校验和漏检的翻转。性能优化采用Raw IP Socket和BPF过滤器减少内核开销,20MB Socket Buffer应对突发,8路并行读和无锁设计确保高吞吐。工具采用JSON配置驱动,单进程双角色部署,支持批量自动化,内置pprof便于调试。典型应用包括集群间监控、机房间探测、混合云链路等场景,与临时排查工具bitflip互补,专注于长期持续监控,为网络运维提供细粒度数据支撑。
大厂的内部工具居然开源了! 一窥百度物理网络秒级监控定位的秘密
百度开源物理网络监控工具集nettools,首批发布bitflip和bitflip6,专注于大规模网络中的丢包检测与比特翻转识别。在物理网络环境中,传统ICMP的ping因无法构造五元组而失效,难以覆盖ECMP哈希分散的链路。bitflip采用UDP探测策略,通过生成大量五元组以确保覆盖所有可能路径。单向探测协议在包头上携带上一时间窗口的发送信息,使服务端能还原每个包的五元组,实现精确丢包定位,避免双向探测的路径误导。比特翻转检测使用四种salt填充模式,包括全0、全1、固定值和互补交替,专门应对绕过校验和的互补跳变问题。工程实现上,客户端利用raw socket直接构造IP和UDP包,结合BPF过滤优化收包性能,支持高并发探测。工具还支持双向对比故障方向,结合traceroute定位具体设备端口故障。该工具解决了大规模云服务中网络监控的精度与效率挑战,提供了从检测到定位的完整解决方案。
百度网络监控工具开源第三弹:lidar — 不只是 pingmesh
百度开源的网络监控工具lidar是一种创新的探测方案,区别于传统pingmesh的全网互ping模式。传统pingmesh基于服务器间O(n²)复杂度的探测,百度原有netradar系统存在误报、漏报、时效慢和部署更新困难等问题。lidar采用单探测机发送TCP SYN包探测目标服务器,通过三种响应(SYN-ACK、RST、无响应)直接判断网络状态,无需安装agent或服务器端配置,简化了运维。开发中解决了跨平台收包差异:Linux上使用raw socket接收TCP响应副本,而macOS由于内核拦截,需通过BPF设备在链路层抓包。为优化高吞吐服务器性能,使用BPF过滤器在内核层过滤无关报文,仅投递匹配探测端口的报文,减少用户态开销。通过源端口轮转策略覆盖ECMP多路径,提高探测全面性。lidar具有高时效、高准确率和易于更新的优点,适用于机房内外网络监控,支持多种配置和高速率探测,已开源供社区使用。
别只盯着gopacket了,看看这个强大的网络库
本文介绍了Go语言的新网络库goscapy,它是Python Scapy在Go生态的移植,旨在解决gopacket等传统库API繁琐的问题。goscapy提供两种核心数据包构造方式:一是流式Builder API,通过链式调用与类型安全的`Over()`方法逐层叠加协议,实现清晰的分层构建;二是针对常见协议组合的快捷函数,可实现一行代码完成复杂数据包构造。其核心优势在于自动化了繁琐的网络协议细节,通过BuildHook机制在序列化时自动计算各层校验和(包括伪头部),并利用BindingRule在层间绑定时自动设置正确的协议类型字段(如EtherType、IP Protocol),避免了手动设置易出错的痛点。这种设计显著提升了网络编程的效率和代码可读性,特别适用于需要快速构造、发送网络数据包并进行测试或探测的场景,为Go开发者提供了更优雅、强大的网络工具选择。
寻找你代码中的臭味:一个让 AI 帮你嗅出架构腐化的开源 Skill
文章介绍了开源 Skill /smell,一个嵌入 AI 编程 Agent 的代码分析工具,用于检测架构腐化和坏味道。它扫描代码库,从架构到代码层面进行全面分析,输出 Markdown 报告,涵盖八个检测维度:架构级反模式(如 Big Ball of Mud、Anemic Domain Model)、耦合问题(循环依赖、内容耦合)、内聚性问题(God Object、Shotgun Surgery)、设计原则违反(SOLID、DRY)、代码级坏味道(Long Method、Magic Numbers)、测试健康度、命名质量、算法复杂度热点(N+1 查询、嵌套循环)。使用方式简单,在 Claude Code 中输入 /smell 命令,选择分析范围(如整个项目或指定模块),即可生成报告,包含问题严重度分级、代码证据、重构建议和分阶段路线图。工具整合了 Martin Fowler、Robert C. Martin 等大师的知识库,帮助开发者快速定位臭源,优先处理关键问题,提升代码质量和可维护性。对于团队协作和遗留项目治理,它提供了系统化的分析框架,减少人为盲点,支持 AI 辅助重构。
套壳不丢人!我用Go+AI搓了一个Agent统一编排框架,ClaudeCode-Codex-Pi全被我包了
作者在智能体开发中,从langchain转向套壳Claude Code、Codex、Pi等现有AI Agent,认为套壳是高效利用现成工具的合理方式。这些Agent已发展为通用智能体,不仅能处理代码任务,还可用于多种场景。面对多个Agent各自为政、胶水代码繁杂的问题,作者用Go语言开发了agent-wrapper框架,提供统一编排层。通过简单API,一行代码即可注册和切换不同Agent,如Claude Code、Codex、Pi等。框架核心功能包括三道安全闸门:审批拦截允许自定义工具调用权限,如只读操作而拒绝写入;预算监控在Token消耗超阈值时自动中断,防止成本失控;上下文压缩和自动重试处理上下文超限,通过滑动窗口和摘要策略提升稳定性。此外,支持会话恢复,通过SessionID跨会话保持上下文连续性,便于跨进程或跨天持续任务。框架既支持命令行测试,也可作为Go库嵌入项目,实现零额外进程和协议开销。作者通过在故障分析产品中的实际应用,展示了如何专注于业务逻辑而非基础设施。最终,agent-wrapper解决了Agent集成的安全性、预算管理和跨平台问题,将实验性套壳转化为生产就绪的解决方案。
Loop Engineering 实践:一次批量实现 8 个 issue,完成夔牛工具的开发
Loop Engineering(循环工程)是AI编程领域的前沿实践,由Anthropic的Boris Cherny等人倡导,核心思想是将编程工作从直接编写代码提升到设计自动化循环驱动编码代理。本文首先追溯Loop Engineering的演进历程:从2022年的ReAct学术循环到2023年AutoGPT的自主提示,再到2025年Ralph Loop的简单管道,最终发展为2026年支持循环间监督、并发执行和状态持久化的编排式Loop。作者基于此理念开发了goal-workflow开源工作流,其中/loop-it命令能批量处理GitHub issues,每个issue经历目标实现、代码审查、决策记录和提交合并四个阶段。技术实现包括使用.loop-state.json文件持久化循环状态以实现崩溃恢复,通过拓扑排序自动解析issue依赖关系确保执行顺序,引入split verifier机制让独立代理验证代码质量,并设计分级错误处理策略应对构建失败、测试红灯等常见问题。实战案例中,该工作流在一小时内完成kuiniu工具的8个feature开发,从PRD到代码合并全程自动化,展示了Loop Engineering在提升开发效率和自动化程度上的潜力。文章还对比了轻量级实现与更宏大编排系统的优缺点,强调状态管理和错误恢复在长链路任务中的关键作用。