跳至主要内容

子代理

Cognitive Modules 支持模块间调用,实现复杂任务的分解与组合。

@call 语法

在 MODULE.md 中使用 @call:module-name 调用其他模块:

## 处理流程

1. 分析用户需求
2. 调用 UI 规范生成器:
@call:ui-spec-generator($ARGUMENTS)
3. 整合结果

调用形式

语法说明
@call:module-name传递父模块输入
@call:module-name($ARGUMENTS)传递父模块的 $ARGUMENTS
@call:module-name(自定义参数)传递自定义参数

context 配置

fork(隔离执行)

---
name: parent-module
context: fork
---
  • 子模块有独立上下文
  • 子模块结果不影响其他子模块
  • 适合并行执行多个独立任务

main(共享执行)

---
name: parent-module
context: main # 默认
---
  • 子模块共享父模块上下文
  • 子模块结果可被其他子模块访问

运行

子代理功能自动启用。当模块 prompt 中包含 @call: 指令时,运行时会自动解析并执行:

# 直接运行(@call 自动处理)
cog run parent-module --args "需求"

执行流程

父模块 Prompt

解析 @call:child-module

执行 child-module

注入结果 [Result from @call:child-module]: {...}

执行父模块

最终输出

示例:product-analyzer

---
name: product-analyzer
version: 1.0.0
responsibility: 分析产品需求并调用 UI 规范生成器
context: fork
---

# 产品分析器

## 输入

用户产品描述:$ARGUMENTS

## 处理流程

1. 需求分析
2. 调用 UI 规范生成器:
@call:ui-spec-generator($ARGUMENTS)
3. 整合输出

## 输出

- analysis: 产品分析
- ui_spec: 来自 @call 的 UI 规范
- recommendations: 建议

运行:

cog run product-analyzer --args "健康产品官网" --pretty

限制

限制
最大调用深度5 层
循环调用自动检测并阻止
子模块验证跳过输入验证,保留输出验证