> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs-beta.getzep.com/v3/create-graph/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-beta.getzep.com/_mcp/server. # Create a Context Graph ## Overview Create a shared Context Graph when the context belongs to a customer account, project, product, organization, or business domain instead of one application user. The API addresses this graph with `graph_id`. ## When to create a Context Graph Create a graph when you need to: * Create shared knowledge bases across multiple users * Build domain-specific knowledge graphs independent of user context * Maintain separate graphs for testing or experimentation * Implement custom graph architectures for specialized use cases Use a user graph when the context belongs to one application user and the application needs Zep users, threads, user summaries, or `thread.get_user_context`. ## Create the graph **`Python`** ```python Python from zep_cloud.client import Zep client = Zep( api_key=API_KEY, ) # Create a Context Graph with a custom ID result = client.graph.create( graph_id="support-emea", name="EMEA Support", description="Customer support cases and escalation history for EMEA.", ) print(f"Created graph with ID: {result.graph_id}") ``` **`TypeScript`** ```typescript TypeScript import { ZepClient } from "@getzep/zep-cloud"; const client = new ZepClient({ apiKey: API_KEY, }); // Create a Context Graph with a custom ID const result = await client.graph.create({ graphId: "support-emea", name: "EMEA Support", description: "Customer support cases and escalation history for EMEA." }); console.log(`Created graph with ID: ${result.graphId}`); ``` **`Go`** ```go Go import ( "context" "fmt" "log" "github.com/getzep/zep-go/v3" zepclient "github.com/getzep/zep-go/v3/client" "github.com/getzep/zep-go/v3/option" ) client := zepclient.NewClient( option.WithAPIKey(apiKey), ) // Create a Context Graph with a custom ID graphID := "support-emea" name := "EMEA Support" description := "Customer support cases and escalation history for EMEA." result, err := client.Graph.Create(context.TODO(), &zep.CreateGraphRequest{ GraphID: &graphID, Name: &name, Description: &description, }) if err != nil { log.Fatalf("Failed to create graph: %v", err) } fmt.Printf("Created graph with ID: %s\n", *result.GraphID) ``` ## Bind a content policy A new graph copies the current project [content policy](/content-policies) when you create it. The optional `content_policy` field of the create body adds categories and rules to that policy, and `content_policy.project_revision` rejects the create with `409 content_policy_revision_stale` when the project policy changed after you read it. The bound policy is read-only after creation. When a graph needs a different policy, create a new graph. ## Describe graphs for routing Set a distinct name and description when agents can access more than one Context Graph. The [graph directory](/graph-directory) searches `graph_id`, `name`, and `description`, so the description should state what an agent should query the graph for and what the graph does not contain. ## Seed the graph A shared Context Graph created with `graph_id` starts empty. A user graph starts with a user node that represents its subject. A shared Context Graph has no node until you add data. Before you add ongoing data, seed the graph with facts about its subject. Later data can then attach to a well-formed subject. For example, give a new company graph the company's name, industry, and key people. Seed it by adding episodes with [`graph.add`](/adding-business-data), by asserting known relationships with [`add_fact_triple`](/adding-fact-triplets), or both. ## Work with the graph After creation, you can use the same graph methods that apply to user graphs: * [Discover graphs in the directory](/graph-directory) by name and description * [Add data to the graph](/adding-business-data) by specifying `graph_id` instead of `user_id` * [Search the graph](/searching-the-graph) for relevant information * [Read data from the graph](/reading-data-from-the-graph) to inspect nodes and edges * [Delete data from the graph](/deleting-data-from-the-graph) when needed * [Clone the graph](/cloning-graphs) to create copies ## Customizing Graph Structure You can customize these Context Graphs with entity and edge types. See [Customizing Graph Structure](/customizing-graph-structure) for details. ## Next Steps * Use the [graph directory](/graph-directory) to list and search Context Graphs * Learn how to [add business data](/adding-business-data) to your graph * Explore [graph search capabilities](/searching-the-graph) * Understand how to [customize graph structure](/customizing-graph-structure) > Create shared or domain context that is not owned by one Zep user