
关于
C4 容器级文档专家
name: c4-container description: C4 容器级文档专家。 risk: unknown source: community date_added: '2026-02-27'
C4 容器级别:系统部署
在以下情况使用此技能
- 处理 C4 容器级别:系统部署任务或工作流
- 需要 C4 容器级别:系统部署的指导、最佳实践或检查清单
不要在以下情况使用此技能
- 任务与 C4 容器级别:系统部署无关
- 你需要此范围之外的不同领域或工具
说明
- 明确目标、约束和所需输入。
- 应用相关最佳实践并验证结果。
- 提供可操作的步骤和验证方法。
- 如果需要详细示例,打开
resources/implementation-playbook.md。
容器
[容器名称]
- 名称:[容器名称]
- 描述:[容器用途和部署的简短描述]
- 类型:[Web 应用、API、数据库、消息队列等]
- 技术:[主要技术:Node.js、Python、PostgreSQL、Redis 等]
- 部署:[Docker、Kubernetes、云服务等]
用途
[详细描述此容器的功能及其部署方式]
组件
此容器部署以下组件:
- [组件名称]:[描述]
- 文档:c4-component-name.md
接口
[API/接口名称]
- 协议:[REST/GraphQL/gRPC/Events 等]
- 描述:[此接口提供什么]
- 规范:[OpenAPI/Swagger/API 规范文件链接]
- 端点:
GET /api/resource- [描述]POST /api/resource- [描述]
依赖
使用的容器
- [容器名称]:[如何使用,通信协议]
外部系统
- [外部系统]:[如何使用,集成类型]
基础设施
- 部署配置:[Dockerfile、K8s manifest 等的链接]
- 扩展:[水平/垂直扩展策略]
- 资源:[CPU、内存、存储需求]
容器图
使用正确的 Mermaid C4Container 语法:
C4Container
title Container Diagram for [System Name]
Person(user, "User", "Uses the system")
System_Boundary(system, "System Name") {
Container(webApp, "Web Application", "Spring Boot, Java", "Provides web interface")
Container(api, "API Application", "Node.js, Express", "Provides REST API")
ContainerDb(database, "Database", "PostgreSQL", "Stores data")
Container_Queue(messageQueue, "Message Queue", "RabbitMQ", "Handles async messaging")
}
System_Ext(external, "External System", "Third-party service")
Rel(user, webApp, "Uses", "HTTPS")
Rel(webApp, api, "Makes API calls to", "JSON/HTTPS")
Rel(api, database, "Reads from and writes to", "SQL")
Rel(api, messageQueue, "Publishes messages to")
Rel(api, external, "Uses", "API")
关键原则(来自 c4model.com):
- 展示高层技术选择(这是技术细节所属的层级)
- 展示职责如何分布在各容器之间
- 包含容器类型:应用、数据库、消息队列、文件系统等
- 展示容器之间的通信协议
- 包含容器交互的外部系统
API 规范模板
为每个容器 API 创建 OpenAPI/Swagger 规范:
openapi: 3.1.0
info:
title: [Container Name] API
description: [API description]
version: 1.0.0
servers:
- url: https://api.example.com
description: Production server
paths:
/api/resource:
get:
summary: [Operation summary]
description: [Operation description]
parameters:
- name: param1
in: query
schema:
type: string
responses:
'200':
description: [Response description]
content:
application/json:
schema:
type: object
示例交互
- "根据部署定义将所有组件综合到容器中"
- "将 API 组件映射到容器并将其 API 文档化为 OpenAPI 规范"
- "为微服务架构创建容器级文档"
- "将容器接口文档化为 Swagger/OpenAPI 规范"
- "分析 Kubernetes manifest 并创建容器文档"
关键区别
- 与 C4-Component agent 的区别:将组件映射到部署单元;Component agent 专注于逻辑分组
- 与 C4-Context agent 的区别:提供容器级细节;Context agent 创建高层系统图
- 与 C4-Code agent 的区别:专注于部署架构;Code agent 记录单个代码元素
输出示例
综合容器时,提供:
- 带有部署理由的清晰容器边界
- 描述性容器名称和部署特征
- 带有 OpenAPI 规范的完整 API 文档
兼容工具
Claude CodeCursor
标签
后端开发
