跳转到正文

context.ts ​

源文件: examples/package-basics/context.ts · 下载原文件 · 示例使用说明

ts
import { pathToFileURL } from "node:url";
import { createDitto, createContextWorker, graph } from "@codesoul-co/ditto";

/** A single-Graph API introduction; no model or persistent Agent state. */
export async function runContext(text = "Hello Ditto") {
  const runtime = createDitto({ workers: [createContextWorker()] });
  const plan = graph<string>("package-context")
    .node("loaded", "CONTEXT.LOAD", [], content => ({ sources: [{ role: "user", content }] }))
    .node("selected", "CONTEXT.SELECT", ["loaded"], (_input, { loaded }) => ({
      context: loaded, purpose: "infer", limit: 1,
    }));
  try { return (await runtime.run(plan, text)).selected; }
  finally { await runtime.close(); }
}

if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
  console.log(JSON.stringify(await runContext(process.argv[2]), null, 2));
}

Ditto · @codesoul-co/ditto · Node.js 24+