子代理与插件
用 Markdown 定义自定义 Droid(子代理)、与技能的区别、存放位置与创建方式,以及用插件打包分发扩展。
自定义 Droid(子代理)
自定义 Droid 是用 Markdown 定义的可复用子代理,各自带系统提示、模型偏好和工具策略,Droid 可以把代码评审、安全审计等聚焦任务交给它们,在全新的上下文窗口里运行。Droid 还内置两个子代理 worker 和 explorer。子代理带来:上下文隔离(父会话保持精简);自己的工具与自主级别(可限制为只读、只编辑或定制工具集);自己的模型(可继承父模型或用更适合任务的);单一返回值(只返回一条最终消息,除非父会话总结否则不展示给你)。子代理非交互运行:AskUser 工具被禁用,也不能再生成子代理。
自定义 Droid vs Skills:要在全新上下文窗口运行、需要不同模型、需要强制的工具策略、任务是适合编码进系统提示的复杂清单时用自定义 Droid;想让流程在当前会话内联运行、当前模型够用、只需要文档化意图的工具、或只是轻量可复用流程时用 Skill。存放位置:项目 Droid 在 <repo>/.factory/droids/(随仓库共享),个人 Droid 在 ~/.factory/droids/;同名时项目的优先。创建:运行 /droids 选「Create a new Droid」,选项目或个人存储,设置描述、系统提示(自动生成或手写)、标识符、模型(或 inherit)和工具选择;也可让内置的 GenerateDroid 工具起草。然后让 Droid 委派,例如「Use the subagent code-reviewer on the staged diff」。此功能默认启用,可在 /settings 的 Experimental 里关闭。
插件
插件把可复用的 Droid 扩展打包,让团队跨项目安装同样的技能、命令、Droid、输出样式、Hooks 和 MCP 服务器。建议先用独立的 .factory/ 配置做个人或项目内试验,需要共享、版本化或受管控时再做成插件。内容:skills/<name>/SKILL.md(模型调用的技能)、commands/<name>.md(/name 命令)、droids/<name>.md(Task 可调用的子代理)、output-styles/<name>.md、hooks/hooks.json 加脚本、mcp.json。原生布局用 .factory-plugin/ 目录,也支持 Claude Code 插件布局(.claude-plugin/ 会被翻译成 .factory-plugin/,agents/ 翻译成 droids/)。管理:/plugins 有 Available(从已注册市场安装)、Installed(启用/禁用,受策略限制)、Marketplaces(添加或更新市场、切换自动更新)三个标签页;脚本里用 droid plugin marketplace add <source>、droid plugin marketplace list 等命令。企业可用内部插件市场做组织审批的目录。