FocalPoint — AI Cognitive Operating System
Your AI forgets everything between conversations. FocalPoint fixes that.
Not just memory — cognitive infrastructure. FocalPoint tracks your projects, prepares context before tasks, uses a Three-Province review system for quality decisions, and proactively alerts you about stuck work.
The Problem
AI agents are stateless. Every conversation starts from zero — no memory of your projects, decisions, or progress. You waste time re-explaining context and manually tracking what's stuck.
Existing solutions only go halfway:
| Tool | What it does | What it doesn't do |
|---|
| Mem0 / Zep | Remembers conversations | Doesn't track tasks or alert you |
| LangGraph / CrewAI |
Orchestrates agents | No persistent cognitive layer |
|
Claude / OpenAI memory | Remembers preferences | Doesn't manage work or deadlines |
They remember what was said. FocalPoint manages what needs to be done.
What You Get
- - Structured memory — Goal > Project > Milestone > Task hierarchy with status lifecycle
- Workbench — One call prepares goal, knowledge, context, subtasks, and role prompt
- Proactive alerts — Heartbeat detects blocked, stale, and at-risk tasks automatically
- Knowledge documents — Attach design docs to nodes; child tasks inherit parent knowledge
- Role-based thinking — Strategy, Review, and Execution roles see filtered perspectives
- Three-Province review — Parallel review by two reviewers before execution; max 3 rejections then escalate
- Full-text search — FTS5 search across titles, narratives, and knowledge documents
- GitHub + Notion sync — Issues and pages auto-sync as FocalPoint nodes
- Zero dependencies — Runs 100% locally on SQLite. No vector DB, no Redis, no cloud.
Competitive Comparison
| Capability | Mem0 | Zep | Letta | CrewAI | Claude | FocalPoint |
|---|
| Persistent memory | Yes | Yes | Yes | Yes | Yes | Yes |
| Task lifecycle management |
- | - | - | Partial | - |
Yes |
| Dependency graph (DAG) | - | - | - | - | - |
Yes |
| Proactive alerts | - | - | - | - | - |
Yes |
| Knowledge docs + inheritance | - | - | - | - | Partial |
Yes |
| Role-based context | - | - | - | Partial | - |
Yes |
| Decision review workflow | - | - | - | - | - |
Yes |
| Full-text search | Vector | Vector | Vector | - | - |
FTS5 |
| MCP native | - | - | - | - | Proprietary |
Yes |
| Self-hosted, zero deps | Partial | Partial | Yes | Yes | - |
Yes |
No competitor combines structured task management + proactive alerts + knowledge inheritance + role-based context + review workflow in a single MCP-native package.
Setup
1. Install
CODEBLOCK0
2. Add MCP server
CODEBLOCK1
3. Restart OpenClaw
That's it. 22 tools are now available.
How It Works
Architecture: Brain-Spine Model
CODEBLOCK2
- - Brain = LLM. Only reads context and issues Tool Calls.
- Spine = Deterministic engine. All logic here. LLM never touches storage directly.
Storage: Pure SQLite
CODEBLOCK3
No vector database. No Redis. No PostgreSQL. One SQLite file is everything.
Work Mode
Workbench — prepare before you work
CODEBLOCK4
Three Roles
| Role | Focus | Sees |
|---|
| Strategy (Maker) | Should we do this? Priority? | Decisions + feedback |
| Review (Reviewer) |
Any risks? Historical lessons? | Risk notes + progress |
|
Execution (Engineer) | How to build it? Acceptance criteria? | Technical details + progress |
Same data, different thinking modes. The role prompt guides the AI's perspective.
Three-Province Review — quality decisions
For major decisions (new features, architecture changes, tech choices):
CODEBLOCK5
Knowledge Documents — persistent design context
CODEBLOCK6
Log Categories
CODEBLOCK7
Different roles see different categories. Strategy sees decisions + feedback. Execution sees technical + progress.
Use Cases
Project tracking
CODEBLOCK8
Decision memory
CODEBLOCK9
Risk detection
CODEBLOCK10
Full-text search
CODEBLOCK11
Available Tools (22)
Write (11)
| Tool | What it does |
|---|
| INLINECODE0 | Create a project/task/goal/milestone |
| INLINECODE1 |
Change status (inbox/active/waiting/done/dropped) |
|
update_field | Update title, summary, deadline, etc. |
|
attach_node /
detach_node | Move tasks in hierarchy |
|
add_dependency /
remove_dependency | Manage task dependencies |
|
append_log | Record decisions, progress, risks (with category) |
|
unarchive | Restore completed/dropped tasks |
|
set_persistent | Protect tasks from auto-archive |
|
set_knowledge | Attach knowledge documents to nodes |
Read (5)
| Tool | What it does |
|---|
| INLINECODE11 | Get full details of a work item |
| INLINECODE12 |
Find tasks by filters or full-text search |
|
get_knowledge | Read knowledge with parent inheritance |
|
delete_knowledge | Delete a knowledge document |
|
get_assembly_trace | Debug context assembly |
Cognitive (4)
| Tool | What it does |
|---|
| INLINECODE16 | Load memory context (call at conversation start) |
| INLINECODE17 |
Scan for risks: blocked, stale, at-risk tasks |
|
activate_workbench | Prepare working context with role + knowledge |
|
get_context_bundle | Get role-filtered, token-budgeted context |
Review (1)
| Tool | What it does |
|---|
| INLINECODE20 | Three-Province parallel review |
Runtime (1)
| Tool | What it does |
|---|
| INLINECODE21 | Switch AI attention to a specific task |
Automatic Memory Rules
Follow these rules in EVERY conversation:
- 1. Conversation start -> Call
bootstrap to load memory - Before starting a task ->
activate_workbench to prepare context - User makes a decision ->
append_log with category="decision" - Risk identified ->
append_log with category="risk" - Task progresses -> INLINECODE26
- Design conclusions ->
set_knowledge to persist for future sessions - Before conversation ends ->
append_log key takeaways - Every ~10 min ->
heartbeat to check for risks
Stats
| Metric | Value |
|---|
| Tests | 665 |
| MCP Tools |
22 |
| External dependencies | 0 (pure SQLite) |
| Cold start | < 100ms |
| Supported LLMs | Any (via MCP protocol) |
| Platforms | Claude Desktop, OpenClaw, any MCP client |
Requirements
- - Python 3.10+
- No external services — runs 100% locally on SQLite
Links
FocalPoint — AI 认知操作系统
你的 AI 会在每次对话之间遗忘一切。FocalPoint 解决了这个问题。
不仅仅是记忆——而是认知基础设施。 FocalPoint 追踪你的项目,在任务前准备上下文,使用三省审查系统进行质量决策,并主动提醒你关于停滞的工作。
问题所在
AI 代理是无状态的。每次对话都从零开始——对你的项目、决策或进展毫无记忆。你浪费时间去重复解释上下文,并手动追踪哪些工作停滞了。
现有解决方案只走了一半:
| 工具 | 功能 | 不足 |
|---|
| Mem0 / Zep | 记住对话 | 不追踪任务或提醒你 |
| LangGraph / CrewAI |
编排代理 | 没有持久化认知层 |
|
Claude / OpenAI 记忆 | 记住偏好 | 不管理工作或截止日期 |
它们记住了说过什么。FocalPoint 管理需要做什么。
你将获得
- - 结构化记忆 — 目标 > 项目 > 里程碑 > 任务层级,带状态生命周期
- 工作台 — 一次调用准备目标、知识、上下文、子任务和角色提示
- 主动提醒 — 心跳检测自动发现阻塞、过时和风险任务
- 知识文档 — 将设计文档附加到节点;子任务继承父级知识
- 基于角色的思考 — 战略、审查和执行角色看到过滤后的视角
- 三省审查 — 执行前由两位审查者并行审查;最多拒绝3次后升级
- 全文搜索 — FTS5 搜索标题、叙述和知识文档
- GitHub + Notion 同步 — Issue 和页面自动同步为 FocalPoint 节点
- 零依赖 — 100% 本地运行于 SQLite。无需向量数据库、Redis 或云服务。
竞争对比
| 能力 | Mem0 | Zep | Letta | CrewAI | Claude | FocalPoint |
|---|
| 持久化记忆 | 是 | 是 | 是 | 是 | 是 | 是 |
| 任务生命周期管理 |
- | - | - | 部分 | - |
是 |
| 依赖图 (DAG) | - | - | - | - | - |
是 |
| 主动提醒 | - | - | - | - | - |
是 |
| 知识文档 + 继承 | - | - | - | - | 部分 |
是 |
| 基于角色的上下文 | - | - | - | 部分 | - |
是 |
| 决策审查工作流 | - | - | - | - | - |
是 |
| 全文搜索 | 向量 | 向量 | 向量 | - | - |
FTS5 |
| MCP 原生 | - | - | - | - | 专有 |
是 |
| 自托管,零依赖 | 部分 | 部分 | 是 | 是 | - |
是 |
没有竞争对手能在单个 MCP 原生包中结合结构化任务管理 + 主动提醒 + 知识继承 + 基于角色的上下文 + 审查工作流。
设置
1. 安装
bash
pip install focalpoint
2. 添加 MCP 服务器
yaml
openclaw.yaml
mcp_servers:
fpms:
command: focalpoint
3. 重启 OpenClaw
就这样。现在有 22 个工具可用。
工作原理
架构:大脑-脊柱模型
大脑 (LLM) 脊柱 (FocalPoint 引擎)
| |
| -- 工具调用 --> | 验证 -> 写入 SQLite -> 叙述 -> 审计
| |
| <-- 上下文 --- | 组装 L0/L1/L2 -> 修剪 -> 注入提示
- - 大脑 = LLM。只读取上下文并发出工具调用。
- 脊柱 = 确定性引擎。所有逻辑在此。LLM 从不直接接触存储。
存储:纯 SQLite
SQLite <- 单一事实来源
events.jsonl <- 审计追踪
narratives/*.md <- 仅追加日志
knowledge/{id}/ <- 设计文档
无需向量数据库。无需 Redis。无需 PostgreSQL。一个 SQLite 文件就是一切。
工作模式
工作台——工作前准备
你:处理支付系统任务
AI 调用 activateworkbench(nodeid, role=execution)
-> 返回:目标、知识文档、上下文包、排序后的子任务、
建议的下一步、执行角色提示
-> AI 进入角色,阅读背景,开始工作
三种角色
| 角色 | 关注点 | 看到的内容 |
|---|
| 战略 (制定者) | 我们应该做这个吗?优先级? | 决策 + 反馈 |
| 审查 (审查者) |
有风险吗?历史教训? | 风险记录 + 进展 |
|
执行 (工程师) | 如何构建?验收标准? | 技术细节 + 进展 |
相同数据,不同思考模式。角色提示引导 AI 的视角。
三省审查——质量决策
对于重大决策(新功能、架构变更、技术选型):
战略产出需求
|
审查 + 工程师并行审查
|-- 审查:检查风险、历史教训 -> 批准/拒绝
|-- 工程师:评估可行性 -> 批准/拒绝
|
两者都批准 -> 进入执行
任一拒绝 -> 修改后重新提交
|
3 次拒绝 -> 升级到人工
知识文档——持久化设计上下文
你:将这份架构文档保存到项目
AI 调用 setknowledge(projectid, architecture, content)
-> 子任务自动继承父级知识
-> AI 无需你重复解释即可读取项目概览
类型:overview | requirements | architecture | 自定义名称
日志分类
appendlog(nodeid, content, category=decision) # 决策记录
appendlog(nodeid, content, category=feedback) # 用户/市场反馈
appendlog(nodeid, content, category=risk) # 风险和教训
appendlog(nodeid, content, category=technical) # 技术细节
appendlog(nodeid, content, category=progress) # 进展更新
appendlog(nodeid, content, category=general) # 默认
不同角色看到不同分类。战略看到决策 + 反馈。执行看到技术 + 进展。
使用场景
项目追踪
你:为产品发布创建一个项目,包含3个任务
(第二天)
你:发布状态如何?
AI:3个任务:1个完成,1个进行中,1个阻塞。阻塞的任务
正在等待设计审查——已经2天了。
决策记忆
你:我们决定用 Stripe 做支付
AI:appendlog(nodeid, 选择 Stripe — 更好的 API,更低的手续费, category=decision)
(两周后)
你:为什么我们选了 Stripe?
AI:搜索决策 -> 你在3月15日决定 — 更好的 API 和更低的手续费。
风险检测
AI 自动运行心跳并发现:
- 部署任务已阻塞 4 天
- 文档更新已过时 — 一周没有活动
- 错误修复有风险 — 截止日期是明天
全文搜索
你:查找所有与缓存决策相关的内容
AI:search_nodes(query=caching decisions)
-> 通过标题、叙述内容和知识文档找到节点
可用工具 (22)
写入 (11)
| 工具 | 功能 |
|---|
| createnode | 创建项目/任务/目标/里程碑 |
| updatestatus |
更改状态 (待办/进行中/等待/完成/放弃) |
| update_field | 更新标题、摘要、截止日期等 |
| attach
node / detachnode | 在层级中移动任务 |
| add
dependency / removedependency | 管理任务依赖 |
| append_log | 记录决策、进展、风险 (带分类) |
| unarchive | 恢复已完成/放弃的任务 |
| set_persistent | 保护任务不被自动归档 |
| set_knowledge | 将知识文档附加到节点 |
读取 (5)
| 工具 | 功能 |
|---|
| getnode | 获取工作项的完整详情 |
| searchnodes |
通过筛选或全文搜索查找任务 |
| get_knowledge | 读取知识,带父级继承 |
| delete_knowledge | 删除知识文档 |
| get
assemblytrace | 调试上下文组装 |
认知 (4)
| 工具 | 功能 |
|------|------|
| b