assembleContextPlan
CORE · function · 运行时值
Build the model input for a context plan.
导入
ts
import { assembleContextPlan } from '@jangts/agent-core/context';js
import { assembleContextPlan } from '@jangts/agent-core/context';其他公开入口:@jangts/agent-core、@jangts/agent-core/types、@jangts/agent-core/context。
定义
调用
ts
assembleContextPlan(plan: ContextPlan): BuiltContextBuild the model input for a context plan.
| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
plan | ContextPlan | 必需 | — |
plan 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
fragments | readonly ContextFragment[] | 必需 | 只读。Fragments in the order supplied by the App; assembly preserves it. |
maxInputChars | number | 必需 | Character budget Core validates after assembly. |
additionalMessages | readonly (ModelMessage & { role: "user"; })[] | undefined | 可省略 | Protected user messages (for example image inputs); text counts toward the same budget. |
originalFragments | readonly ContextFragment[] | undefined | 可省略 | Trusted originals for structural mutation auditing; never sent to the model. |
mutableFragmentIds | readonly string[] | undefined | 可省略 | Explicit value-mutation allowance when originals are supplied. |
返回: BuiltContext。
返回值结构
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
messages | ModelMessage[] | 必需 | Messages in final model order. |
fragmentUsage | ContextFragmentUsage[] | 必需 | Per-fragment accounting in the same order as the fragments were merged. |
inputChars | number | 必需 | Total counted characters across messages and usage. |
maxInputChars | number | 必需 | Budget the assembly was validated against; Infinity means unbounded. |
使用示例
- 上下文片段:明确来源、信任和预算:Core 识别片段与装配合同,校验来源元数据和预算,不内置业务压缩算法。
用裸配置装配一份输入
入门 · Node.js
ts
import { assembleFragments } from '@jangts/agent-core/context';
const input = assembleFragments([{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }], 2000);
console.log(input.messages, input.fragmentUsage);js
import { assembleFragments } from '@jangts/agent-core/context';
const input = assembleFragments([{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }], 2000);
console.log(input.messages, input.fragmentUsage);增加候选计划与最终审计
配置 · Node.js
可变片段列表为空,表示不允许修改原片段;不会自动授权一个压缩步骤。
ts
import { assembleContextPlan } from '@jangts/agent-core/context';
import type { ContextFragment } from '@jangts/agent-core/types';
const fragments: ContextFragment[] = [{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }];
const input = assembleContextPlan({ fragments, originalFragments: fragments, mutableFragmentIds: [], maxInputChars: 2000 });
console.log(input.inputChars);js
import { assembleContextPlan } from '@jangts/agent-core/context';
const fragments = [{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }];
const input = assembleContextPlan({ fragments, originalFragments: fragments, mutableFragmentIds: [], maxInputChars: 2000 });
console.log(input.inputChars);