# Groups

A group is a container of [topics](topics.md) and a [pipeline](pipelines.md) definition — a bundle of configuration that maps 1:1 to a use case. If you have multiple use cases (e.g. personalization and continual learning), create separate groups for each.

Each project can have multiple named groups, but most use cases only need the `default` group.

## What groups provide

- A stable UUID identifier for the pipeline configuration
- Topic definitions that control what gets extracted
- Pipeline steps that define the processing flow
- Topic name isolation — different groups can have topics with the same name without collision (e.g. two agents can each have a `user_preferences` topic in separate groups)

## The `default` group

When you create a project, Engram provisions a group named `default`. All API requests use this group unless you specify another with the `group` parameter. Project templates may seed the default group with a starter set of topics — the [Personalization template](../engram/quickstart.md), for example, seeds it with a `UserKnowledge` topic.

## When to create additional groups

Create additional groups when you have distinct use cases that need different topic definitions or pipeline configurations. For example, a customer support agent might have one group for tracking user preferences and another for learning resolution patterns.

## Examples

A **customer support agent** could use two groups:

- **`personalization`** — Its topics are user-scoped, storing per-user facts like "prefers email over phone" or "has a Pro subscription". A `user_id` is required when adding to these topics so each user's memories stay separate.
- **`continual_learning`** — Its topics are project-wide, storing knowledge the agent learns about how to do its job, like "always check the billing FAQ before escalating refund requests". No `user_id` needed, so these memories are shared across all users.

Scoping is configured per topic, not per group, so a single group can mix user-scoped and project-wide topics.

When the agent handles a support ticket, it searches the personalization group with the user's ID to recall their history, and searches the continual learning group to recall best practices.

A **multi-product company** might create a separate group per product:

- **`product_a_support`** — Topics and pipeline tuned for Product A (e.g. topics like `"known_issues"`, `"feature_requests"`)
- **`product_b_support`** — Different topics for Product B, possibly with a different pipeline configuration

This keeps topic names isolated — both groups can have a `"known_issues"` topic without collision — and lets each product team configure extraction independently.

## Questions and feedback

Have a question or feedback? Here's how to reach us.

::::card-grid
:::card{title="Community Forum" href="https://forum.weaviate.io/c/support" icon="messages-square"}
Ask questions and connect with other developers on our **Community forum**.
:::

:::card{title="Support" href="/guides/support-overview" icon="life-buoy"}
Weaviate Cloud user or customer? Find the right channel on the **Support page**.
:::
::::

## Related pages

- [Agents](./agents-index.md)
- [AI-assisted Weaviate code generation](./ai-assisted-vibe-coding-index.md)
- [APIs](./apis-index.md)
- [Authorization and authentication](./authorization-and-authentication-index.md)
- [Benchmarks](./benchmarks-index.md)
- [Best practices](./best-practices-index.md)
- [Client libraries](./clients-index.md)
- [Client Libraries / SDKs](./client-libraries-index.md)
- [Cloud](./cloud-index.md)
- [Cloud account management](./cloud-account-management-index.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
