owainlewis/factory

GitHub: owainlewis/factory

Factory 是一个 AI 编程智能体编排系统,通过监听工单队列自动驱动智能体在代码仓库上持续完成开发工作,消除人工协调环节。

Stars: 89 | Forks: 17

# Factory [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/owainlewis/factory/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-2f6feb.svg)](LICENSE) Factory 让编程智能体在代码仓库上持续工作,而无需人类在终端中 编排每一个步骤。 它监视一个受信任的工单队列。当满足配置的条件时,Factory 会创建一个持久任务,准备一个隔离的工作区,并将一个 Markdown 工作流交给智能体。智能体使用诸如 `gh` 和 `git` 之类的常规工具来完成 工作。当没有匹配项时,Factory 什么也不做,也不会消耗任何模型 token。 ![人类意图进入受信任的工单队列;Factory 运行隔离的工作并产出证据;人工审查把控团队的合并关卡;交付的变更将信号返回给队列](https://static.pigsec.cn/wp-content/uploads/repos/cas/0d/0d9ee232602314e072d074ceac8450f937752bbc55a86841883d7d800dee5e3d.svg) ## 为什么会有 Factory 编程智能体能够实现日益重要的变更,但大多数团队 仍然将它们作为一次性的终端会话来运行。每个开发者使用不同的 prompt、技能、检查和交接规范。人类仍然需要负责 留意准备就绪的工作、启动智能体、等待 CI、转发审查 反馈,并记得重试。 Factory 使这一过程变得可重复。它扮演着类似于 CI/CD 的角色:工作 进入一个一致的系统,接受相同的检查和反馈循环, 并持续流转,直到达成人类决策。 目标不是取代开发者。人类决定什么最重要,提供 产品上下文,审查结果,并对交付的内容负责。 Factory 消除了这些决策之间的人工协调。 ## 工单即控制平面 Issue 追踪器是人类与智能体协同的枢纽。一张工单记录了 问题、范围、验收标准、决策、状态和证据。将一张 工单移至配置的状态,即代表明确请求智能体执行一次任务。 这使得工单质量成为了核心支撑。一张语焉不详的工单无论是对于 人类还是智能体都未准备就绪。一个分类工作流可以检查代码库、重现 问题、澄清范围、添加可测试的验收标准,并请求 缺失的最小人类决策。一旦工单变得清晰,它便成为了实现的 规格说明。 ![一张示例工单流转于规格说明、人工审批、实现与人工审查之间,其中反馈请求进行另一次实现过程](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a13c29b1d2b97b2560dace252367caf93e328ba9e273b8f6e5a77a1b03cfb11f.svg) 此示例中的状态名称并非 Factory 内置。它们只是普通的 Issue 标签和仓库所有的 prompt。你也可以在 GitHub Project 面板上跟踪它们以便自行可视化;Factory 不会读取该 面板。 ## 刻意精简的模型 Factory 有四个概念: | 概念 | 职责 | | --- | --- | | Source(来源) | 工单队列和控制平面。v1 版本中为 GitHub。 | | Trigger(触发器) | 状态、标签或计划条件。 | | Workflow(工作流) | 描述结果和策略的纯 Markdown prompt。 | | Worker(工作器) | 智能体 runtime、sandbox、超时和并发限制。 | 这种边界是刻意为之的: - Factory 负责轮询、信任检查、去重、持久化声明、 并发、超时、sandbox 生命周期、监控、取消、历史记录 和恢复。 - 工作流和智能体负责自适应的工程工作:阅读 issue、 检查代码、澄清需求、实现变更、使用 `gh` 和 `git`、发起 pull request、响应 CI 和审查,以及更新 工单。 Factory 不编码固定的 SDLC、工作流图或确定性的 GitHub 效果。Trigger 的意义仅在于:**当此条件为真时,运行此 prompt**。 ## 人工审查是交付边界 Factory 会在执行前立即重新验证实时源状态,但不会 按作者过滤工单。Source trigger 的信任边界在于 任何能够满足其配置条件的人(例如分配标签或 更改 Project 状态),而不是谁打开了工单。请勿使用其 配置条件可由不受信任的人员更改的 source。无论 如何,工单正文、评论、关联的 pull request 和附件均保持为不受信任的输入。请使用 worker 无法绕过的受限凭证和受保护分支。 由 Factory 创建的软件 pull request 仍需等待人工审查。Factory 及其 默认工作流绝不会合并它们,也不会启用自动合并。执行合并的 人仍需对交付的内容负责。 如需了解完整的信任与隔离模型,请阅读 [运维指南](docs/operations.md)和[安全策略](SECURITY.md)。 ## 开始使用 安装 Rust、Git、GitHub CLI 和 Codex CLI,然后对宿主 工具进行身份验证并安装 Factory: ``` gh auth login codex login cargo install --path . --locked ``` 进入 Factory 将要管理的仓库: ``` factory init ``` 为你的仓库编辑生成的配置和工作流,然后 验证它们并启动 Factory: ``` factory validate factory run --once factory run ``` [实操指南](docs/local-v1.md)涵盖了完整的配置、source 契约、首次演示、双仓库集群设置以及 sandbox 设置。 [运维指南](docs/operations.md)涵盖了检查、取消、 恢复和清理。 ## V1 范围 V1 刻意支持: - 单个仓库或由显式的仓库专属配置组成的集群; - 状态、标签和计划触发器; - 在托管的 worktree 或 Docker 克隆中运行的 Codex worker; - 显式的 Markdown 工作流; - 持久化队列、监控、历史记录、取消和恢复。 Jira、Linear、跨仓库工作流、其他智能体 runtime、托管的 worker 和 webhook 唤醒后续可以适配于相同的 source、trigger、workflow 和 worker 边界之后。本仓库包含一个 [Jira source 适配器](docs/jira.md)作为该扩展点的示例,但 Jira 并不属于受支持的 V1 范围。 ## 了解更多 - [愿景与架构设计](docs/design.md) - [标签与工单状态](docs/labels.md) - [安装、配置与首次运行](docs/local-v1.md) - [运维与恢复](docs/operations.md) - [Jira source 适配器](docs/jira.md) - [Docker sandbox 开发环境](docs/docker-sandbox-template.md) - [参与贡献](CONTRIBUTING.md) - [安全性](SECURITY.md) ## License Factory 基于 [MIT License](LICENSE) 发布。
标签:AI智能体, SOC Prime, 人工智能, 任务编排, 可视化界面, 工作流, 开发工具, 用户模式Hook绕过, 网络安全研究, 网络调试, 自动化, 请求拦截, 通知系统