惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
U
Unit 42
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
G
Google Developers Blog
Recent Announcements
Recent Announcements
B
Blog RSS Feed
罗磊的独立博客
博客园 - Franky
J
Java Code Geeks
S
SegmentFault 最新的问题
D
DataBreaches.Net
C
Check Point Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
腾讯CDC
博客园_首页
美团技术团队
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
GbyAI
GbyAI
The Cloudflare Blog
aimingoo的专栏
aimingoo的专栏

开源软件

分享一个免费汇率 API:已经稳定运行 2 年(每月 500 万次请求) - V2EX [开源分享] 仅需一个脚本就能将目录转 s3 服务, FluxonFS vs Alluxio 5x 吞吐 - V2EX 推荐自用「文字转朗读音频」工具: Edge TTS 语音合成助手(开源 · 免费 · Windows) - V2EX 做一个 iOS 27 风格的 V2EX 客户端 - V2EX macOS 原生终端 Termite 1.18 版本发布-新增工作区灵感来自 ARC 浏览器 - V2EX 今天给 Berth 连发了 v1.3 和 v1.4 两个版本 - V2EX [开源]给分散 Cursor 账号做了个自托管额度与用量看板 - V2EX [开源] Git AI Control: Git AI 的本地隐私与策略控制面板 - V2EX 我做了一个可从手机远程管理 Mac 的开源控制台: Flux Monitor - V2EX 什么都没干 被帖上莫须有的罪名! - V2EX 你们都在用 AI,而我用古法编程做了一个剪映 - V2EX 终于有可以替代剪映的开源视频工具了!数据全本地,还能用 AI 聊天剪视频 - V2EX 开源一款 MAC 原生终端和一款原生 SSH 客户端 PurePic:一个由 AI 全制作的轻量图片查看器 然人赚不到自己认知以外的钱! 写了一个轻量的后台导航页 Admin Dock, Docker 一键部署 终于做出了我理想中的那个优雅的跨平台阅读软件 cursor canvas 技能复刻 一款跨设备的重复文件清理器 Excelize 开源十周年,发布 2.11.0 版本 OmenXHub 更美观 轻量 功能完备的暗/光影精灵控制中心 boss 直聘 ai 招聘助手(hr 用 轻量 macOS 上模拟 iOS 设备定位的工具 [独立开发] 因为嫌 Quicker 限制多且收费,我用业余时间写了款免费开源的 Windows 效率神器 [开源分享] RPG Roleplay Platform:把你收藏的小说变成可交互游戏世界的自托管 LLM 引擎 [开源] 告别“删库跑路”的恐惧:我做了一款跨平台的磁盘清理工具 Skiff [开源] 一个支持自定义管理 github star 页的浏览器插件 [Github 开源] 个人自托管、零运维的 A 股「选股 + 监控 + 回测」智能量化工作台 [开源] 嘴遁 TalkOut: AI 斗嘴游戏 用一张嘴说服一个死活不松口的 AI [Github 开源] Obsidian 星标管理插件: obsidian-github-stars-manager
开源了一个自托管的 Agent 编排项目,不想再用拖拽画工作流了
gongzhaoman · 2026-06-21 · via 开源软件

最近把之前自己用的 Agent 编排项目开源了,地址在这里:

https://github.com/gongzhaoman0426/agent

先说背景。我折腾 Agent 有一段时间了,Dify 、LangGraph 这些都用过。能用,但有几个地方一直不太顺手:

  • 工作流要么在 UI 里拖,要么存数据库,改个逻辑不好 diff ,也不好 review
  • 工具扩展经常要改一堆配置,和代码脱节
  • 有些能力(比如定时任务、飞书表格)想接进去,得绕一圈

所以这个项目走了一条比较「程序员向」的路:工作流、工具包、技能,全部用 TypeScript 代码定义,启动时自动同步到数据库。改逻辑就是改代码、提 PR ,和普通后端项目一样。

它大概能干什么

不是那种「上传文档就能聊天」的 demo ,更接近一个可自部署的小型 Agent 平台:

  • Agent 管理:配置 prompt 、挂载工具包,对话走 SSE 流式输出
  • 知识库 RAG:上传文件,pgvector 做向量检索,Agent 可以查
  • 工作流:事件链驱动(WORKFLOW_START → ... → WORKFLOW_STOP),用 @workflowId 装饰器注册,DSL 写在代码里
  • 工具包( Toolkit )@toolkitId 注册,启动时自动发现。内置了通用工具、知识库查询、工作流执行、飞书多维表格、定时任务等
  • 技能( Skill ):类似 Cursor Skill 的思路,Agent 按需 useSkill 读取指令,还能跑沙箱脚本
  • 聊天记忆:最近消息 + 跨 session 向量检索 + token 超阈值自动压缩摘要,不是简单截断历史

技术栈

前后端 monorepo ( pnpm ):

  • 后端:NestJS 10 + Prisma + PostgreSQL ( pgvector )
  • 前端:React 19 + Vite + Tailwind + shadcn/ui
  • LLM:LlamaIndex ,默认接 OpenAI (模型和 embedding 可配)
  • 认证:better-auth

docker compose up -d 能起全套( Postgres + API + Web ),本地开发就 pnpm dev:api / pnpm dev:web

几个我觉得还算有意思的设计

1. 代码即配置

工作流不是在前端创建的,而是在 apps/agent-api/src/workflow/workflows/*.workflow.ts 里继承 BaseWorkflow 写 DSL 。工具包、技能同理,装饰器 + 启动时 discovery ,跟 NestJS 模块注册的感觉差不多。

2. Agent 无状态

每次对话请求重新拉配置、实例化工具、创建 LlamaIndex agent 。不跨请求复用实例,部署和调试简单一些,代价是冷启动开销,目前还能接受。

3. 定时任务

Agent 可以通过工具创建 cron 任务,到点自动发消息给自己处理。比如「每天早上 9 点帮我整理待办」这种,不用另外挂个调度系统。

现状和局限(说 honest 的)

  • 文档还在补,README 不算完善,建议直接看 CLAUDE.md 和代码结构
  • 工作流执行器用 new Function() 跑 step handler ,灵活但也要注意安全边界
  • 目前示例工作流和技能不多,飞书集成需要你自己配 token
  • 测试覆盖一般,生产用建议先自己跑一遍核心链路

适合谁看

  • 想自托管 Agent ,又不想绑死在某个 SaaS 上的
  • 偏好「工作流/工具用代码管理、可版本控制」的
  • 已经在用 NestJS / LlamaIndex ,想找个可参考架构的

不适合:想要零代码拖拽、开箱即用的企业级平台——这个方向不一样。

想参与的话

Issue 、PR 、Star 都欢迎。如果你也在做 Agent 编排,尤其是「代码优先 vs 可视化优先」这块,挺想听听你的做法和踩过的坑。

仓库:https://github.com/gongzhaoman0426/agent