{"id":50481111,"url":"https://github.com/however-yir/forgepilot-studio","last_synced_at":"2026-06-01T17:31:57.921Z","repository":{"id":350380460,"uuid":"1205811206","full_name":"however-yir/forgepilot-studio","owner":"however-yir","description":"AI engineering execution workbench for dev teams - auditable task workflows, multi-model support, local/cloud/enterprise deployment.","archived":false,"fork":false,"pushed_at":"2026-05-22T08:27:01.000Z","size":7770,"stargazers_count":22,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T12:41:08.479Z","etag":null,"topics":["agent-platform","ai-agent","developer-tools","fastapi","kubernetes","llm","python","react"],"latest_commit_sha":null,"homepage":"https://however-yir.github.io/projects/forgepilot-studio/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/however-yir.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-09T09:51:35.000Z","updated_at":"2026-05-22T07:57:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/however-yir/forgepilot-studio","commit_stats":null,"previous_names":["however-yir/openagent-platform","however-yir/forgepilot-studio"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/however-yir/forgepilot-studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/however-yir%2Fforgepilot-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/however-yir%2Fforgepilot-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/however-yir%2Fforgepilot-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/however-yir%2Fforgepilot-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/however-yir","download_url":"https://codeload.github.com/however-yir/forgepilot-studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/however-yir%2Fforgepilot-studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33786896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-platform","ai-agent","developer-tools","fastapi","kubernetes","llm","python","react"],"created_at":"2026-06-01T17:31:57.143Z","updated_at":"2026-06-01T17:31:57.915Z","avatar_url":"https://github.com/however-yir.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n# ForgePilot Studio\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/forgepilot-logo.svg\" alt=\"ForgePilot Studio Logo\" width=\"360\"\u003e\n  \u003ch1 align=\"center\" style=\"border-bottom: none\"\u003eForgePilot Studio\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n面向研发团队的可审计 AI 工程执行工作台。\n\u003c/p\u003e\n\n\u003e **[OpenHands](https://github.com/OpenHands/OpenHands) 深度分叉 (deep fork)，在 Agent 与 runtime 基础上自研：**\n\u003e **控制平面** (Plan→Execute→Verify→Report) · **任务台** · **Policy / Execution Harness** · **审计回放** · TeamSpace RBAC · Cost Thresholds · MCP Tool Registry · Private Deployment\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.12%2B-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white\" alt=\"Python\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/FastAPI-Control%20Plane-009688?style=for-the-badge\u0026logo=fastapi\u0026logoColor=white\" alt=\"FastAPI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-Operator%20Console-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=black\" alt=\"React\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Runtime-Docker%20%2F%20K8s-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" alt=\"Runtime\"\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"https://github.com/however-yir/forgepilot-studio/actions/workflows/forgepilot-ci.yml/badge.svg\" alt=\"CI\"\u003e\n\u003c/div\u003e\n\n---\n\n## 产品预览\n\nForgePilot Studio 把”创建任务 → 执行命令 → 修改代码 → 验证测试 → 审计回放”收束成团队可治理的工程执行链路。它是 [OpenHands](https://github.com/OpenHands/OpenHands) 的深度分叉 (deep fork)，继承 Agent 与 runtime 基础，同时自研**控制平面**、**任务台**、**审计回放**、团队权限、成本阈值、MCP 工具管理和私有化配置。\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"33%\"\u003e\n      \u003cimg src=\"docs/assets/screenshots/task-console.png\" alt=\"ForgePilot 任务台截图\"\u003e\n      \u003cbr\u003e\n      \u003cstrong\u003e任务台\u003c/strong\u003e\n      \u003cbr\u003e\n      \u003csub\u003e计划、执行、验证、报告四段闭环，默认展示任务状态而不是空白聊天。\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"33%\"\u003e\n      \u003cimg src=\"docs/assets/screenshots/runtime-log.png\" alt=\"ForgePilot 运行日志与审计回放截图\"\u003e\n      \u003cbr\u003e\n      \u003cstrong\u003e运行日志 / 审计回放\u003c/strong\u003e\n      \u003cbr\u003e\n      \u003csub\u003e模型响应、命令、文件修改、工具调用和验证结果统一进入可追溯时间线。\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"33%\"\u003e\n      \u003cimg src=\"docs/assets/screenshots/model-config.png\" alt=\"ForgePilot 模型配置截图\"\u003e\n      \u003cbr\u003e\n      \u003cstrong\u003e模型配置\u003c/strong\u003e\n      \u003cbr\u003e\n      \u003csub\u003e支持 OpenAI-compatible gateway、Ollama、本地模型和团队私有网关。\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### 任务回放 GIF\n\n![ForgePilot 任务回放 GIF](docs/assets/screenshots/demo.gif)\n\n关键文档：\n\n- [Evidence Pack](docs/evidence/README.md)：汇总运行路径、截图、CI、发布和工程证据。\n- [差异说明](docs/fork-differentiation.md)：说明哪些能力来自 OpenHands，哪些是 ForgePilot 新增或深改。\n- [上游同步策略](docs/upstream-sync.md)：说明同步策略、保留 `openhands/` 包名的原因、命名空间迁移和冲突处理。\n- [模块职责与测试清单](docs/forgepilot-module-map.md)：梳理 `openhands/forgepilot/*` 的职责和测试覆盖。\n- [Execution Harness](docs/forgepilot-execution-harness.md)：说明 runtime action 前后的 policy、confirm、observation 和 audit 包装层。\n- [本地模型与网关启动指引](docs/local-models-and-gateways.md)：覆盖 Ollama、LiteLLM、OpenAI-compatible gateway 和 Preview 演示路径。\n- [Preview Release 草稿](docs/forgepilot-preview-release.md)：固定“基于 OpenHands 深改”的发布口径和发布前检查项。\n- [Star Graph Integration](docs/star-graph-integration.md)：记录迁入 `third_party/star-graph` 的 ComfyUI Java client。\n\n## 矩阵角色\n\n`ForgePilot Studio` 是 however-yir AI 工程作品矩阵中的“AI 工程执行工作台”，负责展示基于 OpenHands 深改后的控制平面、任务台、团队权限、审计回放、成本阈值、MCP 工具治理和私有化配置。完整项目矩阵见 [docs/project-matrix.md](docs/project-matrix.md)。\n\n---\n\n## 目录\n\n- [产品预览](#产品预览)\n- [矩阵角色](#矩阵角色)\n- [1. 项目定位](#1-项目定位)\n- [2. 与上游项目的差异化方向](#2-与上游项目的差异化方向)\n- [3. 功能全景](#3-功能全景)\n- [4. 架构总览](#4-架构总览)\n- [5. 项目结构](#5-项目结构)\n- [6. 快速开始](#6-快速开始)\n- [7. 配置说明](#7-配置说明)\n- [8. 部署方式](#8-部署方式)\n- [9. 深度改造路线图](#9-深度改造路线图)\n- [10. 依赖治理](#10-依赖治理)\n- [11. 安全与运维基线](#11-安全与运维基线)\n- [12. FAQ](#12-faq)\n- [13. 协议与来源](#13-协议与来源)\n\n---\n\n## 1. 项目定位\n\n`ForgePilot Studio` 是面向研发团队的可审计 AI 工程执行工作台。它以“可审计的智能研发执行链路”为核心，更像团队内部的 AI 工程控制台，而不是单纯的聊天式代码助手。\n\n核心能力：\n\n- 工程任务执行：命令运行、代码编辑、补丁生成、验证闭环。\n- 工作流编排：把需求拆成计划、执行、检查、回放四个阶段。\n- 多模型接入：兼容 OpenAI 风格网关、Ollama、本地模型和云端模型。\n- 多运行形态：CLI、本地控制台、容器运行、Kubernetes 部署。\n- 扩展工具接入：通过 MCP、脚本插件和自定义工具链连接团队系统。\n- 过程治理：会话状态、轨迹回放、成本阈值、审计日志与权限边界。\n\n该仓库的目标是提供一套可长期维护、可团队化部署、可二次开发的智能工程平台骨架。\n\n---\n\n## 2. 与上游项目的差异化方向\n\n本仓库正在从通用开源 Agent 项目演进为独立的工程执行产品。ForgePilot 明确承认并继承 OpenHands 的 Agent、runtime、LLM/MCP 基础能力，同时把自研价值集中在研发团队使用时必须要有的治理层和产品层。\n\n当前已完成或明确的差异化方向：\n\n1. 控制平面：`Plan -\u003e Execute -\u003e Verify -\u003e Report` 任务协议、验收标准、变更边界和执行策略。\n2. 任务台：默认首页聚焦任务队列、阶段状态、失败过滤、预算和私有化部署向导。\n3. 团队权限：`TeamSpace`、owner/admin/member/viewer 权限矩阵和空间隔离模型。\n4. 审计回放：统一 `AuditEvent`、timeline、JSONL/CSV 导出和交付报告证据链。\n5. 成本阈值：把 `max_budget_per_task` 与会话 metrics、任务预算视图连接起来。\n6. MCP 工具管理：工具 registry、权限、mock、schema、健康状态、调用记录和输出摘要。\n7. Policy / Execution Harness：围绕 terminal、file、git、MCP action 增加权限、确认、统一 observation 和 audit payload。\n8. 私有化配置：集中管理 DB、Redis、Ollama、LLM 网关、镜像与工作区路径。\n9. 上游同步：保留 `openhands/` 包名作为迁移期兼容层，ForgePilot 专属能力放在 `openhands/forgepilot/*`。\n\n上游来源参考：\n\n- Upstream Repo: [OpenHands/OpenHands](https://github.com/OpenHands/OpenHands)\n- 差异说明：[docs/fork-differentiation.md](docs/fork-differentiation.md)\n- 上游同步策略：[docs/upstream-sync.md](docs/upstream-sync.md)\n\n---\n\n## 3. 功能全景\n\n### 3.1 运行模式\n\n- `CLI Mode`：终端驱动，适合脚本化、CI 和批处理任务。\n- `Operator Console`：可视化会话、任务进度、运行日志和调试信息。\n- `Container Runtime`：隔离执行环境，降低本机污染和权限风险。\n- `Kubernetes Runtime`：支持团队化部署、弹性扩展和资源配额。\n\n### 3.2 平台能力\n\n- 模型配置：`model`、`base_url`、`api_key`、重试、超时与预算。\n- 会话与轨迹：会话上下文、任务步骤、执行日志、结果回放。\n- 工具扩展：MCP（SSE/SHTTP/stdio）、自定义脚本、内部系统 API。\n- 持久化：SQLite（默认）/ PostgreSQL（生产）。\n- 运维控制：Redis、审计日志、限流策略、健康检查与告警入口。\n\n---\n\n## 4. 架构总览\n\n```mermaid\nflowchart LR\n  U[\"Developer Team\"] --\u003e C[\"CLI / Operator Console\"]\n  C --\u003e A[\"ForgePilot Control Plane\"]\n  A --\u003e P[\"Planner \u0026 Policy Layer\"]\n  P --\u003e M[\"LLM Gateway / Provider\"]\n  P --\u003e R[\"Runtime Sandbox\"]\n  P --\u003e D[\"SQLite or PostgreSQL\"]\n  P --\u003e K[\"MCP \u0026 Tool Servers\"]\n  P --\u003e S[\"Workspace / File Store\"]\n```\n\n---\n\n## 5. 项目结构\n\n```text\n.\n├── README.md\n├── .env.fork.example\n├── .env.local.example\n├── LICENSE\n├── LICENSE-OPENAGENT-COMMUNITY.md\n├── config.template.toml\n├── docker-compose.yml\n├── docs/\n├── frontend/\n├── openhands/\n├── openhands-ui/\n├── enterprise/\n├── third_party/star-graph/\n└── tests/\n```\n\n\u003e 说明：底层 Python 包名仍保留 `openhands/`，方便先稳定运行与测试。后续可按路线图逐步做命名空间迁移。\n\n---\n\n## 6. 快速开始\n\n### 6.1 环境要求\n\n- Python `3.12+`\n- Node.js `22+`\n- Docker `24+`\n\n### 6.2 容器启动\n\n```bash\ncp .env.fork.example .env\n# 修改 LLM_API_KEY / LLM_BASE_URL 等关键项\n\ndocker compose up -d --build\n```\n\n本地模型、Ollama、LiteLLM 和 OpenAI-compatible gateway 的完整指引见 [docs/local-models-and-gateways.md](docs/local-models-and-gateways.md)。\n\n### 6.3 源码启动（示例）\n\n```bash\n# backend\npoetry install\n\n# frontend\ncd frontend\nnpm install\nnpm run dev\n```\n\n---\n\n## 7. 配置说明\n\n建议优先维护 `.env.fork.example`：\n\n- `LLM_MODEL` / `LLM_API_KEY` / `LLM_BASE_URL`\n- `OLLAMA_BASE_URL`\n- `DB_HOST` / `DB_PORT` / `DB_NAME` / `DB_USER` / `DB_PASS`\n- `REDIS_HOST` / `REDIS_PORT` / `REDIS_PASSWORD`\n- `FORGEPILOT_IMAGE_NAME` / `FORGEPILOT_CONTAINER_NAME`\n\n兼容说明：部分底层运行时变量仍沿用上游命名，迁移期通过模板和文档统一收口。\n\n---\n\n## 8. 部署方式\n\n### 8.1 单机 Docker Compose\n\n适合开发、演示和 PoC 场景。\n\n### 8.2 Kubernetes\n\n适合团队生产场景，建议配置：\n\n- Ingress + TLS\n- Secret 管理\n- 资源请求/限制\n- 日志与监控\n- 模型调用预算与租户隔离\n\n---\n\n## 9. 深度改造路线图\n\n建议按五阶段推进：\n\n1. 品牌层：名称、Logo、README、仓库描述、组件包名。\n2. 配置层：环境模板、密钥治理、配置校验、镜像参数化。\n3. 产品层：任务台、审计台、工具市场、团队权限、成本面板。\n4. 架构层：命名空间迁移、插件系统、CI 完整化、可观测性。\n5. 发布层：Preview release、演示 GIF、上游同步记录和私有化部署说明。\n\n详细清单作为独立文档维护，README 仅保留阶段概览：\n\n- [docs/forgepilot-differentiation-roadmap.zh-CN.md](docs/forgepilot-differentiation-roadmap.zh-CN.md)\n- [docs/forgepilot-module-map.md](docs/forgepilot-module-map.md)\n- [docs/local-models-and-gateways.md](docs/local-models-and-gateways.md)\n- [docs/forgepilot-preview-release.md](docs/forgepilot-preview-release.md)\n\n---\n\n## 10. 依赖治理\n\n- 每周处理安全补丁（patch）。\n- 每月评估次版本（minor）。\n- 每季度评估主版本（major）。\n- 升级前后均执行 smoke test 与回归测试。\n- 高风险依赖加入兼容矩阵与回滚说明。\n\n---\n\n## 11. 安全与运维基线\n\n- 禁止提交真实密钥。\n- 生产环境禁用弱口令。\n- 外网统一 HTTPS。\n- 关键操作记录审计日志。\n- 设置模型调用预算与限流。\n- 沙箱权限、文件访问和网络访问必须有明确边界。\n\n---\n\n## 12. FAQ\n\n### Q1：是否必须立刻修改所有包名与命名空间？\n\n不必须。建议先完成展示层、配置层和部署层改造，再进行代码级全量 rename。\n\n### Q2：如何切换自定义镜像仓库？\n\n在 `.env` 中配置：\n\n- `FORGEPILOT_IMAGE_NAME`\n- `FORGEPILOT_CONTAINER_NAME`\n- `AGENT_SERVER_IMAGE_REPOSITORY`\n- `AGENT_SERVER_IMAGE_TAG`\n\n### Q3：是否支持离线/半离线部署？\n\n支持。可通过私有制品仓库、私有镜像仓库和本地模型服务进行离线发布。\n\n---\n\n## 13. 协议与来源\n\n- 主许可证：见 [LICENSE](LICENSE)。\n- 许可边界：见 [LICENSING.md](LICENSING.md)。\n- 社区补充协议：见 [LICENSE-OPENAGENT-COMMUNITY.md](LICENSE-OPENAGENT-COMMUNITY.md)。\n- 上游来源参考：[OpenHands/OpenHands](https://github.com/OpenHands/OpenHands)。\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003e回到顶部\u003c/a\u003e)\u003c/p\u003e\n\n## Baseline Maintenance\n\n### Environment\n\n- Put runtime credentials in environment variables.\n- Use `.env.example` as the configuration template.\n\n### Local Verification\n\n```bash\npytest tests/unit/forgepilot/test_public_module_contract.py\ncd frontend \u0026\u0026 npm ci \u0026\u0026 npm run lint \u0026\u0026 npm run test \u0026\u0026 npm run build\n```\n\n### CI\n\n- `forgepilot-ci.yml`, `py-tests.yml`, `fe-unit-tests.yml`, `ui-build.yml`, and `e2e-tests.yml` cover the main backend, frontend, and workflow checks.\n\n### Repo Hygiene\n\n- Keep generated files (`dist/`, `build/`, `__pycache__/`, `.idea/`, `.DS_Store`) out of version control.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhowever-yir%2Fforgepilot-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhowever-yir%2Fforgepilot-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhowever-yir%2Fforgepilot-studio/lists"}