• 简体中文
  • v6.5.1
  • Batch

    SDK 中并没有 batch() 方法。当宿主工作流或某个 agent 回合已经有一组清晰、相互独立、 确定性的步骤时,你可以直接用会话提供的确定性辅助方法(readFilegrepgloblsgit)把它们组合起来,并自行汇总结果。这样"批处理"就完全在你的掌控之中:无需任何模型调用, 执行顺序明确,且除非你主动调用,否则不会执行任何破坏性操作。

    下面的示例读取包元数据、changelog 和 release script,然后在不编辑任何文件的前提下报告版本不一致之处。

    Node.js
    Python
    TypeScript
    import { Agent } from '@a3s-lab/code';
    const agent = await Agent.create('agent.acl');
    const session = agent.session('/path/to/project');
    // Node helpers are async — group independent reads with Promise.all.
    const [pkg, changelog, releaseScript] = await Promise.all([
    session.readFile('package.json'),
    session.readFile('CHANGELOG.md'),
    session.readFile('scripts/release.sh'),
    ]);
    const pkgVersion = JSON.parse(pkg).version;
    const mismatches = [];
    if (!changelog.includes(pkgVersion))
    mismatches.push(`CHANGELOG.md is missing ${pkgVersion}`);
    if (!releaseScript.includes(pkgVersion))
    mismatches.push(`release.sh is missing ${pkgVersion}`);
    console.log(
    mismatches.length ? mismatches.join('\n') : 'All files agree on the version.',
    );
    session.close();

    不要把破坏性操作混入这些分组读取之中。任何破坏性宿主工作流(写入、git 提交、bash) 都应放在显式的应用确认或你的自动化关卡之后,并通过 permissionPolicy / permission_policy 进行约束,避免出现意料之外的步骤被静默执行。

    如果这些步骤并非相互独立——每一步都依赖上一步的结果,并且你希望由 agent 来驱动它们—— 请改用 session.pipeline(...),它会分阶段运行任务, 每个阶段都能接收到上一阶段的输出。