当 sessionTarget = "isolated" 或 payload.kind = "agentTurn" 时,任务在独立会话中运行 Agent。
执行入口
isolated-agent.ts → isolated-agent/run.ts::runCronIsolatedAgentTurn
执行流程
runCronIsolatedAgentTurn(params)
1. 加载或创建会话(session.ts)
2. 解析模型选择(model-selection.ts)
3. 预检模型可用性(model-preflight.ts)
4. 构建 Agent 上下文(技能快照、工具过滤)
5. 执行 Agent(run-executor.ts)
6. 处理输出交付(delivery-dispatch.ts)
7. 更新会话状态(run-session-state.ts)
会话管理
会话密钥格式(session-key.ts)
| 类型 | 格式 | 说明 |
|---|---|---|
| 基础会话 | cron:<jobId> | 任务的持久会话 |
| 运行会话 | cron:<jobId>:run:<uuid> | 单次执行的临时会话 |
每次执行创建新的运行会话,24 小时后由 session-reaper.ts 清理。
会话解析(session.ts)
根据 sessionTarget 解析目标会话:
isolated:使用cron:<jobId>基础会话session:xxx:使用指定会话 ID- 支持会话继承(从上次运行的上下文继续)
模型选择(model-selection.ts)
优先级(从高到低):
payload.model(任务级覆盖)- Agent 默认模型
- 系统默认模型
支持 payload.fallbacks 列表,主模型不可用时自动降级。
模型预检(model-preflight.ts)
执行前验证模型可用性:
- 检查 Provider 连通性
- 验证 API Key 有效性
- 检查模型是否在允许列表中
预检失败时记录诊断信息,不直接报错(best-effort 模式)。
Agent 执行配置
工具过滤(payload.toolsAllow)
payload: {
kind: "agentTurn",
message: "...",
toolsAllow: ["web-search", "code-exec"] // 只允许这些工具
}未指定时使用 Agent 默认工具集。
轻量上下文(payload.lightContext)
payload: {
kind: "agentTurn",
message: "...",
lightContext: true // 不加载完整历史上下文
}适用于简单任务,减少 token 消耗。
思考模式(payload.thinking)
payload: {
kind: "agentTurn",
message: "...",
thinking: true // 启用 extended thinking
}外部内容源(payload.externalContentSource)
payload: {
kind: "agentTurn",
message: "...",
externalContentSource: "url-or-identifier"
}注入外部内容到 Agent 上下文。
技能快照(skills-snapshot.ts)
执行时捕获当前可用技能列表,确保:
- 技能版本一致性
- 避免执行中途技能变更
- 诊断信息中记录技能状态
子 Agent 跟进(subagent-followup.ts)
Agent 执行完成后,处理子 Agent 的后续操作:
- 收集子 Agent 输出
- 合并到主 Agent 结果
- 触发交付流程
通道输出策略(channel-output-policy.ts)
控制 Agent 输出如何路由到消息渠道:
- 过滤内部消息(不发送到渠道)
- 格式化输出(Markdown → 渠道格式)
- 处理长消息分片
执行状态管理(run-session-state.ts)
记录每次执行的状态:
type RunSessionState = {
runId: string
startedAtMs: number
completedAtMs?: number
status: "running" | "ok" | "error" | "timeout"
outputSummary?: string
diagnostics?: CronRunDiagnostics
}相关页面
- cron-overview — 模块总览
- cron-types — 数据结构(CronPayload)
- cron-delivery — 交付系统
- cron-service — 服务层(超时控制)