Skip to content

原文(日本語に翻訳)

プロンプト文字列やコメントに Date.now()/Math.random() が記述されているだけでワークフロースクリプトがバリデーションで拒否される問題を修正しました

原文(英語)

Fixed workflow validation rejecting scripts whose prompt strings or comments merely mention Date.now()/Math.random()

概要

ワークフロースクリプトにおいて、Date.now()Math.random() がコード中(変数や関数の呼び出し)ではなく、プロンプト文字列やコメント内に単なるテキストとして記述されている場合でも、バリデーションエラーが発生してスクリプトが拒否される問題が修正されました。これらは再現性のためにスクリプト本体では禁止されていますが、文字列・コメント内への言及は許可されるべきものです。

基本的な使い方

javascript
// 修正前: このようなスクリプトがバリデーションエラーになっていた
export const meta = {
  name: 'test-workflow',
  description: 'Test',
}

// コメント内のDate.now()への言及
// Note: Date.now() は使用不可(ワークフロー再現性のため)
const result = await agent(`
  Date.now() を使わずにタイムスタンプを生成する方法を教えてください
`)

// 修正後: コメントや文字列内での言及は許可される

実践例

Date.now()の代替方法を説明するプロンプト

javascript
export const meta = {
  name: 'timestamp-guide',
  description: 'タイムスタンプ処理のガイド',
}

// ユーザーへの説明: Date.now() の代わりに args で受け取ること
const result = await agent(`
  このコードでは Date.now() や Math.random() は使えません。
  タイムスタンプが必要な場合は args から受け取ってください。
  ${JSON.stringify(args)}
`)

ドキュメント生成ワークフロー

javascript
export const meta = {
  name: 'api-docs',
  description: 'API ドキュメント生成',
}

// コメントで制約を説明
// このワークフローでは Date.now() は使用不可 — 代わりに args.timestamp を使用
const result = await agent(`
  APIドキュメントを生成してください。
  Date.now() などの時刻取得関数は使わず、固定値を使用してください。
`)

注意点

  • ワークフロースクリプト本体での Date.now()Math.random()呼び出しは引き続き禁止です(再現性のため)
  • 今回の修正で許可されたのは、プロンプト文字列やコメント内での言及のみです
  • 動的な値が必要な場合は args パラメータ経由でワークフローに渡してください

関連情報