This page is the canonical map of where features belong in Fred.
Use it before adding endpoints, workflows, or policies.
Fred has three API applications:
-
Agentic Backend API (
agentic-backend)- Main role: chat/session runtime and agent orchestration.
- Typical concerns: sessions, agent execution, chat interactions.
-
Knowledge Flow Backend API (
knowledge-flow-backend)- Main role: ingestion, documents, tags/libraries, retrieval-facing operations.
- Typical concerns: content lifecycle, metadata, vectors, document pipelines.
-
Control Plane API (
control-plane-backend)- Main role: teams/users operations and policy-driven lifecycle control.
- Typical concerns: team membership changes, policy evaluation, purge orchestration.
Fred also has Temporal workers separated by concern:
-
Knowledge Flow Temporal Worker
- Runs ingestion/processing workflows.
- Focus: batch conversion, extraction, indexing pipelines.
-
Agentic Temporal Worker
- Runs long-running/scheduled agentic workloads (to be progressively consolidated there).
- Focus: durable agent executions outside synchronous API request lifecycle.
-
Control Plane Temporal Worker
- Runs lifecycle/policy jobs.
- Focus: policy-based purge/archive workflows (for example member-removal cleanup).
When adding new behavior, decide with these rules:
- User/team/admin API? Put it in Control Plane API.
- Document ingestion/indexing pipeline? Put it in Knowledge Flow (API + Temporal if async/batch).
- Chat/session runtime behavior? Put it in Agentic API.
- Policy-driven scheduled lifecycle action? Put it in Control Plane Temporal.
- Cross-backend shared primitive? Put it in fred-core (only if truly shared, stable, and minimal).
All Python backends follow the same startup convention:
ENV_FILEfor secrets/env variables.CONFIG_FILEfor YAML configuration.
Standard commands:
make runfor API process.make run-workerfor Temporal worker process.
See:
- Repository contract:
docs/DEVELOPER_CONTRACT.md - Access model (team rights):
docs/REBAC.md - Contribution workflow:
docs/CONTRIBUTING.md