scitix/siclaw
GitHub: scitix/siclaw
面向 SRE 团队的 AI 驱动只读基础设施诊断平台,通过四阶段工作流实现证据收集、假设验证和根因分析。
Stars: 87 | Forks: 8

# Siclaw
**面向 SRE 团队的只读调查助手**
[](https://www.npmjs.com/package/siclaw)
[](https://github.com/scitix/siclaw/actions/workflows/ci.yml)
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
[](LICENSE)
[](https://join.slack.com/t/siclaw-scitix/shared_invite/zt-3rrsoc2ic-JIfbfvT1_04sqgQorSRfmw)
[官网](https://www.siclaw.ai) | [文档](https://docs.siclaw.ai) | [Slack](https://join.slack.com/t/siclaw-scitix/shared_invite/zt-3rrsoc2ic-JIfbfvT1_04sqgQorSRfmw)
Siclaw 是一个面向 DevOps 和 SRE 团队的开源 AI agent。它专为**只读基础设施诊断**而构建:收集证据、形成假设、进行验证,并返回清晰的根因分析,而不会直接更改您的环境。只需用自然语言描述问题,Siclaw 就会从终端、Web UI 或您团队的聊天频道中展开调查。
Deep investigation: diagnosing a CrashLoopBackOff in seconds
## 功能特性
- **深度调查** — 包含证据收集、假设测试和根因分析的 4 阶段工作流
- **调查记忆** — 从过往事件中学习,以改进未来的调查
- **默认只读** — 仅调查并建议后续步骤,不直接更改您的环境
- **团队工作流** — 共享 Web UI、凭证、频道、触发器和定时巡检
- **可复用技能** — 将重复的诊断 playbook 转化为可审查的 runbook
- **可扩展** — 通过 [MCP](https://modelcontextprotocol.io) 连接外部工具和数据源
- **多渠道访问** — 通过终端、Web UI 或聊天频道使用 Siclaw
## 系统架构

## 环境要求
- **Node.js >= 22.12.0** — [下载](https://nodejs.org/)
- **npm** — 随 Node.js 自带
- **kubectl** — 可选,仅当您希望 Siclaw 调查 Kubernetes 集群时需要
## 快速开始
Siclaw 支持三种部署模式。对于本地使用,请从一个专用工作目录启动,因为 Siclaw 会将大部分运行时数据存储在启动位置相对的 `.siclaw/` 目录中。
```
mkdir -p ~/siclaw-work
cd ~/siclaw-work
```
### 1. TUI 模式 — 个人、本地、最低门槛
直接在您的终端中运行 agent。无需服务器,无需数据库。所有操作默认均为只读——在您的工作站上运行非常安全。
```
# 全局安装
npm install -g siclaw
# 运行(交互式 — 首次启动时提示选择 LLM provider)
siclaw
# 单次运行
siclaw --prompt "Why is pod nginx-abc in CrashLoopBackOff?"
# 继续上次会话
siclaw --continue
```
从源码构建
```
git clone https://github.com/scitix/siclaw.git && cd siclaw
npm ci && npm run build:web && npm run build
npm link # register `siclaw` command globally
siclaw # TUI mode
siclaw --prompt "..." # single-shot mode
# 卸载:npm unlink siclaw -g
```
### 2. 本地服务器 — 虚拟机或笔记本电脑,推荐日常使用
由 SQLite 支持的轻量级 Web UI。无需 MySQL,无需 Docker。
```
npm install -g siclaw
# 启动服务器
siclaw local
# 打开 http://localhost:3000
# 登录:admin / admin(默认凭据)
# 在 Models 中配置 providers
# 在 Credentials 中导入 kubeconfigs
```
从源码构建
```
git clone https://github.com/scitix/siclaw.git && cd siclaw
npm ci && npm run build:web && npm run build
npm link # register `siclaw` command globally
siclaw local # start local server
# 卸载:npm unlink siclaw -g
```
首次启动时,Siclaw 会创建一个本地管理员账户:
- 用户名:`admin`
- 密码:`admin`
如果您想使用不同的初始密码,请在首次启动前设置 `SICLAW_ADMIN_PASSWORD`。
### 3. Kubernetes — 团队/企业
生产环境部署使用 Helm 以及三个容器镜像:`gateway`、`agentbox` 和 `cron`。
如果您使用自己的镜像仓库,请构建并推送镜像:
```
make docker REGISTRY=registry.example.com/myteam TAG=latest
make push REGISTRY=registry.example.com/myteam TAG=latest
```
然后使用 MySQL URL 部署 chart:
```
helm upgrade --install siclaw ./helm/siclaw \
--namespace siclaw \
--create-namespace \
--set image.registry=registry.example.com/myteam \
--set image.tag=latest \
--set database.url="mysql://user:pass@host:3306/siclaw"
```
默认 chart 会在服务端口 `80` 和 NodePort `31000` 上暴露 Gateway Service。
## 配置
### TUI / CLI
- TUI 读取 `.siclaw/config/settings.json`
- 首次运行向导可以为您生成此文件
- Kubernetes 凭证应通过 `/setup` 导入
- 调查报告写入 `~/.siclaw/reports/`
最小示例:
```
{
"providers": {
"default": {
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-YOUR-KEY",
"api": "openai-completions",
"models": [{ "id": "gpt-4o", "name": "GPT-4o" }]
}
}
}
```
### 本地服务器 / Kubernetes
- 在 **Models** 页面配置提供商
- 在 **Credentials** 中导入 kubeconfig、API token 和 SSH 凭证
- 在 **Channels** 中配置 Slack、Lark、Discord 和 Telegram
- 在 **Triggers** 中创建入站 webhook 端点
- 在 **MCP Servers** 中配置 MCP 服务器
## 文档
- [入门指南](https://docs.siclaw.ai/start/getting-started)
- [CLI 与本地服务器](https://docs.siclaw.ai/install/cli)
- [Kubernetes 部署](https://docs.siclaw.ai/install/kubernetes)
- [LLM 提供商](https://docs.siclaw.ai/configuration/providers)
- [MCP 服务器](https://docs.siclaw.ai/configuration/mcp)
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| Runtime | Node.js 22+ (仅 ESM) |
| 语言 | TypeScript 5.9 |
| Agent | [pi-coding-agent](https://github.com/badlogic/pi-mono) / [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk) |
| 数据库 | MySQL 或 SQLite (通过 [sql.js](https://github.com/sql-js/sql.js)) + Drizzle ORM |
| 记忆数据库 | node:sqlite + FTS5 + bge-m3 embeddings |
| 前端 | React + Vite + Tailwind CSS |
| K8s 客户端 | @kubernetes/client-node |
| MCP | @modelcontextprotocol/sdk |
| 实时通信 | WebSocket (ws) |
## 社区
- [Slack](https://join.slack.com/t/siclaw-scitix/shared_invite/zt-3rrsoc2ic-JIfbfvT1_04sqgQorSRfmw) — 与团队和其他用户交流
- [GitHub Issues](https://github.com/scitix/siclaw/issues) — Bug 报告和功能请求
- [GitHub Discussions](https://github.com/scitix/siclaw/discussions) — 提问、想法和一般讨论
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解开发设置、架构概述和 Pull Request 指南。
想找切入点?请查看标记为 [`good first issue`](https://github.com/scitix/siclaw/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 的 issues。
## 许可证
[Apache License 2.0](LICENSE)
标签:AIOps, AI运维, ChatOps, Copilot, CrashLoopBackOff, GNU通用公共许可证, HTTPX, IT运维, MITM代理, Node.js, Socks5代理, SRE, TypeScript, 企业级安全, 偏差过滤, 只读调查, 团队协作, 基础设施诊断, 子域名突变, 安全插件, 安全治理, 开源, 故障假设验证, 故障排查, 智能助手, 根因分析, 站点可靠性工程, 系统稳定性, 自动化攻击, 运维自动化