mastra.schedules
추가된 항목: @mastra/core@1.50.0
mastra.schedules지속적인 크론 일정을 위한 CRUD 서비스입니다. 이를 사용하여 Agent 또는 Workflow에 대한 일정을 생성, 나열, 업데이트, 일시 중지, 재개, 수동 실행 및 삭제합니다.
사용 패턴 및 개념은 다음을 참조하세요.Schedules.
사용예사용예에 대한 직접 링크
Agent 일정을 만듭니다.
const schedule = await mastra.schedules.create({
agentId: 'pinger',
cron: '0 * * * *',
prompt: 'Give me a status update.',
})
Workflow 일정을 만듭니다.
const schedule = await mastra.schedules.create({
workflowId: 'daily-report',
cron: '0 9 * * *',
inputData: { reportType: 'summary' },
})
일정에는 일정 도메인을 구현하는 스토리지 어댑터가 필요합니다. 지원되는 어댑터는 다음과 같습니다.@mastra/libsql, @mastra/pg, @mastra/mysql, @mastra/mongodb, @mastra/convex, 그리고@mastra/spanner.
행동 양식행동 양식에 대한 직접 링크
일정 만들기일정 만들기에 대한 직접 링크
create(input)createinput에 대한 직접 링크
Agent 또는 Workflow 일정을 만듭니다. Agent 일정을 만들려면 agentId를 전달하고, Workflow 일정을 만들려면 workflowId를 전달하세요.
const schedule = await mastra.schedules.create({
agentId: 'pinger',
cron: '0 * * * *',
prompt: 'Give me a status update.',
})
Agent 일정 입력Agent 일정 입력에 대한 직접 링크
id?:
agent_<slug>로 정규화됩니다. 생략하면 Mastra가 agent_<uuid> ID를 생성합니다.agentId:
cron:
prompt:
name?:
timezone?:
America/New_York).threadId?:
agent.generate()를 사용하여 스레드 없이 실행됩니다.resourceId?:
threadId가 설정된 경우 필수입니다.signalType?:
notification입니다.tagName?:
schedule입니다.attributes?:
providerOptions?:
ifActive?:
threadId가 필요합니다.ifIdle?:
threadId가 필요합니다.metadata?:
status?:
active입니다.Workflow 일정 입력Workflow 일정 입력에 대한 직접 링크
id?:
schedule_<slug>로 정규화됩니다. 생략하면 Mastra가 schedule_<uuid> ID를 생성합니다.workflowId:
cron:
timezone?:
inputData?:
initialState?:
requestContext?:
metadata?:
status?:
active입니다.일정 읽기일정 읽기에 대한 직접 링크
get(id)getid에 대한 직접 링크
ID별로 일정을 가져옵니다. 베어 Agent 일정 ID도 정규화된 일정 ID로 확인됩니다.agent_<slug> form.
const schedule = await mastra.schedules.get('pinger')
list(filter?)listfilter에 대한 직접 링크
일정을 나열합니다. 필터가 없으면 Agent 및 Workflow 일정이 반환됩니다.
const schedules = await mastra.schedules.list({
agentId: 'pinger',
status: 'active',
})
filter?:
agentId?:
workflowId?:
threadId?:
resourceId?:
name?:
status?:
업데이트 일정업데이트 일정에 대한 직접 링크
update(id, patch)updateid-patch에 대한 직접 링크
일정을 업데이트합니다. cron 또는 timezone을 변경하면 다음 실행 시간이 다시 계산됩니다. status를 paused에서 active로 업데이트해도 다음 실행 시간이 다시 계산됩니다.
const updated = await mastra.schedules.update('pinger', {
cron: '*/30 * * * *',
prompt: 'Give me a status update every 30 minutes.',
})
Agent 일정 패치에서는 cron, timezone, prompt, name, signalType, tagName, attributes, providerOptions, ifActive, ifIdle, metadata, status를 업데이트할 수 있습니다. threadId와 resourceId는 패치할 수 없습니다. 스레드 대상을 변경해야 한다면 새 일정을 만드세요.
Workflow 일정 패치에서는 cron, timezone, inputData, initialState, requestContext, metadata, status를 업데이트할 수 있습니다. prompt, signalType, ifIdle 같은 Agent 전용 패치 필드를 Workflow 일정에 사용하면 오류가 발생합니다.
수명주기수명주기에 대한 직접 링크
pause(id)pauseid에 대한 직접 링크
일정을 일시 중지합니다. 일시 중지는 지속적이고 멱등적입니다.
const paused = await mastra.schedules.pause('pinger')
resume(id)resumeid에 대한 직접 링크
일시 중지된 일정을 재개하고 현재 시간에서 다음 실행 시간을 다시 계산합니다.
const active = await mastra.schedules.resume('pinger')
run(id)runid에 대한 직접 링크
크론 주기를 변경하지 않고 즉시 일정을 한 번 실행합니다.
const run = await mastra.schedules.run('pinger')
Agent 일정에서 claimId는 manual_<scheduleId>_<timestamp>를 사용합니다. Workflow 일정에서 claimId는 sched_<scheduleId>_<timestamp>를 사용하며 Workflow 실행 ID로 재사용됩니다.
delete(id)deleteid에 대한 직접 링크
일정을 삭제합니다. 누락된 일정을 삭제하는 것은 아무런 작업이 아닙니다.
await mastra.schedules.delete('pinger')
행동 예약행동 예약에 대한 직접 링크
- Agent 일정 ID에는
agent_접두사가 사용됩니다.mastra.schedules.create()를 통해 생성된 Workflow 일정 ID에는schedule_접두사가 사용됩니다. - 스레드 기반 Agent 일정에서는
threadId가 설정된 경우resourceId가 필요합니다. signalType,ifActive,ifIdle,resourceId에는threadId가 필요합니다.- Workflow 일정은
prompt,signalType,ifIdle같은 Agent 전용 패치 필드를 허용하지 않습니다. run()은 수동 실행을 즉시 게시하며 저장된 cron 주기를 변경하지 않습니다.