本项目目标不是做一个单体的聊天机器人系统,而是建设一套基于 Python 的智能体开发平台,支持:
一句话定位:
一套支持多应用、多智能体、多流程、多服务部署的智能体编排与运行平台。
平台建议采用“网关 + 核心运行时 + 支撑服务”的多服务架构。
SDK / Webhook
编排与运行层
Session Service
Workflow Service
Agent Runtime Service
Team Runtime Service
Scheduler Service
能力层
Tool Service
Skill Service
Memory Service
Retrieval Service
Plugin Service
Model Gateway
支撑层
Auth / Tenant Service
Trace / Eval Service
Notification Service
File / Artifact Service
基础设施层
PostgreSQL
Redis
pgvector
MinIO
Kafka / RabbitMQ
Prometheus / Grafana / OpenTelemetry
api-gateway:统一接入入口studio-web:管理后台session-service:会话与运行入口workflow-service:流程定义、版本、执行图解析runtime-service:节点执行调度agent-service:单智能体执行team-service:多智能体协作memory-service:记忆与上下文读写tool-service:工具注册、鉴权、调用retrieval-service:知识库和语义检索model-gateway:统一模型接入trace-service:追踪、回放、评测scheduler-service:异步任务、延迟任务、重试auth-service:用户、组织、租户、权限artifact-service:文件、产物、日志附件如果平台未来要支持复杂工作流、多租户、多团队并发开发,以及长链路任务执行,单体架构会很快遇到以下问题:
因此建议从一开始就按照“模块化单体 -> 受控多服务”的方式设计代码和边界,即使初期只部署成少量服务,也要保证未来拆分成本可控。
职责:
扩展方式:
职责:
数据边界:
sessionconversationmessagerun_request扩展方式:
职责:
数据边界:
app_definitionapp_versionworkflow_definitionworkflow_versionworkflow_template扩展方式:
职责:
这是平台核心服务。
数据边界:
workflow_runnode_runrun_eventrun_snapshot扩展方式:
职责:
数据边界:
agent_definitionagent_versionagent_policy扩展方式:
职责:
数据边界:
team_definitionteam_versionteam_memberteam_runteam_task扩展方式:
职责:
数据边界:
memory_recordmemory_factmemory_episodecontext_namespacecontext_kv扩展方式:
职责:
数据边界:
tool_definitiontool_versiontool_bindingtool_credentialtool_invocation_log扩展方式:
职责:
数据边界:
knowledge_basedocumentdocument_chunkembedding_indexretrieval_log职责:
扩展方式:
职责:
数据边界:
trace_spantrace_eventeval_caseeval_result适合:
建议使用:
适合:
建议使用:
run.createdrun.startednode.schedulednode.completednode.failedmemory.updatedtool.invokedteam.task.createdtrace.emitted初期可共用一个 PostgreSQL 集群,但按 schema 或 database 区分域:
app_dbruntime_dbmemory_dbtool_dbtrace_dbauth_db后续热点域可独立迁移。
以下服务默认设计为无状态:
api-gatewayworkflow-serviceagent-serviceteam-servicetool-servicemodel-gateway这样可以直接通过容器副本水平扩容。
有状态能力不要依赖本地内存:
需要引入:
不同服务按不同指标扩容:
不要直接使用第三方工作流协议作为内核运行格式,建议定义内部 DSL:
workflownodesedgesinputsoutputspoliciesruntime_options节点类型至少支持:
llmconditioncodetoolretrievaltemplateansweragentteamhuman_approvalsub_workflow第三方 YAML 通过 Importer 转换为内部 DSL。
建议采用 Monorepo,多服务共享基础库。
auto-platform/
services/
api-gateway/
session-service/
workflow-service/
runtime-service/
agent-service/
team-service/
memory-service/
tool-service/
retrieval-service/
model-gateway/
trace-service/
auth-service/
artifact-service/
scheduler-service/
libs/
core-domain/
core-dsl/
core-events/
core-auth/
core-trace/
sdk-models/
sdk-tools/
sdk-memory/
deployments/
docker/
k8s/
helm/
docs/
scripts/
tests/
core-domain:领域模型、枚举、基础对象core-dsl:工作流 DSL、节点协议、校验器core-events:事件定义、消息契约core-auth:认证鉴权模型core-trace:统一 trace schemasdk-models:模型调用封装sdk-tools:工具协议和客户端sdk-memory:记忆访问协议每个服务内部尽量保持一致结构:
service-name/
app/
api/
application/
domain/
infrastructure/
tasks/
schemas/
bootstrap/
tests/
pyproject.toml
api:HTTP / WebSocket / gRPC 接口application:用例编排、服务层domain:领域实体、仓储接口、规则infrastructure:DB、Redis、MQ、第三方适配器tasks:异步任务消费schemas:请求响应模型bootstrap:依赖注入和启动api-gatewaysession-service 创建会话和 runworkflow-service 返回对应 workflow version 和执行计划runtime-service 创建 root run 并投递节点任务agent-service、tool-service、retrieval-servicememory-service 负责读写上下文和记忆trace-service 持续收集执行事件每类节点统一接口:
prepare(context)execute(input)handle_result(output)emit_events()schedule_next_nodes()这样方便以后继续扩展节点类型。
目标:
交付:
api-gatewaysession-serviceworkflow-serviceruntime-servicemodel-gatewaytool-servicellm、condition、tool、code、answer验收标准:
周期:
目标:
交付:
agent-servicememory-service验收标准:
周期:
目标:
交付:
team-serviceretrieval-service验收标准:
周期:
目标:
交付:
auth-servicetrace-service验收标准:
周期:
目标:
交付:
验收标准:
周期:
目标:
交付:
验收标准:
周期:
初期不建议一开始就拆十几个独立服务上线。更稳妥的方式是:
建议初期合并:
session-service + workflow-serviceagent-service + team-service + model-gatewaytool-service + retrieval-service + memory-service这样既保留横向扩展能力,也避免前期微服务治理成本过高。
3.11+FastAPIPydantic v2SQLAlchemy 2.xAlembicCelery 或 DramatiqKafka 或 RabbitMQRedisPostgreSQLpgvectorMinIODocker + KubernetesOpenTelemetry + Prometheus + Grafana这套平台的正确建设路径,不是从“聊天机器人”出发,而是从“可横向扩展的流程运行内核”出发。只有先把工作流执行、状态管理、记忆隔离、服务边界和异步通信做好,后面的多智能体、复杂业务编排、Studio 可视化和企业级治理才能稳稳落下去。
如果下一步进入实施,建议优先产出两份工程文档: