Skill Compose架构深度剖析:FastAPI+Next.js+PostgreSQL如何构建开源Agent运行时
【免费下载链接】archiveSkill Compose is an open-source agent builder and runtime platform for skill-powered agents. No workflow graphs. No CLI.项目地址https://gitcode.com/gh_mirrors/sk/archive点击查看免费下载Skill Compose 是一个开源的 Agent 构建与运行时平台基于 FastAPI Next.js PostgreSQL 三大件搭建让你无需工作流画布、无需 CLI就能通过技能Skill组合出可自主进化的 AI Agent。本文将从分层视角拆解它的整体架构FastAPI 负责编排与 API 网关Next.js 提供 Web 管理台PostgreSQL含 pgvector承载技能注册表与向量记忆外加一组隔离的 Executor 容器安全执行代码。一、整体架构五层分离的运行时Skill Compose 的部署拓扑定义在 docker/docker-compose.yaml核心服务有五个服务技术栈默认端口职责dbPostgreSQL 16 pgvector62620技能注册表、Agent 预设、记忆向量apiFastAPI (Python)62610Agent 编排、REST API、工具调度webNext.js 1462600管理控制台、聊天面板、终端docsDocusaurus62630官方文档站executor-*FastAPI 容器群62680隔离的代码执行沙箱各服务通过健康检查healthcheck级联启动数据库就绪后 API 才启动API 就绪后 Web 才启动生产环境再叠加一层 Nginx 反向代理可选 profile。如上图所示每个 Agent 运行时容器 / K8s Pod由四部分组成系统提示词 agent.md、允许使用的技能、允许的 MCP 服务器与工具、独立的虚拟文件系统与依赖包。多个 Agent 共享底层分布式文件系统中的skills、resources、memories等目录——这正是Skill 组合 Agent的核心设计能力可插拔、环境可隔离、数据可共享。二、FastAPI 后端Agent 的大脑与总调度后端入口是 app/main.py一个看似简单却暗藏生产级细节的 FastAPI 应用JWT 全局认证中间件AuthMiddleware所有/api/v1请求必须携带Bearertoken仅健康检查、文档页、登录/刷新、已发布的公开 Agent 等白名单路径可匿名访问启动生命周期管理lifespan初始化数据库、清理孤儿 trace 与过期工作区、预热各 worker 的数据库连接池单节点选举多 worker 部署时用文件锁fcntl.flock选出唯一服务领导者只有它启动定时任务调度器app/services/scheduler.py和渠道管理器app/services/channel_manager.py避免重复连接外部平台。API 路由按领域拆分为独立模块注册在 app/api/v1/router.py 下技能管理skills.py、Agent 编排agents.py、执行引擎execute.py、MCP 集成mcp.py、记忆memory.py、会话与追踪sessions.py/traces.py等十余个子路由职责边界非常清晰。多 LLM 供应商支持是后端另一亮点。app/llm/provider.py 用一个统一客户端封装了 Anthropic Claude、OpenAI、Google Gemini、DeepSeek、KimiMoonshot、OpenRouter 等供应商——非 OpenAI 协议的服务通过 OpenAI 兼容端点接入换模型只需改一个环境变量。三、PostgreSQL 数据层不止是关系表数据模型定义在 app/db/models.py选型的精妙之处在于pgvector 扩展镜像直接使用pgvector/pgvector:pg16memory_entries表内嵌向量列Vector类型Agent 的长期记忆检索无需额外部署向量数据库——嵌入服务app/services/embedding_service.py调用 text-embedding 模型生成向量后直接入库JSONB 灵活字段技能标签、配置等半结构化数据用JSONB存储既保留关系约束又避免频繁改表完整的技能版本体系skills、skill_versions、skill_files、skill_tests、skill_changelogs五张表协同支撑技能的导入导出、回归测试与变更审计见 app/repositories/skill_repo.py。连接层采用 SQLAlchemy 2.0 异步 ORM asyncpg驱动与 FastAPI 的异步模型完全对齐。四、Next.js 前端Web 化的 Agent 工作台前端位于 web/src/技术选型见 web/package.jsonNext.js 14App Router React 18 Tailwind CSS Radix UI 组件库状态管理用 Zustand数据请求用 React Query。管理台覆盖 Agent 全生命周期技能市场Find Skills从 skills.sh 发现、Import Skill文件/GitHub 导入、Create SkillAI 辅助生成Agent 构建器web/src/components/agents/agent-builder-chat.tsx 让你通过聊天方式配置 Agent 的技能组合、MCP 服务器与工具权限会话与追踪web/src/app/traces/ 可视化每次执行的工具调用链Evolve Skills功能直接从执行 trace 中学习、改进技能内置终端基于 xterm.js 后端 app/terminal/pty_manager.py 的 PTY 管理浏览器里直接操作容器渠道接入web/src/app/channels/ 支持把 Agent 发布到 Telegram、飞书等平台对应后端 app/channels/。五、Executor 容器群把代码执行关进沙箱Agent 要动手就得执行代码Skill Compose 的答案是每个执行环境一个独立容器。每个 executor 运行同一个 FastAPI 服务docker/executor/executor_server.py暴露/execute/python、/execute/bash等端点Python 执行基于持久化 IPython kernel——同一 workspace 内变量、导入和状态跨调用保留天然适合多轮数据分析kernel 不可用时自动降级为 subprocess每次执行都落在按 workspace 隔离的目录中输出截断在 100KB 防止内存爆炸API 侧通过 app/services/executor_client.py 这个异步 HTTP 客户端按名路由到目标容器。预置执行环境在 config/executors.json 中声明Executor预装能力内存上限用途basePython 3.11 基础环境2G通用脚本mlpandas、sklearn、torch8G机器学习cudaCUDA 12.1 PyTorchGPU16GGPU 训练/推理chemscoutRDKit、BioPython、PubChemPy4G化学/生物信息remotionNode.js 20、Chromium、ffmpeg8G视频渲染diagramMermaid.js、mmdc4G图表渲染需要 GPU 的场景用--profile gpu按需拉起其余环境零成本闲置不占资源。六、Agent 执行循环技能驱动的自主推理真正的运行时核心在 app/agent/agent.py一个标准的 ReAct 式异步循环接收用户请求LLM 依据系统提示词 agent.md 决策下一步调用工具list_skills、get_skill、execute_code等工具注册在 app/core/tools_registry.py循环直至任务完成全程通过事件流app/agent/event_stream.py向 Web 端推送进度。两个工程细节值得一提上下文压缩——当输入 token 超过模型上下文上限的 70% 时自动把早期对话摘要成结构化总结保留用户原始意图、文件变更、待办任务记忆冲刷——压缩前插入一轮静默回合让 Agent 把值得长期保留的事实写入MEMORY.md、SOUL.md等记忆文件落盘到 PostgreSQL 后再参与向量检索。七、五分钟上手部署与验证cd docker cp .env.example .env # 填入 ANTHROPIC_API_KEY 等 docker compose up -d启动后访问http://localhost:62600打开 Web 控制台API 文档在http://localhost:62610/docs路由与鉴权逻辑见 app/api/v1/。需要单机资源更省的开发者模式可改用 docker/docker-compose.dev.yaml测试入口在 tests/涵盖 API 单测与真实 Agent 的 E2E 场景。总结为什么这套架构值得借鉴职责分层FastAPI 只做编排与调度重计算全部下沉到 Executor 容器API 进程永远轻量存储复用PostgreSQL 一身三职——关系表、JSONB 配置、向量记忆小团队部署零额外组件能力即数据技能是带版本的文件包而非硬编码Agent 能力组合、演进、审计全走数据流前端即运维台Next.js 管理台把技能市场、trace 调试、终端、渠道发布收敛进浏览器真正做到无 CLI。想深入了解推荐阅读 docs/docs/concepts/ 下的架构概念文档executors.md、skills.md以及快速上手指南 docs/docs/quickstart.md。赞分享【免费下载链接】archiveSkill Compose is an open-source agent builder and runtime platform for skill-powered agents. No workflow graphs. No CLI.项目地址https://gitcode.com/gh_mirrors/sk/archive点击查看免费下载相关推荐pi_agent_rust 架构剖析asupersync结构化并发如何重塑AI Agent运行时pi_agent_rust 架构剖析asupersync结构化并发如何重塑AI Agent运行时 pi_agent_rust 是一个用 Rust 编写的高性人工智能大模型AI Agent代码智能体CLI开发工具工具调用MCP ClientsFiredancer性能调优终极指南10个技巧让你的Solana节点效率翻倍Firedancer性能调优终极指南10个技巧让你的Solana节点效率翻倍 Firedancer作为Jump Crypto开发的Solana共识节点实现凭Qwen3.5-27B-OptiQ-4bit推理服务器搭建兼容OpenAI API的本地部署方案Qwen3.5 27B OptiQ 4bit推理服务器搭建兼容OpenAI API的本地部署方案 想要在本地搭建高性能的Qwen3.5 27B OptiQ 4大模型模型量化NLP基础模型模型推理服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

StreamSets性能优化全攻略:从监控定位到调优排障的完整实践

StreamSets性能优化全攻略:从监控定位到调优排障的完整实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:59:18 阅读更多 →
通过 SSH 无重启接管 Linux 系统:takeover.sh 内存救援环境实战与源码级原理

通过 SSH 无重启接管 Linux 系统:takeover.sh 内存救援环境实战与源码级原理

CLI运维 【免费下载链接】takeover.sh Wipe and reinstall a running Linux system via SSH, without rebooting. You know you want to. 项目地址: https://gitcode.com/gh_mirrors/ta/takeover.sh 点击查看 免费下载 本篇指南围绕当前仓库的核心文档 README.md 展…

2026/10/15 19:59:18 阅读更多 →
51单片机智能车红外避障项目:电路接线、PWM调速与状态机编程实战

51单片机智能车红外避障项目:电路接线、PWM调速与状态机编程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:59:18 阅读更多 →

最新新闻

STM32 HAL库驱动4G模块:从AT指令到TCP上云的实战指南

STM32 HAL库驱动4G模块:从AT指令到TCP上云的实战指南

简介:面向STM32嵌入式开发者,这份基于HAL库的4G模块程序提供了完整的物联网通信集成方案,适用于需要为设备接入移动网络的场景,具备从零开始搭建通信链路所需的底层驱动。代码覆盖4G信号强度获取、SIM卡ICCID与设备IMEI读取、登录…

2026/10/15 20:40:16 阅读更多 →
coreboot 实战:StarFighter Mk I(Star Labs)Meteor Lake 笔记本的构建与烧录全流程

coreboot 实战:StarFighter Mk I(Star Labs)Meteor Lake 笔记本的构建与烧录全流程

固件嵌入式操作系统驱动开发 【免费下载链接】coreboot Read-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests. 项目地址: https://gitcode.com/gh_mirrors/co/coreboot 点击查看 免费下载 本文围绕 c…

2026/10/15 20:40:16 阅读更多 →
LVGL模拟器实战:基于Visual Studio的环境搭建与UI开发

LVGL模拟器实战:基于Visual Studio的环境搭建与UI开发

这段时间好几个做嵌入式开发的朋友都在折腾LVGL,大家最先问的问题出奇地一致:"我现在把代码烧到开发板上,为什么屏幕老是不对劲?"我通常第一句话就劝他们先停下手里的烧录器,改用Visual Studio在电脑上把LVG…

2026/10/15 20:40:16 阅读更多 →
App开发转Unity:理解组件式架构与帧驱动模型是关键

App开发转Unity:理解组件式架构与帧驱动模型是关键

如果你是从 App 开发转过来的,第一次打开 Unity 时会有一种熟悉的陌生感。项目结构、资源目录、编译器、断点调试,看起来都像那么回事,但真正想做一个带重力、碰撞、动画的游戏时,却发现自己连“让方块落地”都写不顺。我把自己从…

2026/10/15 20:40:16 阅读更多 →
STM32 HAL库驱动4G模块:AT指令、串口DMA与数据上报实战

STM32 HAL库驱动4G模块:AT指令、串口DMA与数据上报实战

简介:针对STM32与4G模块集成需求,这份6.38MB的代码工程覆盖信号质量获取、ICCID/IMEI读取、登录包组装及DTU联网参数配置等关键环节,适合有一定HAL基础的物联网开发者参考或直接移植。包体共159个文件,以.h、.c源码为主&#xff0…

2026/10/15 20:40:16 阅读更多 →
别再盲目调参!Cursor + Claude Code 联合编程的黄金工作流:把 settings 改到 TaoToken

别再盲目调参!Cursor + Claude Code 联合编程的黄金工作流:把 settings 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 20:39:15 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →