Skip to content
中文

CompletionRequestFacts ​

SUPPORT · interface · Type contract

Facts the provider reads from the request it actually sends.

functions reports the Core call options and keeps the default policy equivalent to the behavior that existed before policies were configurable. toolChoice is the effective field of the serialized body, so a host override, or a field dropped for being undefined, is visible exactly as the upstream receives it.

Import ​

ts
import type { CompletionRequestFacts } from '@jangts/agent-core/support';
js
/** @typedef {import('@jangts/agent-core/support').CompletionRequestFacts} CompletionRequestFacts */

Other public entry points:@jangts/agent-core/support, @jangts/agent-core/support/model.

Definition ​

ts
interface CompletionRequestFacts

Field structure ​

FieldTypeRequiredDescription
functionsbooleanRequiredRead-only. Whether the call declared native functions through Core options.
toolChoiceunknownOptionalRead-only. Effective tool_choice of the request body; an absent field reads as undefined.
allowEmptyTextbooleanRequiredRead-only. Whether an empty response is allowed because JSON mode permits it.

Examples ​

Connect a common protocol with real server-side configuration ​

Beginner · Node.js

Running this example requires connection configuration for an available model service.

ts
import { ModelRunner, Support } from '@jangts/agent-core';
const provider = new Support.CompatibleModelProvider({ config: {
  baseUrl: process.env.MODEL_BASE_URL!, apiKey: process.env.MODEL_API_KEY!, model: process.env.MODEL_NAME!,
} });
const runner = new ModelRunner({ provider });
console.log((await runner.invoke('你好')).value);
js
import { ModelRunner, Support } from '@jangts/agent-core';
const provider = new Support.CompatibleModelProvider({ config: {
        baseUrl: process.env.MODEL_BASE_URL, apiKey: process.env.MODEL_API_KEY, model: process.env.MODEL_NAME,
    } });
const runner = new ModelRunner({ provider });
console.log((await runner.invoke('你好')).value);

Declared fields and wire mapping for a direct tool thread ​

Configuration · Node.js

This only demonstrates message conversion, with no network request or tool execution. Raw tool_calls, tool_call_id, and host-attached data are not forwarded.

ts
import { Support } from '@jangts/agent-core';
const messages: Support.ProviderMessage[] = [
  { role: 'user', content: '查询资料' },
  { role: 'assistant', content: '', toolCalls: [
    { id: 'call-1', name: 'lookup', arguments: '{"query":"资料"}' },
  ] },
  { role: 'tool', content: '{"found":true}', toolCallId: 'call-1' },
];
console.log(Support.chatCompletionMessages(messages));
js
import { Support } from '@jangts/agent-core';
const messages = [
    { role: 'user', content: '查询资料' },
    { role: 'assistant', content: '', toolCalls: [
            { id: 'call-1', name: 'lookup', arguments: '{"query":"资料"}' },
        ] },
    { role: 'tool', content: '{"found":true}', toolCallId: 'call-1' },
];
console.log(Support.chatCompletionMessages(messages));

API reference, usage examples and developer guides.