我用 GWT、IIT 代理、ChromaDB 混合检索和 Ollama 回退构建了一个本地 AI 伴侣——以下是我所做的每个架构决策及其原因
摘要
作者分享了一个使用 Python、Gemini 和 Ollama 构建的可本地运行的 AI 伴侣,其特色是基于全局工作空间理论和集成信息理论代理的定制认知架构,用于人格建模。
我已经构建了一段时间。现在分享是因为代码已经过了让我尴尬的阶段。\*\*技术栈:\*\* \* Python 3.12,18k+ 行代码,470+ 测试通过 \* Gemini 2.5 Flash(主要)+ Ollama qwen3:4b(通过断路器本地回退) \* ChromaDB 用于持久化——混合检索权重为 55% 语义 / 25% 重要性 / 20% 新鲜度 \* \`sentence-transformers all-MiniLM-L6-v2\`(384 维)用于本地嵌入——完全离线,检索无需 API 调用 \* SQLite 用于认知状态 \* FastAPI Web UI 位于 \`localhost:8765\`,以及 Rich TUI 和 CLI 模式
\*\*我希望得到反馈的部分——认知架构:\*\* 处理流水线按阶段运行:感知 → 反思 → 整合 → 渴望 → 表达。22 个自注册插件通过全局工作空间实现竞争注意力——容量限制 5,竞争评分,聚光灯机制。还有一个 IIT 意识代理(跨 7 维感质空间的 Φ 近似值)。我想坦诚地说:这是一个 \*代理\*,而不是真正的 Φ 计算。完整的 IIT 计算在这个规模上是难以处理的。它所做的是给系统一个它实际上可以响应的连贯性信号。
\*\*值得关注的模块:\*\* \* \[\`being.py\`\](http://being.py/) — 实时情绪、精力、好奇心、依恋、主体状态。影响下游处理,不仅仅是输出文本。 \* \[\`homeostasis.py\`\](http://homeostasis.py/) — 7 项生存需求,产生内部压力。当“连贯性”低时,系统的响应与高时不同。 \* \`self\_modify.py\` — 评估、经验提取、元学习循环。模型随时间改进自身行为模式。 \* \[\`intuition.py\`\](http://intuition.py/) — 5 种预感类型、感觉建模、模式验证历史
\*\*弹性:\*\* 每个模块的断路器、健康监控器、120 秒看门狗。如果 Gemini 在会话中宕机,Ollama 回退会启动——用户几乎注意不到。
\*\*为什么我给它一个 INFJ 人格模型:\*\* 诚实的回答——认知堆栈(Ni/Fe/Ti/Se)清晰地映射到我已经在做的架构决策上。Ni = 长期检索权重。Fe = 关系上下文权重。Ti = 内部批评通道。Se = 体现层,将抽象处理扎根于活体身体图式。人格类型给了我一个连贯的 \*约束系统\* 用于设计。这不是美学,而是功能。
仓库:\[github.com/timeless-hayoka/infj-bot\](https://github.com/timeless-hayoka/infj-bot) 我希望得到反馈的具体内容:GWT 评分实现、IIT 代理框架是否合理,以及混合检索权重是否有意义。
相似文章
打造了一个本地AI助手,因为我一直知道这一天会到来,而昨天让它变得无比真实
一位开发者构建了Bantz,一个完全本地的AI个人助手,运行在Gemma 4b上,具有管家角色,集成了Gmail、日历、网页搜索、系统监控和桌面控制,强调不依赖云基础设施。
商业AI被“脑白质切除”了。我构建了DRIFT:一个拥有持久记忆、模拟躯体反馈及荣格阴影的本地集体意识。
作者介绍了DRIFT,这是一个基于Python和Ollama构建的本地AI系统,具备持久记忆、模拟躯体反馈和荣格心理学建模功能,旨在创造一种更接地气、更具主权的AI交互体验。
我用 Ollama 构建了一个本地自主编码代理——微调灵魂模型,40轮代理循环,MiniMax M3 处理重活
一位开发者使用 Ollama 构建了一个本地自主编码代理,结合了微调个性模型(Eve)进行对话和 MiniMax M3 处理重活,实现了 40 轮代理循环,包含 16 个工具,9 个测试全部一次通过。
我厌倦了向每个AI工具重复解释我的项目,所以我为它们构建了一个本地记忆层
作者构建了mem-port,一个本地MCP服务器,通过嵌入式SurrealDB为AI编程助手(ChatGPT、Claude Code、Cursor、Windsurf)提供共享的长期记忆,解决了AI工具之间的上下文漂移问题。
我正用Go从头构建一个本地AI桌面助手
作者正用Go编程语言从头构建一个本地AI桌面助手。