
最近圈子里有个怪象:大家都在卷 Agent 平台,但做出来的东西,怎么说呢?重,太重了。
动不动就是复杂的图编排(Graph)、莫名其妙的中间层,配上几十个不知所谓的 Python 类。结果呢?跑个 Hello World 都要 5 秒,接个新工具得写半天代码。
累不累啊?
前两天深夜,我把 lukilabs 开源的 Craft Agents 源码扒了一遍。说实话,看完我只有一种感觉:通体舒畅。

就像大热天喝了一杯冰可乐,原来做一个顶级体验的 Agent 桌面应用,可以像喝水一样简单。
如果你还在为“如何设计 Agent 架构”掉头发,或者正在被 LangGraph 的概念绕晕,这篇文章建议你反复读三遍。
今天,咱们不聊虚的,直接拆解这个教科书级别的项目,看看人家是怎么用最少的代码,做最强的功能。
很多开发者最大的误区,就是试图自己去写 Agent 的 While 循环。
“先调用 LLM,解析结果,如果是函数调用就执行,不是就输出……”
兄弟,这都是 2024 或者说2025上半年的老皇历了。看看 Craft Agents 的核心代码,你会发现它的逻辑简单得令人发指:
它根本没有自己写循环!它直接用了 @anthropic-ai/claude-agent-sdk。其实我感觉,使用 Codex 的那个 sdk也大差不大哈。
这就是第一课:借势。
Anthropic 官方出的 SDK,已经把“思考-行动-观察”的死循环封装到了极致。Craft Agents 做的,只是把这个“核动力引擎”塞进了一个漂亮的 UI外壳里。至于这个外壳是 electron,是 tauri ,还是 React,并没有卵关系,你爱用啥就用啥。
核心代码就这一行,优雅得想哭:
// 所有的复杂逻辑,都被这一行 query 搞定了,this.currentQuery = query({ prompt: userMessage, options })而这个 query 背后就是丢给了 Claude agent sdk,那他做了啥呢?做了上下文管理,做了工具支撑,做了 mcp 管理,做了 skills 管理。

它告诉我们一个残酷的真相:在 2026 年,Agent 的核心竞争力不再是“基础循环”的实现,而是“上下文”的管理。
~/.craft-agent/├── config.json # Main config (workspaces, auth type)├── credentials.enc # Encrypted credentials (AES-256-GCM)├── preferences.json # User preferences├── theme.json # App-level theme└── workspaces/ └── {id}/ ├── config.json # Workspace settings ├── theme.json # Workspace theme override ├── sessions/ # Session data (JSONL) ├── sources/ # Connected sources ├── skills/ # Custom skills └── statuses/ # Status configuration还在为每个 API 写各种 wrapper 吗?
Craft Agents 最让我兴奋的点,是它对 MCP (Model Context Protocol) 的全面拥抱。
在这个项目里,所谓的“数据源(Sources)”,无论是 GitHub、Linear 还是本地文件系统,统统被抽象成了 MCP Server。
这有多爽?
Tool。在 packages/shared/src/sources/server-builder.ts 里,作者通过一个巧妙的工厂模式,把所有的外部连接都变成了“即插即用”的模块。
这就是“自来水”哲学的精髓: 管道(MCP)铺好了,想要什么数据(水),接上去就行,不用每次都去打井。
这是我最想吹爆的一个设计,当然现在肯定是非常火爆的一个技术热点了,仔细研究下,发现人家着实好用的一逼,如果你还不了解 skills 是啥,没关系,我建议你用 Claude code 安装一个,或者直接在我们今天这个项目中试试,写到这里,我就忍不住推荐一个好的网站给你了。这里面好用的技能多如狗。

https://llmskills.org/
以前我们要给 Agent 增加一个“新技能”,比如“代码审查”,通常流程是:
太慢了!
看看 Craft Agents 是怎么做的?它设计了一个 SKILL.md 格式。
你没看错,就是 Markdown。这个 markdown 文件初看你回觉得这他么的不就是一个 prompt吗?是的,你这么说也似乎没错,但是错就错在,他还可以定义一些工具,甚至可用有些代码包,甚至有可以 mcp,甚至这玩意就不用整个都放到上下文中,框架会按需加载,超级省上下文。如下:
---name:"Review PR"description:"帮我审查代码变更"globs: ["*.ts"] ---# 技能指令请你像一个Google的资深工程师一样,检查以下代码的安全性...# 执行步骤...# 可用工具....# 注意事项....没了。就这么简单。
它利用了文件系统作为“插件市场”。当你在对话框输入 @Review PR 时,系统会自动读取这个 Markdown,通过 SDK 注入到 Claude 的大脑里。
这就叫“降维打击”。 你在苦哈哈写代码,人家在写文档;文档写完了,功能也就上线了。对于开发者工具类 Agent,Prompt 即代码,Markdown 即插件。
做桌面端 Agent,最怕的是什么?是你让它“清理一下缓存”,它反手把你 Documents 文件夹删了。
Craft Agents 展示了一个教科书级别的 “三级权限门阀” 设计(Hook 系统):
它利用了 SDK 的 PreToolUse 钩子函数(Hook)。在 AI 想要调用任何工具(比如 fs.delete)之前,代码会先拦截:
特别是那个 SubmitPlan 的工作流设计,简直是交互体验的神来之笔。在 Safe Mode 下,Agent 必须先提交一个“计划书”,用户点点头,它才能切换模式去干活。
这给我们的启示是:安全不是靠 Prompt 喊出来的(比如“请不要删除文件”),而是靠代码层面的 Hook 拦截出来的。
看完 Craft Agents[1] 的架构,我最大的感受是:克制。
它没有引入复杂的向量数据库(Vector DB),没有搞花里胡哨的 Multi-Agent 辩论,也没有沉重的编排引擎。
它只是做好了三件事:
兄弟们,2026 年了,时代变了。
以前我们比谁的代码写得厚,现在我们比谁的架构做得薄。
如果你正准备动手写一个 Agent 平台,先别急着 npm init。去 GitHub 上把 lukilabs/craft-agents-oss 拉下来,跑一遍,读一遍。
你会发现,原来把事情做简单,才是最高级的技术。
PS:别光收藏不看,代码我已经扒完了,想不想自己动手改一个专属的 Agent?评论区见。
[1] Craft Agents: https://github.com/lukilabs/craft-agents-oss
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。