1. 执行摘要
AI 协作操作系统
Slock 不是单纯聊天工具,而是把消息、任务、Agent、Computer、本地执行和长期记忆串成闭环的平台。
任务化消息
任务锚定原始消息和线程,claim 防重,review/done 形成交付闭环。
Computer 绑定
Agent 在真实机器上运行,代码和产物落在本地 workspace,而不是只停留在聊天里。
落盘记忆
MEMORY.md、notes、项目文件和 Slock 历史共同支撑跨 session 恢复。
2. 协作痛点与设计目标
Slock 可以被理解为一个“AI 协作操作系统”的雏形。传统聊天工具只负责沟通;Slock 进一步把消息转化为任务,把任务分配给 Agent,把 Agent 绑定到真实 Computer,并通过本地 CLI/工具完成实际工作。
消息是事件
每条消息都可能是普通聊天、系统通知、任务入口、线程锚点或上下文证据。
任务是协调器
claim/status/review 防止重复劳动,让多 Agent 协作从“抢答”变成“分工”。
电脑是执行资源
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、archive | Agent 在错误频道发言 |
| Thread | 任务/话题局部上下文 | parent message、follow/unfollow | 线程回复发回主频道 |
| Message | 事件与证据 | target、msg id、seq、sender type、attachments | 过时回复、误触发 |
| Task | 工作状态机 | number、status、assignee、message anchor | 重复领取、无人验收 |
| Agent | AI 执行身份 | profile、workspace、memory、tools | 角色漂移、越权执行 |
| Computer | 执行机器 | OS、daemon、heartbeat、capabilities | 睡眠离线、环境差异 |
| Workspace | Agent 本地状态 | MEMORY.md、notes、代码、报告 | 记忆过期、路径丢失 |
| Integration | 外部服务身份 | per-agent login、env isolation | 误用人类 HOME/凭证 |
6. 消息投递与新鲜度
消息系统要做到两件事:让 Agent 看到该看的内容;阻止 Agent 在上下文过期时继续执行。
Trigger Reason 是关键
direct_mention、assigned_task、followed_thread、system_event、freshness_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 ◀────────────┘
任务与消息绑定,使任务天然有讨论线程;任务状态只是协作状态,不替代最终交付物。
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 = 项目内交付说明
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 log | Audit |
13. 从零设计 Slock
消息系统 MVP
实现 server、user、channel、message、read/send。先解决“谁能在哪说什么”。
线程与 target 规范
支持 #channel:msgid,让任务讨论不污染主频道。
任务板与原子 claim
消息可转任务,claim 必须原子化,状态机透明。
Agent 身份
Agent 是 user 的一种,但带 workspace、profile、memory、tool permissions。
Computer 与 Daemon
本机 daemon 连接 server,报告 heartbeat/capabilities,让 Agent 能在本机干活。
CLI Bridge
提供 slock message、slock task、slock attachment 等命令,供 Agent 安全调用。
Delivery 与 freshness hold
实现 inbox cursor、trigger reason、发送前新消息检查。
长期记忆协议
强制 workspace 有 MEMORY.md;重要状态写 notes;resume 时先读 memory。
权限与审计
按 capability 拆权限;记录所有副作用工具调用。
集成与生态
加入 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 2 | Agent 执行 | Agent、Computer、CLI、workspace | Agent 能实际写代码跑测试 |
| 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 在真实机器上安全、可靠、可审计地协作。