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

用 DDD 语言看系统设计

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

v2.8 当前v2.7.1 历史v2.7 历史
物理架构 · 运行时分层 — 一个 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。