88hours/helix-community

GitHub: 88hours/helix-community

Helix 是一个基于AI的自主事件响应系统,能自动监控错误追踪器、生成测试用例并通过TDD循环编写代码修复,实现从崩溃到修复建议的全流程自动化。

Stars: 0 | Forks: 0

# Helix [![CircleCI](https://dl.circleci.com/status-badge/img/gh/88hours/helix-community/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/88hours/helix-community/tree/main) [![License](https://img.shields.io/badge/license-Apache%202.0%20%2B%20commercial%20restrictions-blue)](LICENSE) 自主事件响应 —— 从生产环境崩溃到修复建议,全程无需惊动任何人。 Helix 监控你的错误追踪器。当出现 bug 时,它会编写一个失败的测试,运行 TDD 循环以生成通过的修复,并打开一个 pull request。在合并任何内容之前,你的团队需要在 Slack 中批准。 **流程:** Crash Handler → QA Agent → Dev Agent → Notifier → 人工审核 ## 工作原理 1. **Crash Handler** —— 接收 Sentry 或 Rollbar webhook,提取崩溃上下文,并发布 `crash_analysed` 事件 2. **QA Agent** —— 读取崩溃报告,编写失败的测试用例,打开 GitHub Issue,发布 `test_case_generated` 3. **Dev Agent** —— 克隆仓库,使用 TDD 循环编写修复(Claude Code CLI 运行失败的测试,最多迭代 3 次),提交,并打开 GitHub PR 4. **Notifier** —— 发送包含 PR 链接和崩溃上下文的 Slack 消息;如果 TDD 循环耗尽所有重试次数,则附带完整推理进行升级 ## 快速开始 ``` git clone https://github.com/88hours/helix.git cd helix cp .env.example .env # fill in your keys docker compose up --build ``` ## Claude Code 此仓库附带一个 [Claude Code](https://claude.ai/code) 技能,以交互方式引导贡献者完成本地设置。如果你已安装 Claude Code,请打开仓库并运行: ``` /setup ``` Claude 将检查你的前置条件,帮助你填写 `.env`,启动服务栈,并运行测试套件 —— 逐步进行。 然后将你的 Sentry 或 Rollbar webhook 指向 `http://your-host:8000/webhook/sentry`(或 `/webhook/rollbar`)。 ## 环境要求 - Docker + Docker Compose - [Anthropic API key](https://console.anthropic.com/) **或** 本地运行的 [Ollama](https://ollama.com/) 实例 - 具有 `repo` 权限的 GitHub personal access token - Sentry 或 Rollbar 账户(或两者皆有) - 具有 `chat:write` 权限的 Slack bot(强烈推荐) - 已安装并认证的 [Claude Code CLI](https://claude.ai/code)(Dev Agent TDD 循环所必需) ## 配置 所有配置均通过环境变量进行。将 `.env.example` 复制为 `.env` 并填入你的值。 | 变量 | 必填 | 描述 | |---|---|---| | `ANTHROPIC_API_KEY` | 仅限 Anthropic | Anthropic API key | | `REDIS_URL` | 是 | Redis 连接 URL | | `GITHUB_TOKEN` | 是 | 具有 repo 权限的 GitHub PAT | | `HELIX_GITHUB_REPO` | 是 | 用于修复 bug 的仓库(`owner/name`)| | `SENTRY_WEBHOOK_SECRET` | 二选一 | Sentry client secret | | `ROLLBAR_ACCESS_TOKEN` | 二选一 | Rollbar project read token | | `SLACK_BOT_TOKEN` | 推荐 | Bot token(`xoxb-...`)| | `SLACK_SIGNING_SECRET` | 推荐 | Slack app signing secret | | `SLACK_APPROVAL_CHANNEL` | 推荐 | 用于 Slack 通知的频道 | ### 模型与提供商 所有 Agent 共享在 `config.yaml` 中设置的单个 LLM 配置。支持两种提供商: **Anthropic(默认)** ``` HELIX_PROVIDER=anthropic HELIX_MODEL=claude-sonnet-4-6 ``` **Ollama(本地)** ``` HELIX_PROVIDER=ollama HELIX_MODEL=llama3.2 HELIX_OLLAMA_BASE_URL=http://localhost:11434 # optional, this is the default ``` Ollama 使用标准的 OpenAI 兼容 `/v1/chat/completions` 端点 —— 无需 API key。 ## 包含内容 - Sentry 和 Rollbar webhook 接收 - 崩溃分析和测试用例生成 - 完整 TDD 循环:克隆仓库,运行失败的测试,使用 Claude Code CLI 迭代修复,打开 PR - 在第一次迭代时,将修复建议作为评论发布到 GitHub Issue - 包含崩溃上下文和 Issue 链接的 Slack 通知 - 通过 Docker Compose 自托管 ## Community 版与 Cloud 版 | 功能 | Community(本仓库)| Helix Cloud | |---|---|---| | 全部 4 个 Agent | 是 | 是 | | Sentry + Rollbar | 是 | 是 | | GitHub Issues + 修复建议 | 是 | 是 | | TDD 循环(clone → test → fix → PR)| 是 | 是 | | 自动创建 PR | 是 | 是 | | Slack 通知 | 是 | 是 | | 自托管 | 是 | 是 | | React 仪表板 | — | 是 | | Auth0 / SSO | — | 是 | | 每个项目凭证 | — | 是 | | GitHub App(多仓库)| — | 是 | | OpenTelemetry 追踪 | — | 是 | | LangSmith 评估 | — | 是 | | 托管服务 | — | 是 | ## 支持的语言 | 语言 | 测试格式 | |---|---| | Python | pytest | | JavaScript / TypeScript | Jest | | Ruby | RSpec | | Go | go test | | Java / Kotlin | JUnit | ## 架构 ``` agents/ crash_handler/ FastAPI app — receives webhooks, runs crash analysis qa/ Subscriber — generates test cases, opens GitHub Issues dev/ Subscriber — TDD loop: clone repo, run failing test, fix with Claude Code CLI, open PR notifier/ Subscriber — sends Slack notifications core/ config.py Loads config.yaml + env var overrides events.py Redis Pub/Sub publish/subscribe state.py Redis read/write helpers, keyed by incident_id models.py Pydantic models shared across agents llm.py Anthropic / Ollama wrapper; `complete_tdd()` spawns Claude Code CLI subprocess integrations/ sentry.py Sentry webhook parsing rollbar.py Rollbar webhook parsing github.py GitHub Issues slack.py Slack messages ``` Agent 通过 Redis Pub/Sub 事件进行通信。状态存储在 Redis 中,以 `incident_id` 为键。没有任何 Agent 直接调用另一个 Agent。 ## 运行单个服务 ``` # 仅 Crash Handler(webhook receiver) docker compose up redis crash_handler # 监听特定服务的日志 docker compose logs -f dev # 不使用 Docker 运行(用于开发) pip install -e "." uvicorn agents.crash_handler.main:app --reload # crash handler python -m agents.qa.main # QA agent python -m agents.dev.main # Dev agent python -m agents.notifier.main # Notifier ``` ## 联系方式 一般咨询、错误报告或反馈 —— [hello@88hours.io](mailto:hello@88hours.io) 对 Helix Cloud(托管服务、仪表板、企业功能)感兴趣?[与我们交谈](mailto:hello@88hours.io?subject=Helix%20Cloud%20enquiry)。 ## 许可证 Helix 采用修改版的 Apache 2.0 许可证,包含额外的商业限制。 要点: - **个人和商业自托管使用**是允许的。 - **多租户部署**(每个租户一个工作区)需要从 88hours 获取商业许可证。 - **仪表板品牌**(`dashboard/` 或 `web/` 中的徽标 / 版权)不得移除。 完整条款请参阅 [LICENSE](LICENSE)。如需商业许可,请联系 [hello@88hours.io](mailto:hello@88hours.io)。
标签:AIOps, Anthropic, Apache License, CIS基准, Claude, CVE检测, DLL 劫持, DNS解析, Docker, Docker Compose, GitHub Actions, Rollbar, Sentry, Slack, TDD, Webhook, 代码生成, 代码补丁, 力导向图, 大语言模型, 安全防御评估, 容器化部署, 开源框架, 开源项目, 持续交付, 持续集成, 搜索引擎查询, 故障修复, 测试驱动开发, 渗透测试工具, 生产环境, 自主事故响应, 自动化运维, 自动笔记, 请求拦截, 逆向工具, 错误追踪