Skip to content
English

Message ​

KIT · type · 类型合同

One entry of an OpenAI chat conversation.

The runtime validates role against the OpenAI role set and validates the outer shape of content; every other field is retained verbatim so vendor extensions flow through.

导入 ​

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

其他公开入口:@jangts/agent-core/mock。

定义 ​

类型: Message

类型表达式
ts
type Message = Readonly<{
  /**
   * `system`, `developer`, `user`, `assistant`, `tool` or `function`; anything else is rejected.
   */
  role: string;
  /** Text, a multimodal content-block array or null; numbers and objects are rejected. */
  content?: unknown;
  /** Opaque tool-call array from a previous assistant turn; never interpreted here. */
  tool_calls?: unknown;
  /** Correlates a `tool` message with the assistant tool call it answers. */
  tool_call_id?: string;
  /** Vendor extensions are snapshotted and preserved but never interpreted by the runtime. */
  [key: string]: unknown;
}>;

字段结构 ​

字段类型必需说明
rolestring必需system, developer, user, assistant, tool or function; anything else is rejected.
contentunknown可省略Text, a multimodal content-block array or null; numbers and objects are rejected.
tool_callsunknown可省略Opaque tool-call array from a previous assistant turn; never interpreted here.
tool_call_idstring | undefined可省略Correlates a tool message with the assistant tool call it answers.

索引结构 ​

字段类型必需说明
[key: string]unknown必需只读。索引项。

使用示例 ​

直接生成原生 JSON ​

入门 · Node.js

ts
import { MockGPT } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: { online: true, source: 'fixture' } }] });
const value = await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务状态' }] });
console.log(value); // { online: true, source: 'fixture' }
console.log(mock.counts, mock.records);
js
import { MockGPT } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: { online: true, source: 'fixture' } }] });
const value = await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务状态' }] });
console.log(value); // { online: true, source: 'fixture' }
console.log(mock.counts, mock.records);

同一实例注入真实 Core 模型边界 ​

配置 · Node.js

ts
import { ModelRunner, Support } from '@jangts/agent-core';
import { MockGPT, responses } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: responses.text('服务在线。', { chunkSize: 2, wireChunkSize: 3 }) }] });
const provider = new Support.CompatibleModelProvider({
  config: { baseUrl: 'https://mock.local/v1', apiKey: 'offline-example', model: 'demo' },
  ports: { request: mock.fetch },
});
const result = await new ModelRunner({ provider, maxCalls: 1 }).invoke('服务状态');
console.log(result.value, result.invocation.status);
js
import { ModelRunner, Support } from '@jangts/agent-core';
import { MockGPT, responses } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: responses.text('服务在线。', { chunkSize: 2, wireChunkSize: 3 }) }] });
const provider = new Support.CompatibleModelProvider({
    config: { baseUrl: 'https://mock.local/v1', apiKey: 'offline-example', model: 'demo' },
    ports: { request: mock.fetch },
});
const result = await new ModelRunner({ provider, maxCalls: 1 }).invoke('服务状态');
console.log(result.value, result.invocation.status);

接口参考、使用示例与开发指南。