owainlewis/factory
GitHub: owainlewis/factory
Factory 是一个 AI 编程智能体编排系统,通过监听工单队列自动驱动智能体在代码仓库上持续完成开发工作,消除人工协调环节。
Stars: 89 | Forks: 17
# Factory
[](https://github.com/owainlewis/factory/actions/workflows/ci.yml)
[](LICENSE)
Factory 让编程智能体在代码仓库上持续工作,而无需人类在终端中
编排每一个步骤。
它监视一个受信任的工单队列。当满足配置的条件时,Factory
会创建一个持久任务,准备一个隔离的工作区,并将一个 Markdown
工作流交给智能体。智能体使用诸如 `gh` 和 `git` 之类的常规工具来完成
工作。当没有匹配项时,Factory 什么也不做,也不会消耗任何模型 token。

## 为什么会有 Factory
编程智能体能够实现日益重要的变更,但大多数团队
仍然将它们作为一次性的终端会话来运行。每个开发者使用不同的
prompt、技能、检查和交接规范。人类仍然需要负责
留意准备就绪的工作、启动智能体、等待 CI、转发审查
反馈,并记得重试。
Factory 使这一过程变得可重复。它扮演着类似于 CI/CD 的角色:工作
进入一个一致的系统,接受相同的检查和反馈循环,
并持续流转,直到达成人类决策。
目标不是取代开发者。人类决定什么最重要,提供
产品上下文,审查结果,并对交付的内容负责。
Factory 消除了这些决策之间的人工协调。
## 工单即控制平面
Issue 追踪器是人类与智能体协同的枢纽。一张工单记录了
问题、范围、验收标准、决策、状态和证据。将一张
工单移至配置的状态,即代表明确请求智能体执行一次任务。
这使得工单质量成为了核心支撑。一张语焉不详的工单无论是对于
人类还是智能体都未准备就绪。一个分类工作流可以检查代码库、重现
问题、澄清范围、添加可测试的验收标准,并请求
缺失的最小人类决策。一旦工单变得清晰,它便成为了实现的
规格说明。

此示例中的状态名称并非 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绕过, 网络安全研究, 网络调试, 自动化, 请求拦截, 通知系统