章节 01
导读 / 主楼:Factory:支持15+模型提供商的开源编码智能体工具
Factory:支持15+模型提供商的开源编码智能体工具
近年来,AI编码助手已成为开发者工具链中不可或缺的一环。从GitHub Copilot到各类开源方案,市场上涌现出大量选择。然而,大多数工具要么锁定在单一提供商,要么缺乏足够的灵活性和可控性。今天介绍的Factory项目,正是为了解决这些痛点而生。
项目概述
Factory是一款开源的编码智能体工具,其设计理念是"选择适合你的隐私、成本和延迟需求的方案"。它最大的特色在于支持超过15个LLM提供商,涵盖本地模型(如llama.cpp、Ollama)和云端服务(Anthropic Claude、GitHub Copilot、Google AI Studio、Groq、Mistral等),让用户可以根据具体场景自由切换。
核心特性解析
多提供商无缝切换
Factory支持的提供商列表令人印象深刻:
- 本地部署:llama.cpp、Ollama,适合注重数据隐私的场景
- 主流云服务:Anthropic Claude、GitHub Copilot、Google AI Studio、Mistral AI
- 高性能推理:Groq、Cerebras,适合需要低延迟的应用
- 聚合平台:OpenRouter、HuggingFace、Vercel AI Gateway
- 专业代码模型:Codestral、OpenCode Zen
这种多提供商架构不仅提供了灵活性,还允许用户在不同任务间选择性价比最优的模型。
交互式体验设计
Factory提供了精心设计的交互式REPL界面:
- 智能模型选择器:首次运行时会引导用户选择提供商和模型,展示每个模型的工具支持、视觉能力、上下文窗口等元数据
- 流式Markdown渲染:响应实时显示,提升交互流畅度
- 跨会话历史:支持上下箭头回忆历史输入,不仅限于当前会话
- 快捷命令:/clear、/model、/plan、/permissions等斜杠命令提升效率
工具集与权限管理
Factory内置6个核心工具,与Claude Code的能力对齐:
- Read:读取文件内容
- Write:创建或覆盖文件
- Edit:精确字符串替换
- Bash:执行shell命令
- Glob:文件模式匹配
- Grep:正则内容搜索
权限系统允许用户对每个工具类型设置批准策略:单次批准、全部批准或拒绝。这种细粒度控制既保证了安全性,又不会在重复操作时过度打扰。
计划模式:安全探索
计划模式(Plan Mode)是Factory的一大亮点。启用后,读取类工具立即执行,而写入类操作(Edit、Write、Bash)会被加入队列等待审核。用户可以在看到完整方案后选择执行或取消,非常适合"审查项目并给出改进建议"这类探索性任务。
智能纠错机制
Factory内置了多层容错设计:
- 文本工具回退:当模型原生不支持函数调用时,自动从文本内容中恢复工具调用
- 自动重试:工具调用失败时注入纠正反馈,最多重试3次
- LLM纠错器:使用独立LLM分析失败上下文并生成修复后的调用,每轮最多5次
- Bash去重:检测连续相似命令并提示模型停止无效循环
使用场景与价值
本地优先开发
对于注重代码隐私的团队,Factory与Ollama的集成让敏感项目可以完全在本地完成AI辅助,无需将代码上传到云端。
多模型策略
不同任务可以选用不同模型:快速代码补全用轻量级本地模型,复杂架构设计用Claude Sonnet,批量重构用高性价比的OpenRouter免费模型。
CI/CD自动化
Factory支持非TTY模式(headless),可以通过管道接收输入并执行单次任务,非常适合集成到自动化脚本和持续集成流程中。
学习与实验
项目完全开源,代码结构清晰(TypeScript实现),是学习AI智能体架构的绝佳参考。其提供商注册表设计也让添加新模型变得简单。
技术亮点
从架构角度看,Factory有几个值得注意的设计决策:
- 模块化提供商系统:每个提供商实现统一接口,通过注册表动态加载
- 上下文管理:自动追踪token使用量,接近限制时智能压缩历史消息
- 会话日志:每次交互记录为JSONL格式,便于审计和调试
- 项目感知:自动提取package.json和tsconfig.json信息注入系统提示
同类项目对比
| 特性 | Factory | Claude Code | Continue |
|---|---|---|---|
| 开源 | ✅ | ❌ | ✅ |
| 多提供商 | 15+ | 1 | 10+ |
| 本地模型 | ✅ | ❌ | ✅ |
| 计划模式 | ✅ | ❌ | ❌ |
| 权限粒度 | 工具级 | 操作级 | 操作级 |
结语
Factory代表了编码智能体工具向更开放、更灵活方向发展的趋势。它不试图绑定用户到特定生态系统,而是提供基础设施让用户自主选择。对于希望在不同场景下优化AI辅助体验的开发者来说,Factory是一个值得深入探索的工具。
项目采用MIT许可证,代码托管在GitHub上,社区欢迎贡献新的提供商支持和功能改进。