内容
# Cerebro
**为编码代理提供合规超能力。**
[](https://go.dev/)
[](LICENSE)
Cerebro 将安全、身份、云、SaaS、工作流、策略和合规信号转换为编码代理可以通过 Go CLI、JSON HTTP、Connect RPC、SDK 助手和 MCP 查询的证据支持的上下文。
使用它帮助代理回答:
- 此更改是否可以发布?
- 哪些控件、策略、发现或批准适用?
- 存在哪些证据?
- 提出哪些补救或下一步骤是安全的?
- 哪些系统、身份和风险是连接的?
## 为您的编码代理提供合规上下文
最快的路径是启动 Cerebro,将其添加到您的代理中,通过 MCP,让代理在配置任何存储之前读取实时源数据:
```bash
make serve-dev
droid mcp add cerebro-local http://127.0.0.1:8080/api/v1/mcp --type http \
--header "Authorization: Bearer local-dev-key"
```
```text
将 Cerebro 用作此存储库的合规上下文。
调用 cerebro.sources.read,源 ID 为 github,配置
{"owner":"<owner>","repo":"<repo>","per_page":"5"},然后告诉我
存在哪些证据,适用哪些安全或合规上下文才能发布。
不要提交提供商凭证、客户名称、租户特定主机名、
帐户 ID 或实时机密值。
```
MCP 源工具(`cerebro.sources.list/check/discover/read`)通过现有的源服务访问实时提供商,不需要 Postgres、NATS 或 Neo4j。为了获得持久的证据和图形上下文,请运行 `make github-business-demo`,并使用 `GITHUB_OWNER`、`GITHUB_REPO` 和 `GITHUB_TOKEN`,然后将 `tmp/onboarding/github-receipt.json` 交给代理。
对于实时代理集成,请将您的 MCP 客户端连接到 `POST /api/v1/mcp`,并将 Cerebro 暴露为策略内存、合规证据、图形上下文和安全操作规划的源。参见 [代理上线](docs/start/agent-onboarding.md)、[MCP 原生 Droid 设置](docs/domains/mcp-droid-setup.md) 和 [代理平台合约](docs/domains/agent-platform-contract.md)。
## 从这里开始
```bash
git clone https://github.com/writer/cerebro.git
cd cerebro
make doctor
make serve-dev
```
默认情况下,本地服务器监听 `:8080`。
```bash
curl -sS http://127.0.0.1:8080/health
curl -sS http://127.0.0.1:8080/sources
```
在迭代过程中运行专注的测试,然后在广泛的 PR 之前使用 CI 对齐验证:
```bash
make test
make verify
```
对于具有 NATS JetStream、Postgres、Neo4j 和本地持有者密钥 `local-dev-key` 的持久本地堆栈:
```bash
docker compose pull
docker compose up -d
```
纯 Compose 初始化本地 Postgres 卷,带有 compose-file 密码。 onboarding Make 目标使用 `tmp/local-postgres-password`。在切换到 `make agent-onboard-e2e` 或 `make github-business-demo` 之前,运行 `docker compose down -v` 以重新创建本地卷,或运行 Make 目标并使用 `CEREBRO_LOCAL_POSTGRES_PASSWORD=cerebro` 以重用该卷。 `docker compose down -v` 删除本地堆栈数据。
## 本存储库中包含什么
- 一个围绕 `net/http`、Connect RPC 和 `cmd/cerebro` 构建的 Go 引导服务。
- 用于云、SaaS、身份、端点、漏洞、合规性和工作流信号的内置源集成。
- 源运行时同步、追加日志重放、声明/发现/报告工作流、合规控制覆盖和可选图形投影、查询和操作工具。
- 可选的 MCP、图形代理和设备身份验证的遥测表面,用于代理可读证据和控制上下文。
- 策略和 FindingRule YAML DSL 目录、生成的检测目录、SDK 助手、OpenAPI/Connect 合同、发布工件和本地验证工具。
## 选择路径
| 目标 | 从这里开始 |
| --- | --- |
| 获取最短的可运行路径 | [快速参考](docs/start/quick-reference.md) |
| 遍历本地端到端流程 | [入门](docs/start/getting-started.md) |
| 将设置交给编码代理 | [代理上线](docs/start/agent-onboarding.md) |
| 了解运行时形状和存储 | [架构](docs/reference/architecture.md) |
| 配置身份验证、租户、存储、MCP 或设备身份验证 | [配置变量](docs/reference/config-env-vars.md) 和 [.env.example](.env.example) |
| 托管或操作 Cerebro | [托管](docs/operations/hosting.md)、[运行时配置文件](docs/operations/runtime-profiles.md)、[部署就绪性](docs/operations/deployment-readiness.md)、[云部署](docs/operations/cloud-deployment.md)、[部署示例](docs/operations/deployment-examples.md) 和 [操作手册](docs/operations/operations-runbook.md) |
| 探索 JSON HTTP 或 Connect API | [API 参考](docs/reference/api-reference.md)、`api/openapi.yaml` 和 `proto/cerebro/v1/bootstrap.proto` |
| 使用 CLI | [CLI 参考](docs/reference/cli.md) |
| 浏览内置集成 | [源目录](docs/reference/sources.md) |
| 使用 SDK 助手 | [Python SDK](sdk/python/README.md)、[TypeScript SDK](sdk/typescript/README.md) 和 `sources/sdk` |
| 持久化和同步源运行时 | [源运行时指南](docs/domains/source-runtime-guide.md) |
| 处理图形行为 | [图形操作](docs/domains/graph-operations.md) |
| 设计特定于角色的图形视图 | [角色视图镜头](docs/domains/persona-view-lenses.md) |
| 集成 MCP 客户端 | [MCP 原生 Droid 设置](docs/domains/mcp-droid-setup.md) |
| 集成端点遥测 | [端点安全平台集成](docs/domains/endpoint-security-platform-integration.md) |
| 编写策略、控制映射或发现规则 | [策略](docs/domains/policies.md)、[合规控制](docs/domains/compliance-controls.md)、`policies/`、`internal/findingdsl` 和 `internal/findings` |
| 贡献代码或文档 | [开发](docs/engineering/development.md)、[非目标](docs/engineering/non-goals.md) 和 Makefile |
## 可选文档站点
Markdown 文档直接在 GitHub 上工作。要在本地浏览它们:
```bash
python3 -m pip install mkdocs
mkdocs serve
```
站点入口点是 [docs/index.md](docs/index.md),`mkdocs.yml` 定义了导航。
## 运行时边界
此公共存储库是运行时行为、CLI/API 合同、源目录、配置语义和发布工件的权威来源。环境特定的部署细节、堆栈配置、帐户连接、主机名和上线程序故意放在此公共存储库之外。
向部署存储库的交接是发布负载:容器镜像加上 `cerebro-runtime-contract.json`。将该合同视为公共运行时版本和环境特定推广/部署自动化之间的桥梁。
易变细节应保留在其源真实性文件中,并从此处链接:`docs/reference/config-env-vars.md` 中的配置变量、`api/openapi.yaml` 中的 API 形状、`sources/*/catalog.yaml` 中的源功能和 `cerebro-runtime-contract.json` 中的发布/部署交接数据。
在更改存储形状、源 CDK 边界、图形/Cypher 行为、发现工作流合同、操作/运行时响应语义、平台/安全命名空间边界或公共产品语言之前,请参阅 [非目标](docs/engineering/non-goals.md)。
## 常用命令
```bash
make build # 编译 ./bin/cerebro
make serve-dev # 运行本地服务器并确认开发模式退出
make secure-business-demo # 运行本地安全上线并写入收据
make github-business-demo # 从真正的 GitHub 存储库中播种持久图上下文
make agent-onboard # 运行上线计划并写入删减收据
make agent-onboard-e2e # 运行 Docker 支持的本地上线工作流
make test # 运行测试
make check # 构建、测试、lint、proto lint、结构检查、架构测试
make verify # CI 对齐本地验证
make readme-check # README 和文档漂移检查
make docs-drift-check
make oss-audit # 公共存储库卫生扫描
cerebro deploy preflight # 发出删减的部署就绪收据
```
顶级命令是 `serve`、`version`、`source`、`source-runtime`、`finding-rule`、`graph`、`orchestrator`、`vulndb`、`closeout` 和 `deploy`。
对于策略或合规控制工作,运行 `make finding-dsl-check`、`make policy-rule-check`、`make detection-catalog-check` 和 `make control-index-check`(如适用)。控制扩展包在 [合规控制](docs/domains/compliance-controls.md) 中有文档记录,并使用 `--init-extension`、`--extension`、`--profile`、`--output` 和 `--write` 工作流。
## 堆栈
| 组件 | 技术 |
| --- | --- |
| 语言 | Go 1.26+(`go1.26.4` 工具链) |
| HTTP 服务器 | Go `net/http` `ServeMux` |
| RPC | Connect |
| CLI | `cmd/cerebro` 下的标准 Go CLI |
| 追加日志 | NATS JetStream |
| 状态存储 | Postgres |
| 图形存储 | Neo4j/Aura |
| 验证 | `go test`、`golangci-lint`、Buf、Spectral、目录检查、策略规则检查、控制索引检查、README 漂移检查、OSS 审计、自定义结构检查、架构测试 |
## 许可证
Apache 2.0;参见 [LICENSE](LICENSE)。