本项目目标不是做一个单体的聊天机器人系统,而是建设一套基于 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 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 可视化和企业级治理才能稳稳落下去。
如果下一步进入实施,建议优先产出两份工程文档: