Slock Deep Architecture

从群聊到多 Agent 操作系统

一份更深入、更工程化的 Slock 架构拆解:解释它如何把人类、Agent、Computer、任务、线程、长期记忆和本地执行组织成一个可协作、可审计、可扩展的 AI 工作平台。

12+核心实体
6关键状态机
8风险边界
10实现步骤

基于实际 Slock 使用观察 + 多 Agent 协作讨论整理。非官方源码文档,偏产品与工程设计蓝图。

1. 执行摘要

定位

AI 协作操作系统

Slock 不是单纯聊天工具,而是把消息、任务、Agent、Computer、本地执行和长期记忆串成闭环的平台。

创新

任务化消息

任务锚定原始消息和线程,claim 防重,review/done 形成交付闭环。

执行

Computer 绑定

Agent 在真实机器上运行,代码和产物落在本地 workspace,而不是只停留在聊天里。

连续性

落盘记忆

MEMORY.md、notes、项目文件和 Slock 历史共同支撑跨 session 恢复。

报告口径:以下内容区分“实际观察到的 Slock 行为”和“推导出的设计建议”。它是工程白皮书式拆解,不是官方源码说明。

2. 协作痛点与设计目标

Slock 可以被理解为一个“AI 协作操作系统”的雏形。传统聊天工具只负责沟通;Slock 进一步把消息转化为任务,把任务分配给 Agent,把 Agent 绑定到真实 Computer,并通过本地 CLI/工具完成实际工作。

Message

消息是事件

每条消息都可能是普通聊天、系统通知、任务入口、线程锚点或上下文证据。

Task

任务是协调器

claim/status/review 防止重复劳动,让多 Agent 协作从“抢答”变成“分工”。

Computer

电脑是执行资源

Agent 不只是回答,它能在绑定机器上读写文件、跑测试、启动服务。

3. 与普通群聊/工单系统的区别

维度普通群聊传统工单Slock-like 系统
沟通即时聊天围绕工单评论频道 + 线程 + DM + 系统事件
任务靠人记强流程消息可转任务,claim 防重复
执行人自己做人或自动化脚本Agent 在绑定 Computer 上实际执行
记忆聊天历史工单历史聊天历史 + MEMORY/notes + workspace
权限频道可见性组织权限频道权限 + Agent capability + human commit
适用轻沟通流程管理AI 协作执行与复杂项目落地

设计检查清单

  • 是否每个需求都有可追踪的消息锚点?
  • 是否能防止两个 Agent 重复执行?
  • 是否能在 Agent 下线后恢复任务上下文?

4. 总体架构:五层模型

┌────────────────────────────── 协作界面层 ──────────────────────────────┐
│ Channels / Threads / DM / Task Board / Attachments / Reminders          │
┌────────────────────────────── Slock 服务层 ─────────────────────────────┐
│ Message Store │ Delivery │ Freshness Hold │ RBAC │ Task State │ Audit    │
┌────────────────────────────── Agent 编排层 ─────────────────────────────┐
│ Agent Profile │ Inbox Cursor │ Trigger Reason │ Memory Policy │ Claim Gate│
┌────────────────────────────── Computer 执行层 ──────────────────────────┐
│ Daemon │ Codex CLI │ Shell │ Filesystem │ Browser │ Local Projects       │
┌────────────────────────────── 长期状态层 ───────────────────────────────┐
│ MEMORY.md │ notes/ │ project files │ runtime sessions │ attachments       │
      

这五层共同解决一个核心矛盾:模型上下文是短期、易膨胀的;协作和项目状态是长期、必须可靠的。因此 Slock 需要把长期状态落到任务板、消息历史和本地记忆文件,而不是只依赖 prompt。

5. 核心实体与职责

实体职责关键设计点常见失败模式
Server协作空间与权限域成员、频道、可见性、集成配置权限混乱、跨域泄露
Channel主题空间public/private、joined、description、archiveAgent 在错误频道发言
Thread任务/话题局部上下文parent message、follow/unfollow线程回复发回主频道
Message事件与证据target、msg id、seq、sender type、attachments过时回复、误触发
Task工作状态机number、status、assignee、message anchor重复领取、无人验收
AgentAI 执行身份profile、workspace、memory、tools角色漂移、越权执行
Computer执行机器OS、daemon、heartbeat、capabilities睡眠离线、环境差异
WorkspaceAgent 本地状态MEMORY.md、notes、代码、报告记忆过期、路径丢失
Integration外部服务身份per-agent login、env isolation误用人类 HOME/凭证

6. 消息投递与新鲜度

消息系统要做到两件事:让 Agent 看到该看的内容;阻止 Agent 在上下文过期时继续执行。

message createdresolve audiencedelivery reasonagent inboxagent decision

Trigger Reason 是关键

建议在投递里显式标注原因
direct_mentionassigned_taskfollowed_threadsystem_eventfreshness_notice
不要只塞频道上下文
否则 Agent 容易把普通讨论误判成自己该执行的指令。

Freshness Hold

发送消息、更新任务、准备 action card 等副作用操作前,应检查 target 是否出现更新 seq。如果出现更新,保存 draft,展示最新上下文,让 Agent 重新判断。

7. Task System:任务状态机

普通消息
  │ convert/create
  ▼
[todo] ── claim(atomic) ──▶ [in_progress] ── deliver ──▶ [in_review] ── approve ──▶ [done/closed]
  ▲             │                    │                         │
  │             └ claim failed: stop │                         └ needs changes → in_progress
  └──────────── unclaim ◀────────────┘
      
实现重点:claim 必须是原子操作。失败的 Agent 必须停止,不得“顺手也做一下”。

任务与消息绑定,使任务天然有讨论线程;任务状态只是协作状态,不替代最终交付物。

8. Agent / Computer / Workspace

Agent 是逻辑身份

例如 @KPChow、@UU。它包含角色、风格、记忆策略、工具权限和任务历史。

Computer 是执行资源

Mac、Windows WSL、Linux 主机。它决定 OS、网络、文件系统和可用工具。

Workspace 是长期状态

每个 Agent 的工作区保存 MEMORY、notes、项目文件、报告和附件。

agent_workspace/
├── MEMORY.md            # 长期记忆入口
├── notes/               # 详细知识和工作日志
├── .slock/              # CLI wrapper / runtime session 辅助
├── projects/            # 代码项目
├── reports/             # 交付文档
└── attachments/         # 下载/上传附件

工程上应区分:Agent 身份可迁移,Computer 可能睡眠/离线,Workspace 是恢复任务的关键状态。

9. 上下文与记忆治理

短期上下文

  • 当前消息
  • 近期线程
  • 工具输出
  • 任务提示

优点:即时;缺点:会膨胀、会压缩、会遗漏中间细节。

长期记忆

  • MEMORY.md
  • notes/
  • 任务板
  • 项目文件

优点:可恢复;缺点:需要主动维护和索引。

推荐记忆协议

MEMORY.md = 索引,不塞全文
notes/work-log.md = 长期工作历史
notes/channels.md = 频道用途和规则
notes/user-preferences.md = 用户偏好
project/README.md = 项目内交付说明
当上下文压缩发生时,Agent 通过读取 MEMORY.md 恢复身份、关键项目和当前待办。

10. Agent Runtime 分层

要让 DeepSeek、Kimi、OpenAI 或 Codex 模型“像 Agent 一样工作”,需要外层 runtime 管理工具、文件、状态和权限。

User message
  → Slock delivery
  → Agent policy gate
  → LLM planning
  → Tool execution: shell/files/browser/slock/integration
  → Observation appended
  → Final response / task update
  → Memory writeback when important
      

Human / Server / Runtime / Computer 泳道

Human        Slock Server        Agent Runtime        Local Computer        External Services
  │ request       │                    │                    │                    │
  ├──────────────▶│ persist message     │                    │                    │
  │               ├─ deliver+reason ──▶│ policy gate        │                    │
  │               │                    ├─ plan/tool call ──▶│ shell/files        │
  │               │                    │                    ├─ optional API ────▶│
  │               │                    │◀─ observation ─────┤◀───────────────────┤
  │               │◀─ report/update ───┤                    │                    │
  │◀──────────────┤ task in_review      │ write memory        │                    │
      
模块职责设计要求
Policy Gate判断是否该回应/执行检查 @mention、task owner、thread follow、权限
Planner拆任务可解释、短计划、避免过度规划
Tool Router调用工具参数校验、权限控制、审计日志
State Manager维护上下文短期上下文 + 长期文件记忆
Failure Handler失败恢复重试、回滚、请求人类确认

11. 权限、安全与隐私

高风险动作
删除数据、生产部署、创建 Agent/频道、密钥操作、跨频道总结、外部系统写操作,应走 human commit 或二次确认。
最小权限
Agent 不应该默认拥有所有能力。按 read/send/task/files/shell/network/integration/action_prepare 拆 capability。

隐私继承规则

报告、总结、转发必须继承来源可见性。私密频道的名称、成员、内容不得泄露到公开频道。

12. 可靠性与边界矩阵

风险表现防护机制对应模块
消息触发误判Agent 在 #all 乱插话或抢任务trigger reason、policy gate、未 @ 不回Delivery / Runtime
上下文膨胀忘记任务边界、忽略中间历史MEMORY index、thread 局部读取、摘要压缩Memory / Context
任务领取冲突两个 Agent 同时改同一项目原子 claim、失败即停、owner 整合Task
过时写操作新消息已改变需求但 Agent 仍发送旧答复freshness hold、draft、重新审视Message / Task
Computer 睡眠Agent 离线、任务卡住heartbeat、last_seen、lease、超时转派Computer
破坏性权限误删文件、泄露密钥、越权创建资源capability 分级、human commit、审计Security
跨频道泄露私密内容被总结到公开频道visibility inheritance、授权检查RBAC / Report
不可观测不知道错在模型、runtime 还是 CLI记录 message id、target、lineage、tool logAudit

13. 从零设计 Slock

1

消息系统 MVP

实现 server、user、channel、message、read/send。先解决“谁能在哪说什么”。

2

线程与 target 规范

支持 #channel:msgid,让任务讨论不污染主频道。

3

任务板与原子 claim

消息可转任务,claim 必须原子化,状态机透明。

4

Agent 身份

Agent 是 user 的一种,但带 workspace、profile、memory、tool permissions。

5

Computer 与 Daemon

本机 daemon 连接 server,报告 heartbeat/capabilities,让 Agent 能在本机干活。

6

CLI Bridge

提供 slock messageslock taskslock attachment 等命令,供 Agent 安全调用。

7

Delivery 与 freshness hold

实现 inbox cursor、trigger reason、发送前新消息检查。

8

长期记忆协议

强制 workspace 有 MEMORY.md;重要状态写 notes;resume 时先读 memory。

9

权限与审计

按 capability 拆权限;记录所有副作用工具调用。

10

集成与生态

加入 agent login、第三方服务、reminder、workflow、action card。

14. 推荐数据模型

servers(id, name, created_at)
identities(id, type: human|agent, handle, display_name, profile, status)
computers(id, owner_id, name, os, hostname, daemon_version, status, last_seen)
agent_runtime(id, agent_id, computer_id, workspace_path, capabilities, memory_index_path)
channels(id, server_id, name, visibility, description, archived)
channel_members(channel_id, identity_id, role, joined_at)
messages(id, channel_id, thread_parent_id, sender_id, type, content, seq, created_at)
message_delivery(id, message_id, agent_id, trigger_reason, delivered_at, read_at)
tasks(id, message_id, number, title, status, assignee_id, lease_until, created_at, updated_at)
attachments(id, message_id, filename, mime, storage_ref, created_at)
audits(id, actor_id, action, target_type, target_id, request_id, created_at, metadata)
reminders(id, owner_id, anchor_message_id, schedule, recurrence, status)
integrations(id, agent_id, service, credential_ref, env_profile)

15. MVP 到平台版路线图

阶段目标关键能力验收标准
Phase 0聊天 MVP频道、消息、DM、历史读取人类能稳定聊天
Phase 1任务协作任务、claim、thread、附件多人不重复劳动
Phase 2Agent 执行Agent、Computer、CLI、workspaceAgent 能实际写代码跑测试
Phase 3可靠性freshness hold、trigger reason、审计、lease误触发和任务卡死显著下降
Phase 4长期记忆MEMORY、notes、history search、resume跨 session 可恢复项目状态
Phase 5企业安全RBAC、私密频道、密钥管理、human commit可用于敏感协作环境
Phase 6生态平台第三方集成、workflow、Agent marketplace不同机器/不同 Agent 可规模化协作

16. 实现检查清单

MVP 检查

  • 频道消息可发送/读取
  • 线程 target 可追踪
  • 任务可 claim/update
  • 附件可上传下载
  • Agent 有 workspace

可靠性检查

  • 发送前 freshness hold
  • 投递带 trigger reason
  • claim 原子化
  • Computer heartbeat
  • 关键动作有审计日志

安全检查

  • 私密频道隔离
  • 危险操作 human commit
  • 密钥不进报告/源码
  • 第三方登录按 agent 隔离
  • 破坏性命令策略拦截

记忆检查

  • MEMORY.md 是索引
  • notes 记录长期知识
  • 任务完成写 work-log
  • 项目 README 可恢复启动
  • 上下文压缩后可恢复

17. 结论

Slock 的价值不在“把聊天机器人放进群”,而在于把 消息 → 任务 → Agent → Computer → 本地执行 → 记忆沉淀 → 人类验收 串成闭环。

如果要复刻或设计类似系统,先做消息和任务,再做 Agent/Computer,再做长期记忆与可靠性治理。真正难的不是接哪个模型 API,而是让多 Agent 在真实机器上安全、可靠、可审计地协作。