Redis之父开源最小聊天项目,仅200行代码!

用200行代码从零构建可运行AI Agent实战指南 AI Agent本质上是一种具备目标分解、工具调用、状态记忆与错误恢复能力的决策系统,其核心不在于大模型本身,而在于人机协作的工程化设计。理解函数调用机制与提示词结构是落地关键,二者共同构成Agent与外部工具交互的契约基础。通过结构化JSON Schema定义工具、状态机驱动的对话循环、以及温度值等参数的精准调控,开发者可在本地环境快速搭建闭环任务系统。典型应用场景包括会议纪要生成、业务流程自动化与跨系统集成,尤其适合希望将AI能力嵌入现有工作流的工程师与产品经理。 阅读详情

我一直特别佩服 Redis 的创始人 Antirez,首先是做出了数据库领域独树一帜的高性能键值对存储 Redis,之后他又辞去了 Redis 项目开发和维护者的角色,写了一本和人工智能有关的科幻小说,真的是很有本事和想法了。

这不,去年的时候,他又搞了个新活儿,做了一个 “有点儿省事” 却又 “很有水平” 的开源项目。

世界上最小的聊天服务器

这次 Redis 作者的新开源项目名叫:SmallChat。
开源地址:https://github.com/antirez/smallchat

从 README.md 介绍文件中可以知道,这个开源项目是要打造最小的聊天服务器。再从开源的代码文件来看,确实如此,就下面这些:

图片

代码部分除去大量注释之后,更是惊人的只有 200+ 行代码,可以说真的是做到了极致的精简。

起源与未来

在该项目的 README 中,目前还没有更多关于该项目的使用说明,更多的是关于该项目的背景和未来展望。

代码也是非常值得大家细品,能够从中感受到一名优秀开发者的思维模式,是非常值得大家去学习的。大家自己做项目也是一样,不用整一堆 CRUD 搞得那么复杂,可以多学习一些巧妙的系统设计和编码技巧,并且多创造一些更有意思的东西。

下面一起来看看这个项目的背景故事:

昨天和几个朋友聊天,大部分都是前端开发人员,离系统编程有点远。我们正在回忆 IRC 的旧时光。我说道:编写一个非常简单的 IRC 服务器是每个人都应该做的经历(我向他们展示了我用 TCL 编写的实现;我很震惊我在 18 年前写了它:时间过得很快)。这样的程序中有一些非常有趣的部分。单个进程执行多路复用、获取客户端状态并在客户端拥有新数据后尝试快速访问此类状态,等等。

但后来讨论发生了变化,我想,我将向您展示一个用 C 编写的非常简单的示例。您可以编写的最小的聊天服务器是什么?为了真正做到最小化,我们不应该需要任何合适的客户。即使不是很好,它也应该与 telnet 或者 netcat 一起使用。服务器的主要操作只是接收一些聊天行并将其发送到所有其他客户端,有时称为扇出操作。然而,这需要适当的功能,然后是缓冲等等。我们希望它更简单:让我们使用内核缓冲区进行欺骗,并假装我们每次都从客户端收到完整的行(这个假设在实践中通常是正确的,所以事情还算有效)。

好吧,通过这些技巧,我们可以实现一个聊天,甚至能够让用户在短短 200 行代码中设置他们的昵称(当然,删除空格和注释)。因为我写了这个小程序作为给我的朋友们的例子,所以我决定也将它推送到 GitHub 上。

对该项目关于未来的工作计划:

在接下来的几天里,我将继续修改这个程序,以使其进化。不同的演变步骤将根据我的写作系统软件系列的 YouTube 剧集进行标记。这是我的计划(可能会改变,但或多或少这就是我想要涵盖的内容):

  • 实现读和写的缓冲

  • 避免使用线性数组,使用字典数据结构来保存客户端状态

  • 编写适当的客户端:能够处理异步事件的行编辑

  • 从 select(2) 切换到更高级的 API

  • 用于聊天的简单对称加密
     


从该项目的提交记录来看,从项目诞生到停止维护,也就一个月左右,目前该项目已经有 9 个多月没有更新。虽说如此,哪怕是大佬的玩具项目,我们都得学习很久啊!

生活类Coding实战指南:用最小代码解决高频生活痛点 生活自动化不是高深技术的秀场,而是以编程思维重构日常流程的基础能力。其核心原理在于将模糊生活诉求转化为可量化的工程参数,通过轻量级工具链(如Python+APScheduler+Airtable)构建零运维、跨平台、非技术用户可维护的解决方案。技术价值体现在显著的时间盈余与体验改善上,而非代码复杂度或框架先进性;典型应用场景包括家庭电费管理、老人防走失、孩子作业检查、智能药盒及租房合同监控等。本文聚焦‘技术应用’与‘Coding改变生活’两大关键词,提供从需求淬炼、工具选型到上线迭代的完整落地路径,强调可用 阅读详情

相关推荐

DeepSeek V4升级详解:200K上下文、指令对齐与工程级代码能力

大语言模型的实用价值正从参数规模转向推理效率、长上下文稳定性与指令遵循精度。DeepSeek V4并非简单堆参,而是通过RoPE基频扩展、ALiBi混合位置编码与KV Cache分层管理,实现200K上下文‘真可用’;依托分层混合精度量化与动态批处理调度,在A10/A100等主流硬件上达成低延迟、高吞吐的平衡;更关键的是其全链路指令对齐机制与思维链蒸馏训练,显著提升多步推理、法律文本精读、工程级Python生成等真实场景表现。这些升级直指开发者日常卡点——长文档摘要失焦、代码漏异常、多轮对话失忆、提示词反复

weixin_34060741的博客 526

Redis创始人开源最小聊天服务器,仅200行代码,几天功夫已获2.8K Star!

中午时候,在里聊起关于Redis创始人的一些趣事,比如离开Redis之后,去写科幻小说之类的。因为好奇科幻小说,TJ君就去搜索了一下。结果一搜,发现Redis作者最近居然又搞了个新活儿!

程序猿DD 720

一个下午搭建两个聊天机器人:本地化RAG与规则引擎实战

聊天机器人已从算法研发降维为工程配置任务,其核心是结合规则引擎处理确定性问题、RAG技术应对语义模糊查询。随着Ollama支持本地量化大模型、LlamaIndex简化PDF向量化流程、FastAPI提供轻量Web服务,构建可落地的对话系统不再依赖云API或GPU资源。这种本地化、低代码、高可控的技术路径,显著降低AI应用门槛,适用于IT支持自动化、销售知识问答、内部流程提效等高频场景。本文聚焦‘规则Bot+RAG Bot’双引擎协同架构,详解如何在无训练、无密钥、单机环境下完成端到端交付。

baichuan9723的博客 471

smallchat改造

smallchat是redis作者使用c开发的聊天服务器,实现了聊天室的功能。核心代码200多行,使用了IO多路复用技术。是一款适合学习IO多路复用的开源软件。原实现是使用select实现了IO多路复用。本文改造了原代码,改用epoll实现,并使用reacotor模型,使代码更精简,功能更聚合,方便使用和理解。

mobai7的博客 543

Agent-to-Agent协议实现聊天机器人深度研究能力

多智能体系统(MAS)是解决大模型长时任务瓶颈的关键架构范式,其核心在于通过专业化分工与标准化通信协议实现能力解耦。Agent-to-Agent(A2A)协议作为面向研究型任务的轻量级协作规范,聚焦任务生命周期管理、事件驱动通信与契约化接口设计,显著优于传统单Agent工具扩展或通用RPC方案。它支持毫秒级对话响应与分钟级深度研究并存,适用于金融、教育、SaaS等需兼顾实时交互与结构化输出的工业场景。本文基于Strands Agents框架,详解如何用不到200行核心代码,在不改动现有LLM与Prompt体

weixin_33704591的博客 485

用企业微信/飞书聊天记录构建动态安全防线

即时通讯(IM)数据正成为新一代安全检测的关键语义源——它天然承载业务上下文、人员行为意图与跨系统操作轨迹,弥补了网络流量加密化、终端日志低语义、身份日志滞后性等传统安全数据源的固有缺陷。基于企业微信、飞书、钉钉等合规IM平台的开放API,可低成本构建轻量级Chat安全层:通过规则引擎+轻量NLP混合建模,实现对凭证索要、数据外传暗示、社会工程话术等高风险沟通模式的毫秒级识别;结合角色白名单、上下文关联与动态阈值降噪,将误报率压降至4.3%。该方案不替代EDR或SIEM,而是为其注入可解释的‘业务听觉’,已

weixin_33778544的博客 453

Redis创始人开源最小聊天服务器,仅200行代码

???? 这是一个或许对你有用的社群???? 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:《项目实战(视频)》:从书中学,往事上“练”《互联网高频面试题》:面朝简历学习,春暖花开《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题《精进 Java 学习指南》:系统学习,互联网主流技术栈《必读 Java 源码专栏》:知其然,知其所以然????这是一个或许...

芋艿V 399

利用AnythingLLM聊天日志构建OpenAI微调数据集实战指南

大语言模型(LLM)微调是提升模型在特定领域表现的关键技术,其核心原理在于通过特定领域数据调整模型参数,使其适应新任务。这项技术的价值在于能够以相对较低的成本,将通用模型转化为精通特定业务场景的专属助手,广泛应用于客服、编程、内容创作等领域。实现高效微调的关键在于获取高质量、格式规范的训练数据。本文聚焦于如何利用AnythingLLM这一工具,将日常对话日志转化为符合OpenAI API要求的JSONL格式数据集。通过解析**聊天日志**的数据结构,并结合**JSONL**这一标准数据交换格式,详细阐述了从

aiman5818的博客 424

【Redis创始人用C语言编写最小聊天服务器,核心代码仅300行】【转载】

antirez 表示,编写这个示例是为了帮助他的前端开发朋友了解系统编程知识,比如单个进程执行多路复用、获取客户端状态,并在客户端拥有新数据后尝试快速访问此类状态,等等。Smallchat 源代码已托管至 GitHub:https://github.com/antirez/smallchat。可以看到,Smallchat 的核心代码仅 300 多行。Redis 创始人 antirez 用纯 C 语言代码写了一个聊天服务器的最小编程示例:Smallchat。

j8267643的博客 435

高分7(GF7)卫星数据制作平原地区DSM/DEM(三)——可信度分割

李国春(接上)

副组长的博客 1714

LabVIEW小白福音:手把手教你用NI采集卡搭建振动信号采集系统(附源码和避坑指南)

本文为LabVIEW初学者提供详细的NI采集卡振动信号采集系统搭建指南,涵盖硬件连接、驱动安装、信号处理及性能优化等关键步骤。特别针对振动信号采集系统中的常见问题提供解决方案,并附源码和避坑指南,帮助用户快速上手并避免常见错误。

weixin_30485379的博客 103

200行代码实现本地可持久化流式Agent

Agent 是大语言模型与外部世界交互的核心范式,其本质是具备感知、决策与执行能力的闭环系统。技术原理上,它依赖状态管理、工具调用和流式响应三大支柱,其中本地化部署的关键挑战在于轻量架构与稳定持久化的平衡。Ollama 提供统一模型抽象层,显著降低多模型切换与推理封装成本;SQLite WAL 模式则在零配置前提下保障多轮对话历史的原子写入与高并发读取。该方案的技术价值在于跳过复杂框架(如LangChain)的冗余抽象,直击‘本地LLM应用最后一公里’痛点——环境易装、重启不丢记忆、流式低延迟、中文输出可靠

weixin_30256901的博客 457

用友T3提示,年度[UFDATA_002_2017]并不存在,导致无法备份迁移。

用友T3提示,年度[UFDATA_002_2017]并不存在,导致无法备份迁移。现在都win11了某个年度账套不存在怎么办?

雨季余静的博客 3561

开源白板+AI:画出UI需求,自动获得代码

大家好,我是TJ一个励志推荐10000款开源项目与工具的程序员不知道大家是否还记得,TJ之前有推荐过一个开源的协作式数字白板:tldraw昨天,TJ发现了一个更有意思的东西:DrawAUI。它一个基于tldraw的扩展开源项目,既然是扩展,那肯定实现了更强的能力。DrawAUI将gpt-4-vision的api加入了tldraw,使得协作式白板除了描述需求的能力之外,还能利用AI来理解需求,并直接...

程序猿DD 271

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 853

基于WEKWS模型的语音唤醒关键词识别

本文所使用的模型网络结构继承自论文《Compact Feedforward Sequential Memory Networks for Small-footprint Keyword Spotting》,文中研究了将低秩矩阵分解与传统FSMN相结合的紧凑型前馈顺序记忆网络(cFSMN)用于远场关键字检测任务。

YuZhou的博客 6595

Redis

  Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。其数据是保存在内存中,同时可定时把内存数据同步到磁盘,将数据持久化,比memcached支持更多的数据结构:string,list,set,sorted set,hash。 redis的应用: 登录会话存储:存储在redis中,数据不会丢失。 排行版/计数器:文章的阅读量,网站...

ak474755的博客 116

从Applied Intelligence被拒到The Visual Computer录用:我的计算机视觉论文投稿时间线全记录(含详细修改意见)

本文详细记录了作者从Applied Intelligence被拒到The Visual Computer成功发表计算机视觉论文的全过程,重点分享了如何将模糊的拒稿理由转化为具体改进方案。文章包含技术改进细节、写作调整策略以及期刊选择经验,为计算机视觉领域的研究者提供了实用的投稿指南。

weixin_30872499的博客 465

小公司AI落地三件套:API+低代码+轻量开源模型

大语言模型(LLM)作为当前主流AI能力底座,其工程化落地并非依赖自研训练,而是围绕推理服务调用、流程可视化编排与边缘可控部署展开。理解API选型逻辑、无代码平台的编排边界,以及轻量开源模型(如Phi-3、TinyLlama)在数据合规、低延迟和定制微调中的不可替代性,是中小企业实现AI增效的核心路径。该技术组合显著降低GPU资源依赖与算法团队门槛,广泛应用于智能客服、合同审查、简历筛选、工业质检等业务场景,真正将AI从‘技术概念’转化为可计量、可交付、可持续迭代的生产力杠杆。

483

ceph recovery 相关参数

可以修改的最大回填/恢复选项列在 “恢复/回填选项” 部分。mClock 的修改 默认回填/恢复限制由 osd_mclock_override_recovery_settings 选项,设置为 默认为 false。尝试修改任何默认恢复/回填限制而不设置门控选项,会将该选项重置为 mClock 默认值,并在集群日志中记录一条警告消息。请注意,默认值可能需要几秒钟才能恢复生效。请使用 config show 命令验证限制,如下所示。就直接设置以下参数,过一会就变回了默认值。简单点说官网的意思就是不设置。

weixin_40548182的博客 278

原理和代码解读:用Diffusion Models高清图像修复(Image Inpainting)

在最近的Diffusion Models应用中,Image Inpainting+ControlNet/Lora等工作在模特衣服生成、家居场景重建等场景中得到了广泛的应用。这篇博客主要介绍Diffusion Models如何在修复高清图像的。

沉迷单车的追风少年 2497

终极指南:Lark集群部署与Redis连接池优化实战

Lark是一个开源的Golang IM服务端项目,具有高性能和可扩展等特性。采用微服务架构设计,支持集群和水平扩展,能够满足高并发业务需求,并实现了万人群消息的秒达。本指南将带你快速掌握Lark集群的部署方法和Redis连接池的优化技巧,让你的IM系统轻松应对高并发场景。 ## 一、Lark集群架构概览 Lark采用微服务架构设计,通过Docker容器化部署,实现了各服务的独立扩展和高可用。整

gitblog_00567的博客 1067

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

从零到Offer:一个Java应届生的真实逆袭日记

最绝望的一次,我去面试一家创业公司,技术面时面试官让我手写一个LRU缓存。我大脑一片空白,最后只憋出一句:"我……"走出公司大楼时,天突然下起暴雨,我没带伞,浑身湿透地站在地铁口,第一次怀疑自己是不是根本不适合编程。宿舍的兄弟们都拿到了Offer:有人去了大厂,有人进了国企,而我——投了200份简历,面试了30家公司,却只收到3个"等通知"三个月后,我终于能流畅地回答:"HashMap的负载因子为什么是0.75?上个月,我拿到了某二线厂20k的Offer。HR问我职业规划时,我平静地说:。

sheep404的博客 453

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Claude Codde 入门教程—— 从零到独立完成项目

本文是一篇面向零基础用户的Claude Code入门教程摘要: Claude Code是一个终端AI编程助手,允许用户通过自然语言指令完成编程任务。教程分为12个章节,从安装配置到实战项目开发,帮助用户掌握以下核心技能: 基础操作:读取、修改、搜索代码文件 项目开发:从零构建完整项目(含OCP项目实战) 高级功能:MCP工具集成、自定义技能、工作流编排 与ChatGPT不同,Claude Code能直接操作项目文件、执行终端命令,更适合实际开发场景。教程采用渐进式学习路径,包含两个实战演练(网页开发与项目管

qq_41187116的博客 3653

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Grok4 200万上下文技术解析:分层缓存与工程落地实践

长上下文是大语言模型处理法律、代码、科研等复杂任务的核心能力,其本质是KV缓存管理与内存访问效率的系统工程问题。传统Transformer的O(n²)注意力机制在超长序列下遭遇显存爆炸与延迟失控,而Grok4通过分块注意力缓存复用机制和三级分层缓存架构(L1热区滑动窗口、L2语义指纹索引、L3磁盘映射页表),在A100-80G上实现实测200万token稳定推理。该设计显著提升显存效率与长距关联准确率,使跨文档条款比对、全栈代码根因分析、十年文献隐性知识挖掘等场景从理论走向高可用落地。理解其缓存拓扑与chu

weixin_30275415的博客 577
上一篇: 黑神话,悟空!启动!启动!启动!
下一篇: 知名开源工具被用于诈骗,作者无奈清空代码
IT界那些事儿
博客等级 码龄6年 2万+粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值