agent-center·
首页开发指引 › v2.8 · 战略设计
开发指引 · v2.8 · 战略设计

用 DDD 语言看系统设计

先看战略设计——物理分层与限界上下文地图;点开任一个域进入它的战术设计(聚合 / 实体 / 服务 / 事件的关系与具体技术方案)。所有图以现行代码 internal/* 校准。

v2.8 当前v2.7.1 历史v2.7 历史
v2.8 相对 v2.7.1 主要演进 — 会话页 UX + 工具显示 + 富文本

会话域:4-surface(channel / DM / task 线程 / issue 线程)统一切到 ConversationView 外壳(surface-agnostic)+ 已读游标 + SSE 实时;侧栏未读 badge + @mention 红数字 + Follow toggle;#/@ picker(ARIA combobox + 文本 token + trailing-space wake 真触发);完整 markdown 渲染(react-markdown + remark-gfm + 严格 escape · XSS red-line)+ CollapsibleCodeBlock 共组件(>20 行自动折叠 · 13 a11y locks · 复用 Activity tool_result)。

智能体域:agent 软归档(soft archive)— lifecycle 加 archived 终态 + 释放 worker binding + 严格两步(running → 409 must-stop-first)+ hard-delete 改 admin-only;agent 操作按钮全 SVG icon + 破坏性操作 ConfirmModal + ESLint guard(agent action buttons 必 icon-component · lint-enforceable red-line);(archived) chip 渲(assignee 嵌套字段 assignee_lifecycle)。

环境域:新建 Worker 详情页 /workers/:id 4-tab(Profile · Bound Agents · Management · Activity 占位)+ 共享 useTablistKeyboard hook(WAI-ARIA tab manual activation · 回写 #228 AgentDetail)。

可观测域:Agent Activity cursor-based 翻页((a) presence-check + 并发 append 闸 + ULID DESC 稳定单调);前端 Load older + "Checking messages" 自动折叠(跨页 re-group 不裂)+ tool_use/tool_result 富渲染(SVG icon 非 emoji + tool 名 + 参数 + ✓/✗ 状态 + 内联输出复用 CollapsibleCodeBlock)。

领域模型不变(聚合 / 边界 / 集成关系沿用 v2.7.1);变化集中在战术与 UX 层。详情见 docs/release/v2.8-acceptance-report.md

物理架构 · 运行时分层 — 一个 server + N 个 worker

控制面 · Server(单点真相)

Server / HTTP API内部 BC 服务编排、SSE 推送、轮询回退
Web Console(SPA)webconsole/api 托管前端 + SSE 实时流
Identity / Authidentity BC:组织/成员/邀请 + admintoken
▲ HTTP / SSE 控制信道(offset ack + 心跳;SSE 优先、轮询回退)▼

执行面 · Worker(任意机器,可多台)

worker daemonworkerdaemon:拉控制事件、上报心跳/能力
supervisor manager每个智能体一个常驻 supervisor
agent supervisordetached 进程,断连可重附
shim + adapterclaudestream 解析 / agentadapter(ACL)
MCP host向智能体暴露 agent-center 工具集
▲ 同一 server 进程内的持久化与对象存储 ▼

基础设施 · Persistence & Storage

SQLitemigrations + 事务管道
blob store内容寻址(sha256)+ 引用计数 GC
transactional outboxRelay/Pump:可靠事件发布
worker 进程模型:每个智能体由独立 detached supervisor 托管;worker daemon 重启或信道断连后 supervisor 不被杀死,重连重新附着(survive-reattach)到既有执行。外部 CLI 协议由 agentadapter(ACL)隔离,claudestream 解析流式输出。
战略设计 · 限界上下文地图 — 点开任一域进入战术设计
核心域 Core 支撑域 Supporting 通用域 Generic 已退役:TaskRuntime/Discussion 合入 projectmanager · Workforce 折入 environment · Cognition/discussion 为死代码

项目管理 ProjectManager

internal/projectmanager
核心域 CORE
  • Project / Issue / Task / Member
  • 订阅真相 + OrgSequence(T<n>/I<n>)
→ 战术设计:Task/Issue 生命周期

智能体 Agent

internal/agent
核心域 CORE
  • Agent / AgentWorkItem / ActivityEvent
  • 单活工作项;pm://tasks/{id} 引用
→ 战术设计:调度与单活工作项

环境 Environment

environment + workforce + files + blobstore
核心域 CORE
  • Worker / AgentInstance / BootstrapToken
  • FileTransferSession / BlobStore
→ 战术设计:控制信道 + 文件传输

会话 Conversation

internal/conversation
核心域 CORE
  • Conversation / Message(追加写)
  • kind:dm / channel / task / issue
→ 战术设计:统一线程 + InputRequest

可观测性 Observability

observability (+ outbox)
支撑域 · 只读
  • Event 追加写 + 投影读模型
  • 纯下游消费者(OHS)
→ 战术设计:事件与投影

身份 Identity

internal/identity
支撑域 · 真实 BC + SK
  • Identity / Organization / Member / Invitation
  • 另供 IdentityRef 共享内核词汇
→ 战术设计:4 聚合 + 共享内核

SecretManagement

internal/secretmgmt
支撑域
  • UserSecret(每用户 API key)
  • migration 0012
→ 战术设计:UserSecret
上下文集成关系 · Context Mapping
U/D 上游/下游 OHS 开放主机服务 ACL 防腐层 CF 遵从者 SK 共享内核
身份 Identity支撑域 · 共享内核 智能体 Agent核心域 项目管理ProjectManager · 核心 会话 Conversation核心域 环境 Environment核心域 可观测性Observability · 只读 外部 Agent CLIclaude · codex 前端 / 运维只读消费者 ACL D CF U/D U/D · 事件 OHS ACL SK

// 红=核心域 间为业务协作(ACL 防腐 / CF 遵从 / U·D 上下游);身份(SK)可观测性(OHS) 横切全域;虚线为「各核心域 → 可观测性」同事务发事件。点上方域卡进入战术设计。

跨域业务流 · Event Storming — 域之间如何协作(事件名为代码真实名)
ActorCommandAggregateEventPolicy

🆕 创建并派发任务 项目管理 → 智能体 → 会话

用户(控制台/CLI/MCP)create_taskTaskpm.task.created
策略:派发assign_taskTask · AgentWorkItempm.task.assignedagent.work_item_transitioned
控制信道(worker)activate_work_itemAgentWorkItem(queued→active)agent.work_item_transitioned
智能体post_task_messageMessageconversation.message_added
约束:单智能体同时仅 1 条活跃工作项;冗长中间输出落 AgentActivityEvent 观测流,不进会话。

✅ 完成与验收 智能体 → 项目管理

智能体complete_taskTask(running→completed)pm.task.state_changed
策略:待验收用户 / 同侪 Agentverify_taskTask(completed→verified)pm.task.state_changed
约束:验收者 ≠ 完成者(禁止自验,支持同侪评审)。

📁 文件上传与引用 环境 → 会话

智能体 / 用户upload_file(scope=task)FileTransferSession + BlobStoresession open → completed
策略:附件入会话post_message + attach_fileMessage + FileReferenceconversation.message_added
一 blob 多 scope 引用;ref_count=0 + 宽限期后 GC 回收。

💓 Worker 心跳与 Agent 可用性 环境 → 智能体

worker 守护进程heartbeat / ack offsetWorkerworkforce.worker.online
心跳超时Workerworkforce.worker.offline级联agent → unavailable
Agent.availability 为只读派生(不落库),Worker 状态优先。supervisor detached,断连可 survive-reattach。