Erishen 博客 – 资深全栈工程师的 AI 工程化与验证治理实战
-
让智能体从源头不说谎:用 LlamaIndex Workflow 构建 RAG 接地的 PSE 多智能体框架
引言:多智能体的"幻觉困境" 你有没有遇到过这样的场景:让多智能体系统根据候选人简历为目标岗位定制一份简历,结果生成的内容里出现了候选人从未在真实简历中提过的公司名、项目细节,甚至是编造的任职时间? 这不是你的错——这是大语言模型的"天性"。当 LLM 被要求"创造"内容时,它倾向于用训练数据中的模式来填补信息空白,哪…
-
LangGraph PSE: 用状态机显式建模 PSE 三角色协作
为什么需要显式的状态机? 多 Agent 框架有两种哲学:隐式流程(Agent 自由编排)和显式状态机(每一步的状态流转可观察、可调试、可控制)。 CrewAI 的 sequential 流程属于前者——Agent 按顺序执行,但你无法在运行时查看中间状态、无法在某个节点插入自定义逻辑、更无法精确控制重试路径。当任务变…
-
当 LLM 开始骗自己:一个用正则表达式守护文章可信度的多 Agent 框架
多 Agent 系统的信任危机 你有没有遇到过这种情况:让一个 LLM 审核另一个 LLM 的输出? 假设你搭建了一个三角色文章生成管道:Planner 负责规划结构,Specialist 负责撰写内容,Evaluator 负责审核质量。听起来很完美,对吧?但当你仔细审视 Evaluator 的工作时,会发现一个根本性…
-
混合检索架构:当关键词遇上语义理解
从单一检索到混合策略 在传统 RAG 系统中,检索环节通常依赖向量相似度搜索。这种方式擅长捕捉语义相似性,但当用户查询包含精确术语、专有名词或特定格式时,纯语义检索往往会失效。 你有没有遇到过这样的场景:查询"IRR 计算公式",系统却返回了大量讨论"投资回报率概念"的文档,而真正包含公式细节的文档反而被排在后面?这是…
-
文档即状态机:Agentic Souls 如何用 Markdown 驱动 AI 软件开发工作流
一、引言 Agentic Souls 是一个基于文档驱动的 AI 软件开发工作流系统,它通过定义 Planner(规划者)、Evaluator(评审官)和 Specialist(实施者)三个核心角色,利用结构化的 Markdown 文件作为状态机和控制流,实现高质量的软件交付。 二、核心设计 2.1 设计决策 1:Ma…
-
基于 AutoGen 构建 PSE 三角色闭环:一个可重试、可追溯的 Agent 协作框架
一、引言 autogen-pse 是一个基于 Microsoft AutoGen 构建的 Planner-Specialist-Evaluator(PSE) 三角色 Agent 协作框架。它通过顺序发言的 RoundRobinGroupChat 实现状态流转,配合 cycle 级别的循环控制与 token 优化策略,形…
-
AI-Analyze:五个不显而易见的设计决策
大部分代码分析工具的文章会讲"支持多少语言、有多少规则、能检测多少漏洞"。ai-analyze 支持 7 种语言、12 条安全规则、4 维度质量评分,这些功能数字在 README 里就能看到。这篇文章不讲功能清单,讲五个容易被忽略但值得深挖的设计决策——每个决策背后都有一个"为什么不那么做"的故事。 决策一:MCP 双…
-
给 AI 助手搭一个工具服务器:Lobster 的架构思路
AI 助手只会说话,不能做事。这个问题大家都知道,OpenAI 用 Function Calling 协议给了一个解决方案——让 LLM 在对话中识别需要调用的工具,由外部服务执行。但协议只解决了一半问题:谁来提供这些工具?谁来执行?谁来保证安全? 我给自己的 AI 助手(OpenClaw 龙虾)搭了一个工具服务器,叫…
-
我如何从零构建一个生产级 React SSR 框架
前言 在 React 生态系统中,Next.js 作为 SSR 框架的代表,以其开箱即用的体验和强大的功能深受开发者喜爱。但对于想要完全掌控构建流程、深度定制部署方案、或者只是想学习 SSR 底层原理的开发者来说,Next.js 的"黑盒"特性反而成为了一种限制。 最近,我花了几个月时间,从零开始构建了一个轻量级但功能…
-
构建现代化的组件库:shadcn + Bun 带来的前端开发革命
这篇文章分享了我如何基于 shadcn/ui 和 Bun 构建了一个自定义组件注册表,以及这个过程给我带来的关于前端开发效率的深度思考。 前言:重新思考组件获取方式 最近在重构公司前端项目时,我遇到了一个很有意思的问题:为什么我们总是在 npm install 上浪费这么多时间? 这个问题让我开始思考:传统的依赖安装模…