效率与协作 layered-memorylearner-profilewiki-knowledge-basecron-schedulerfeishuwechatelectroncli

Inno Agent

开源个人学习智能体:三层记忆(学员画像 / 知识库 / 跨会话回忆)、主动调度器、个人 IM 通道与练习实验室,基于 Pi SDK 构建且不修改其内核。

FollowAgents 评估 · FARS-2.1
谨慎使用
60/ 100 五分制 3.0 / 5
1 2 3 4 5 6
1信任安全12 / 29 · 2.1/5

信任维度得分偏低。最小权限(1):Agent拥有bash执行、文件操作、WebSocket终端、IM通道与cron调度等大范围能力,OS级沙箱仅为可选(pi-sandbox,需ripgrep),默认配置下权限偏大;扣分点在默认不启用沙箱。用户确认(1):有`closeBehavior: ask`和409阻塞提示,但未见到对危险bash/文件写入的用户确认门控描述。数据流透明(2):三层内存写入明确声明为通过工具写入、可检查可编辑(L1),架构图与目录清晰,但数据去向仅在README层面描述,未见代码级审计日志证据。敏感数据(1):API key以明文写入config.,server会热改写该文件;showcase导出声称有脱敏,但运行期敏感数据保护证据不足。依赖安全(1):npm overrides钉住axios版本、vendor了xlsx包,显示一定关注,但无审计/lockfile策略说明;对Pi SDK的传递依赖无评估。外部影响(1):主动向Feishu/WeChat/QQ发消息、定时任务、写工作区文件,影响面广且默认授权程度未说明。回滚(1):无更新/回滚机制描述,配置文件会被服务器热改写而无备份说明。来源归属(2):明确注明Pi SDK(Mario Zechner,MIT)及citation,诚实标注'未修改内核';扣分在于发布者身份未经注册表验证且macOS包未签名。

2可靠稳定9 / 14 · 3.2/5

自洽性(2):'Non-goals'章节明确单进程单会话、无多租户等约束,声明与架构一致;扣分:README提到vitest作为发版门禁但根目录说明称'尚未接lint/test runner',两处表述存在轻微张力(可能是时间差),仅扣一分。依赖可用性(2):Content Hub有本地缓存与内置preset离线回退,设计上考虑了远端不可用;但hub是第三方仓库(Chloris-Blaxk),可用性不完全受控。失败消息(2):409 session_busy带阻塞者详情并要求UI呈现,这是具体的失败传播设计;扣分:仅有这一处实例,未见统一的错误处理策略文档。

3适用触发12 / 18 · 3.3/5

受众与场景(3):个人学习代理定位极其清晰,含'Why'立场声明、非目标、Simple Mode presets面向非技术用户、use-cases文档——受众定义是本仓库的强项,给满分。能力边界(2):非目标章节划定了并发/多用户边界,但Agent本身的能力上限(如可执行操作范围)描述有限。触发精度(1):L3召回声称'threshold-gated',调度器为自然语言cron,但阈值、误触发处理的静态证据薄弱;环境触发条件未定义。环境适配(2):CLI flag/env var/默认值三级路径解析、Docker、桌面三形态、Node>=20.6 engines声明,覆盖面好;扣分:Windows bridge模式(WeChat)对环境的依赖未说明,ripgrep等系统依赖散落在不同文档。

4规范维护14 / 18 · 3.9/5

信息架构(3):README→QUICKSTART→后端README→docs/分层清晰,仓库布局表、路由表、部署布局均有,给满分。安装说明(3):三种安装方式各含完整命令、配置模板与API key设置步骤,还有系统依赖专文档。命名稳定性(2):`inno` CLI、包名、路径约定一致,但版本0.5.x阶段、默认provider名'innospark'与示例baseUrl易混淆;扣分:无稳定性承诺。示例与FAQ(2):QUICKSTART、skill教程、use-cases存在,但未见FAQ或故障排查(showcase的troubleshooting除外)。已知限制(3):'Non-goals'章节是教科书式的限制声明,含issue #124设计讨论链接,给满分。许可(3):MIT LICENSE全文在库,依赖许可(Pi SDK MIT)已注明。版本与变更(2):semver tag触发的release工作流、prerelease规则完备,但未见CHANGELOG文件或版本间变更说明。维护责任(1):有Contributing章节和微信用户群,但无治理/维护者/响应承诺说明;个人仓库,长期维护路径不明。

5有效结果9 / 13 · 3.5/5

输出可用性(2):声明产出可追溯(工具写入L1/L2)、会话回放、i18n与主题,输出面向学习场景设计;扣分:均为主张,静态层面未见输出质量约束的具体机制。边际价值(2):'分层内存优于扁平聊天摘要'、'持久事实走工具'等立场构成了对通用编码代理的差异化论点,有技术报告佐证意图;扣分:差异化效果无法静态验证,属于主张层面。成本收益(2):单机单进程架构刻意降低复杂度,可接本地模型(Ollama)控制成本;扣分:Electron+全栈+SQLite的体量对'个人学习伴侣'而言不算轻,用户需自备LLM API成本,性价比取决于使用强度,未给出估算。

6证据核验4 / 8 · 2.5/5

主张可追溯(2):README中的设计决策链接到issue #124,文档路径具体可点验,发版工作流含vitest门禁;扣分:多数功能主张(三层内存效果、L2检索质量)无本仓库内可静态核对的数据,eval:l2-retrieval脚本存在但结果未见。跨源印证(1):引用了arXiv技术报告、第三方hub仓库、Pi SDK npm包,但这些在本次审查范围之外,无法印证;扣分:范围内缺乏独立第二来源。事实与推断分离(2):'Non-goals'与立场章节清楚区分了事实约束与设计立场,showcase声明'基于真实UI'的机制有代码路径支撑;扣分:部分营销性表述(如'real session'、2026年日期)无法在静态范围核实。

证据充分度: 评估于 2026年9月10日 审查版本 9e15af276453
使用前请注意
  • 默认不启用OS级沙箱,bash/文件/终端能力全开,建议个人部署时启用`server:sandbox`并将工作区目录与敏感目录隔离。
  • API key以明文存放于config.且服务器会热改写该文件,注意文件权限与备份策略。
  • 默认Content Hub为第三方仓库(Chloris-Blaxk/inno-agent-hub),导入的skill/preset未经审查,建议自托管或审计后再启用。
  • 无认证模型、无多租户隔离,切勿将Web端口暴露到公网或多人共用实例。
  • macOS安装包未签名,且发布者身份未经注册表验证,安装前请自行核对构建来源。
  • 主动IM通道(Feishu/WeChat/QQ)会向外部服务发消息,启用前确认其授权范围与消息成本。
  • 声称的测试门禁(vitest)与根README'尚未接测试runner'表述不一致,关键行为请自行验证。
评估证据 [1][2][3][4][5]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Inno Agent 是一个面向单一学习者的开源学习智能体,把长期学习支持组织为三层显式记忆:L1 学员画像、L2 原生 Wiki 知识库、L3 会话记录与跨会话检索。它提供三种共享同一运行时状态的形态:Electron 桌面应用、React 19 Web UI(Node HTTP 服务器 + SSE 流式输出、终端、知识图谱)、以及纯 TUI 的终端 CLI(inno)。学习闭环由 cron 调度器、个人 IM 通道(飞书 / 微信)和带浏览器终端的 Practice Lab 组成。所有学习行为通过注册工具和一个 before_agent_start 扩展钩子加入 Pi SDK,内核不做任何修改,保持上游兼容。项目采用 MIT 协议,支持 Docker 部署,设计上刻意限定为单进程、单活跃会话、无多用户并发的个人形态。

每次对话轮次,智能体通过 before_agent_start 钩子把 L1 证据驱动的学员画像(目标、知识状态、误区、偏好)压缩为上下文包注入系统提示词,并做阈值门控的 L3 SQLite FTS5 跨会话检索。学习者可通过工具把持久事实写入 L1/L2;L2 Wiki 提供词法 BM25 + 知识图谱混合检索、LLM 辅助摘要,以及 PDF/Office/图片导入。自然语言创建的 cron 任务持久化到 jobs. 与 runs.l,可从智能体、UI 或守护进程触发,并通过统一调度器分发到飞书(原生)、微信(iLink 扫码或 bridge 模式)和 QQ(bridge)。Practice Lab 在 xterm.js + WebSocket 的工作区终端里运行代码并记录运行结果供智能体读取。技能与 Simple Mode 预设从远程内容中心(默认 Chloris-Blaxk/inno-agent-hub,可指向私有 GitHub 仓库或自托管 bundle 服务)导入,也可导出真实会话到独立的回放站点(apps/showcase)。

  1. 准备考试或系统学习新领域的个人学习者:智能体在 L1 画像里追踪你的知识状态与误区,按 cron 计划主动推送复习提醒到微信或飞书。
  2. 需要长期积累个人知识库的学习者:把 PDF、Office 文档、图片导入 L2 Wiki,之后用自然语言向智能体提问并获得带图谱检索的答案。
  3. 想在对话中边学边写代码练手的用户:在 Practice Lab 的浏览器终端里运行代码,运行记录会被智能体读取用于反馈。
  4. 非技术用户:通过 Simple Mode 一键导入课程规划、PPT 制作、场景讲解等预设工作区,无需自己配置。
  5. 重视隐私与可解释性的学习者:L1 画像可查看、可编辑,禁止无证据标签,全部数据留在本地 runtime 目录。
  6. 想自定义教学流程的开发者:用 agent.md 与 .skills/ 构建限定于某个工作区的定制学习智能体,或自托管内容中心。

这个 Agent 有哪些优点和局限?

优点
  • 分层记忆架构而非扁平聊天摘要:L1/L2/L3 生命周期各异、独立存储,个性化基于证据写入工具而非聊天回复,可追溯。
  • 完全不改 Pi SDK 内核,全部能力通过注册工具与 before_agent_start 钩子实现,保持上游兼容,便于跟随 SDK 更新。
  • 开放可纠正的学员模型:L1 画像可由学习者直接检查和编辑,且明确禁止无证据标签。
  • 三形态共享同一运行时状态(桌面 / Web / CLI),并有会话回放站点(apps/showcase)用真实产品 UI 复现历史会话。
局限
  • 刻意单进程、单活跃会话:单一内存队列串行化所有工作,跨会话操作繁忙时返回 409 session_busy,不适合团队或多任务并发。
  • 无多用户并发、无水平扩展、无认证模型与租户隔离;团队部署需要每人跑一个实例。
  • 无 lint/test runner,贡献前仅靠 TypeScript 构建做健全性检查,工程质量保障有限。
  • 依赖 Pi SDK 生态(@earendil-works/pi-*,Mario Zechner 维护)与外部 LLM API 密钥;可选沙箱需额外安装 ripgrep。
  • 官方技术报告标注为 2026 年 6 月 arXiv 文档,部分生态(内容中心、社区群)依赖第三方仓库与微信社群。

如何安装或部署这个 Agent?

方式 A(最简单):从 GitHub Releases 下载桌面安装包 — macOS Apple Silicon 为 Inno.Agent-x.y.z-arm64.dmg(未签名,首次启动右键 → 打开),Windows x64 为 Inno.Agent.Setup.x.y.z.exe 或 .msi。方式 B(源码):git clone https://github.com/hhyqhh/inno-agent.git && cd inno-agent && npm install && npm run build,然后 mkdir -p runtime/config runtime/data runtime/skills workspace,cp config.example. runtime/config/config. 并填入 providers[*].apiKey。方式 C(Docker):docker compose up -d(端口 3000,挂载 runtime/ 与 workspace/)。运行需要 Node.js >= 20.6.0,需在 config 中提供兼容 openai-completions 或 anthropic-messages 的 API 端点与密钥(如 Anthropic、OpenAI、DeepSeek、Ollama、本地模型)。

如何使用这个 Agent?

npm run server 启动 Web UI(:3000),npm run start 启动终端 CLI,npm run electron 启动桌面应用,npm run server:sandbox 启用 OS 级沙箱(需 ripgrep)。首次启动会在 ~/.inno-agent/config/config. 生成默认配置,填入 provider API key 后即可开始对话。可用 --home / --config-dir / --data / --skills / --workspace / --port 等 CLI 参数(或 INNO_* 环境变量)重定向路径。在 UI 设置中可实时切换模型、开关 L1/L2/L3 记忆层、启用飞书/微信通道(channels.feishu.enabled、channels.wechat.enabled)。用自然语言让智能体创建复习计划(cron 任务);在侧边栏会话项上点场记图标或运行 npm run showcase:export -- --session <substring> 导出会话回放。

相关 Agents