先说人话:它到底是什么?
如果你只是想找一个顺手的代码Agent,现在有更省心的选择;DeepSeek Harness真正想做的,是把Agent身上的零件也变成随时能装、能换、能拆的插件。
先别管Harness这个英文名。
你可以把它当成DeepSeek做的一套本地AI助手。选中一个项目文件夹,它就能读文件、改代码、跑命令,遇到报错还能接着处理。平时用过Codex或者Claude Code的话,大概就是这类产品。
DeepSeek Harness发出来以后,X上问得最多的是:已经有Pi了,为什么还要再做一个?
没听过Pi也没关系。它是另一个开源代码Agent,能做的事情和DeepSeek Harness很像,而且现在更轻、更顺手。
我把DeepSeek Harness装起来跑了一圈。单纯拿来写代码,我现在还是会开Pi、Codex或者Claude Code。DeepSeek这套东西真正特别的地方,藏在普通用户不太会注意的插件系统里。
为什么大家总拿它和Pi比?两边都能通过插件增加功能。插件可以理解成给软件加上的小零件,比如文件搜索、网页截图或者公司工单查询。
Pi的做法很直接:缺什么就 ...
这篇的底子是掘金上的一篇入门教程,智泊AI 的《AI Agent 保姆级教程 | 从 0~1 构建一个属于你的 AI Agent》。原文信息密度不低,但排得比较散,读完我自己又按理解重排了一遍,顺手把几处我不太同意的地方标出来。所以这篇不算翻译也不算转述,算读后重写:骨架是它的,话是我的。
先说结论,也是我觉得这篇原文最值钱的一句话:
Agent 的核心运行循环,五十行 Python 就能写完。
这话听着像劝退,其实是劝进。它的意思是:你卡住的地方,大概从来不是”框架没学会”。真正难的是工具怎么切、记忆放哪、测试怎么设计、以及什么时候该承认这活儿不需要 Agent。下面这套路线,就是按这个判断重排的。
01 Agent 是怎么转起来的这一节不能跳。原因很实际:不搞清原理,你没法判断自己到底用不用得上 Agent。而”用不上”的情况比想象中多得多。
所有 Agent,不管挂着什么框架的名字,都在跑同一个循环:
graph LR
A[用户输入] --> B[LLM 思考]
B --> C{做决定}
C -- 直接回应 --> D[输出结果]
C -- 调用 ...
本文翻译自 OpenAI 官方文档 Codex Best Practices。补充内容来源:@jxnlco 推文 — Getting the most out of Codex
概述本指南涵盖了在 CLI、IDE 扩展和 Codex 应用中使用 Codex 的有效习惯。核心理念是:**”少把它当作一次性的助手,多把它当作一个你可以持续配置和改进的队友。”**
推荐的渐进路径:从提供良好的任务上下文开始,使用 AGENTS.md 进行持久化指导,为你的工作流配置 Codex,通过 MCP 连接外部系统,将重复性工作打包为 Skills,最后将稳定的工作流自动化。
延伸阅读 — 大多数开发者最初把编码智能体用于代码:检查仓库、生成 diff、跑测试、开 PR。但计算机上的大量工作本身就由代码介导:执行 shell 命令、浏览网页、调用 API、导出文档、响应事件、触发自动化。随着这些能力对 Codex 开放,它越来越不像狭义的”编码助手”,而更像一个完成计算机工作的系统。
良好的首次使用:上下文与提示词即使没有完美的提示词,Codex 也能交付不错的结果,但清晰的提示词能在大型 ...
最近 Kiro 的新用户 Pro 活动挺香:新账号首次升级时,支付页有机会出现 20 美元订阅抵扣,最终金额显示为 $0.00。Pro 到手之后,再配合 Kiro Gateway 做一个自己的 Kiro Proxy,就可以把 Kiro 的额度接进 Claude Code 里。
本文分两部分:
先把 Kiro Pro 领到手。
再把 Kiro Pro 的额度通过 Kiro Proxy 接入 Claude Code。
我自己实际搭的是这条链路:
1Claude Code -> CC Switch -> 自己的域名 -> ng -> Docker 容器 -> Kiro Gateway -> Kiro
文中的域名、Key、订阅地址、服务器地址都做了脱敏。示例里的 kiroproxy.example.com、sk-********、https://example.com/sub?token=******** 都要替换成你自己的配置。
一、先白嫖 Kiro Pro这部分参考了拈花古佛那篇 Kiro Pro 活动文章,流程我重新整理了一遍,配图也是重新画的 ...
在最近一次对个人技术栈的系统性复盘中,我重新梳理了 RocketMQ 在实际业务系统中的使用方式与设计取舍。这篇文章并不是对官方文档的复述,而是结合真实项目经验,对 RocketMQ 的一些核心机制、常见误区以及架构选择做一次偏主观的总结和反思。
一、我如何理解 RocketMQ 的定位在使用过一段时间 RocketMQ 之后,我越来越觉得它并不是一个“追求极限吞吐”的消息系统,而是一个偏业务型、偏工程化的 MQ。
它特别适合下面这些场景:
订单 / 合同 / 库存 / 物流等状态驱动业务
对消息可靠性要求高于吞吐极限
需要事务消息、延迟消息、顺序消息等能力
Java 技术栈为主的业务系统
也正因为如此,RocketMQ 的很多设计点,只有放到真实业务中,才能体会到价值和代价。
二、Topic / Tag / ConsumerGroup 的设计理解RocketMQ 提供了一套相对清晰的消息建模方式:
Topic:业务边界、领域边界
Tag:同一领域下的业务动作
ConsumerGroup:消费语义和消费隔离
我个人比较认 ...
什么是JVM?JVM(Java Virtual Machine,Java虚拟机),是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机平台(操作系统)上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码class文件),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java能够“一次编译,到处运行”的原因。
JVM的平台定位
JVM的基础概念JVM内存布局总览
JVM内存布局总览
堆(Heap)
堆内存结构
堆是JVM中内存分配最大的一块区域,被分为为新生代、老年代、元空间(1.8以前叫方法区或者永久代):
新生代 新生代区域是类和对象的创建、成长、销毁的主要区域,又被细分为Eden区和两个幸存区(S0和S1),eden和幸存区的默认比例是8:1:1,所有的类对象都是在Eden区被new出来的。 当Eden区的空间用 ...
上周,我刷到那篇由 GitHub 账号 HonestAGI 发布的技术分析,结果扎心——他们对比出华为 Pangu Pro MoE 与阿里 Qwen‑2.5 14B 注意力机制参数标准差相关系数竟高达 0.927,远超常见阈值 0.7 。这就好比一个“全新作品”,被扒开后发现只是旧画裱了新框。
内心百感交集:作为一个从大学时代便怀抱技术理想的人,我一直有着自己的信仰和追求,我当然知道“造轮子”有多难,也知道“交付压力”有多大。但当一个在我心中一度代表“中国技术巅峰”的企业,也可能在追求短期成果的裹挟下铤而走险,我不禁想问——技术的尊严,真的那么廉价吗?
🌊 技术悲歌:我们都曾在交付上线折腰那封匿名控诉信《盘古之殇》,字字血泪,字字沉重。6000 多字中没有华丽辞藻,只有一个工程师对技术操守的失望与告别。他坦白团队“续训竞品模型”“洗水印”“包装成果”,最终选择在论文中删除自己的署名,只因“这是我技术生涯的污点”。
我读到这句话时愣住了。我们身边不是也有太多这样的时刻吗?临近发布、资源紧张、领导催促,我们不得不放弃理想的架构设计,写下屈服于现实的代码——有时我们甚至已经习惯了为不体面 ...
本篇是我在学习 Kubernetes、Istio 与 Spring Cloud 的过程中整理的一些思考与归纳,结合实际企业架构选型的经验,重点探讨:
如果你的微服务系统是 Java 技术栈,是否还有必要接入 Istio?
Spring Cloud 与 Istio 的本质区别是什么?
二者分别适用于哪些场景?又该如何取舍?
💡 一、背景:本地调试 gRPC + Istio 是不是很麻烦?当我们开发使用 Spring Boot + gRPC + Istio 的微服务时,常常会遇到这样一个流程:
proto → 生成 gRPC stub → 构建 Docker 镜像 → 部署至 K8s → 等待 Sidecar 注入 → 调试
这套流程非常适合 CI/CD 以及生产部署,但在 本地开发与调试阶段效率低下、体验糟糕。
因此,我开始思考:Istio 的使用是否真的必要?它的定位与 Spring Cloud 有什么不同?有没有更合适的替代方案?
🔍 二、Spring Cloud vs Istio:本质区别
对比维度
Spring Cloud
Istio(Service ...
本文记录了我在使用 OrbStack 搭建本地 Kubernetes 环境时的学习过程,从 Pod 到 Service,再到 ClusterIP 的本质理解,帮助我更清晰地建立起对 K8s 的整体认知体系。
🧠 为什么学习 Kubernetes?随着微服务架构的广泛应用,Kubernetes 已经成为容器编排的事实标准。相比 Docker,K8s 更强调“平台级抽象能力”,我希望通过本地实践,从原理理解、命令熟悉到最终搭建一套 CI/CD 流程。
🚀 本地环境搭建(OrbStack)OrbStack 是一款轻量但强大的容器 & 虚拟机平台,内置 Kubernetes 支持,适合 macOS 用户。
安装方式:
1brew install --cask orbstack
安装后通过 GUI 启动 K8s(注意可能会自动拉起 Istio、Ingress 等组件)
查看 K8s 基本信息:
12kubectl get nodeskubectl get pods -A
📦 Pod 本质理解
✅ Pod 是 Kubernetes 中的 最小调度单位,每 ...
“真正的高情商,不是出口成章,而是在细碎对话中建立信任。”
引言程序员这份职业,经常意味着长时间对着屏幕,逻辑严谨、表达精炼,甚至在社交中也习惯“有话直说”。过去我对“闲聊”并不看重,甚至有点排斥。和人交流要么是任务驱动,要么是技术讨论,“废话”似乎只会浪费时间。
直到我开始在上下班路上跑顺风车,这件事才慢慢改变了我。一开始的初衷其实很现实:一方面是为了补贴家用;另一方面,我也隐隐意识到,自己的社交与沟通能力正悄然退化。自从接触计算机以后,我的表达欲和社交热情似乎被代码替代,逐年走低。曾经在高中时期我是个“话痨”,什么都愿意聊,到了大学开始变得“冷静”和“高效”,再后来,社交仿佛成了负担。我不甘于这种缓慢下坡的状态,我想努力改变自己。
“战胜恐惧最好的方式,就是直面它”
跑顺风车,恰好提供了一个接触各种类型社会人群的机会,不再是朋友圈子里熟悉的回音,而是真正意义上的“他者”:不同年龄、身份、背景、情绪的陌生人。而这,正是我重新找回社交节奏的开始。
每天短短三四十分钟的车程,我遇到了各式各样的人:年入百万的创业老板、因项目失败负债累累的中年人、刚毕业爱玩密室逃脱的大学生、沉迷幻想的吹 ...





