@agent-assistant/traits

中文文档
0.4.37发布于 2026/10/04MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 1.2万

经验证的SDK代理助理的不可移动特性

中文使用文档
文档目录11 节
  1. API 密码
  2. 数据模型
  3. AssistantTraits
  4. SurfaceFormattingTraits
  5. TraitsProvider
  6. 创建提供者
  7. 校验错误
  8. 用法边界
  9. 适应模式
  10. 核心整合
  11. 地方发展

@agent-assistant/traits

@agent-assistant/traits 是一个用于验证、不可改变的辅助特性数据的 TypeScript- first 叶包.

它定义了一个助手如何呈现自己,以及它喜欢哪种格式的提示. 它不拥有运行时配置,人物a 提示,路由,模型选择,内存,或产品行为.

API 密码

import {
  createTraitsProvider,
  TraitsValidationError,
} from '@agent-assistant/traits';

import type {
  AssistantTraits,
  SurfaceFormattingTraits,
  TraitsProvider,
} from '@agent-assistant/traits';

数据模型

AssistantTraits

interface AssistantTraits {
  voice: string;
  formality: string;
  proactivity: string;
  riskPosture: string;
  domain?: string;
  vocabulary?: string[];
}

规则:

  • voice 必须是非空字符串。 已知值为 concise, (中文(简体) ), conversational, (中文(简体) ), formal,以及 technical。 。 。 .
  • 未知 voice 值被接受为 console.warn 因此产品可以扩展寄存器而不伪造包.
  • formality 必须是 casual, (中文(简体) ), professional,或 academic。 。 。 .
  • proactivity 必须是 low, (中文(简体) ), medium,或 high。 。 。 .
  • riskPosture 必须是 cautious, (中文(简体) ), moderate,或 assertive。 。 。 .
  • domain如果存在,则必须是非空字符串.
  • vocabulary如果存在,则必须是非空字符串的非空字符串.

SurfaceFormattingTraits

interface SurfaceFormattingTraits {
  preferredResponseLength?: number;
  preferRichBlocks?: boolean;
  preferMarkdown?: boolean;
}

规则:

  • preferredResponseLength如果存在,则必须是正整数.
  • preferRichBlocks如果在场, 一定是布尔.
  • preferMarkdown如果在场, 一定是布尔.

这些是产品自主格式钩子的提示. 它们不能取代表面能力检查.

TraitsProvider

interface TraitsProvider {
  readonly traits: Readonly<AssistantTraits>;
  readonly surfaceFormatting?: Readonly<SurfaceFormattingTraits>;
}

消费者应依赖只读提供者的合同,而不是在运行时改变或重建提供者.

创建提供者

import { createTraitsProvider } from '@agent-assistant/traits';

const traits = createTraitsProvider(
  {
    voice: 'concise',
    formality: 'professional',
    proactivity: 'medium',
    riskPosture: 'moderate',
    domain: 'knowledge-and-workspace',
    vocabulary: ['digest', 'workspace', 'context'],
  },
  {
    preferredResponseLength: 800,
    preferRichBlocks: false,
    preferMarkdown: true,
  },
);

createTraitsProvider 验证输入、复制、冻结返回的提供者、冻结嵌入的特性对象以及冻结复制的特性 vocabulary 阵列.

校验错误

import { createTraitsProvider, TraitsValidationError } from '@agent-assistant/traits';

try {
  createTraitsProvider({
    voice: 'concise',
    formality: 'semi-formal',
    proactivity: 'medium',
    riskPosture: 'moderate',
  });
} catch (error) {
  if (error instanceof TraitsValidationError) {
    console.error(error.field);
    console.error(error.invalidValue);
    console.error(error.message);
  }
}

TraitsValidationError 扩展 Error 并揭露:

  • field: 失败的特性字段名称
  • invalidValue: 被拒绝的值
  • message:可读解释

用法边界

此软件包只拥有特性数据 .

  • 没有劳动力个人所有权
  • 没有迅速生成
  • 没有特定产品的逻辑
  • 无云或运行时间服务假设
  • 没有动态学习或适应引擎
  • 没有从其他中继助理包导入

特质和劳动力是有意分开的。 产品可能将特异性值构成人a提示或合成器输入,但该成分属于本包之外.

适应模式

V1 适应层为只读和产品所有:包和产品读作a TraitsProvider 并将其值应用到它们自己的格式化或合成逻辑.

格式化用法示例:

const traits = runtime.definition.traits;

const useMarkdown =
  caps.supportsMarkdown && (traits?.surfaceFormatting?.preferMarkdown ?? true);

const responseVoice = traits?.traits.voice ?? 'concise';

示例合成用法:

const traits = context.definition?.traits;

return assembleResponse(results, {
  voice: traits?.traits.voice ?? 'concise',
  formality: traits?.traits.formality ?? 'professional',
});

软件包不会生成提示,发送格式化的输出,或者解释超出验证范围的域名词汇.

核心整合

@agent-assistant/core 可以在 AssistantDefinition数字 :

const assistant = createAssistant({
  id: 'sage',
  name: 'Sage',
  traits: createTraitsProvider({
    voice: 'concise',
    formality: 'professional',
    proactivity: 'medium',
    riskPosture: 'moderate',
  }),
  capabilities: {
    reply: () => undefined,
  },
});

田地可选. 没有特征的助理继续工作不变.

地方发展

从 packages/traits数字 :

npm install
npm run build
npm test

这个软件包在孤立状态下可运行,并且具有零运行时间依赖性.

TRATS PACKAGE 缩写

版本与发布记录

@agent-assistant/traits 共发布 72 个版本,首次发布于 2026/04/13;过去 12 个月发布了 72 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.37latest2026/10/041 个月前
0.4.362026/10/041 个月前
0.5.02026/05/235 个月前
0.4.352026/05/235 个月前
0.4.342026/05/235 个月前
0.4.332026/05/155 个月前

关于 @agent-assistant/traits 的常见问题

@agent-assistant/traits 是什么?

经验证的SDK代理助理的不可移动特性

如何安装 @agent-assistant/traits?

在项目目录运行 npm install @agent-assistant/traits,或使用 pnpm add / yarn add / bun add。

@agent-assistant/traits 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agent-assistant/traits 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@agent-assistant/traits 可以商用吗?

@agent-assistant/traits 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@agent-assistant/traits 的下载量有多少?

根据 npm 官方下载统计,@agent-assistant/traits 在 2026/10/05 – 2026/11/03 这 30 天内被下载 11,914 次,日均约 397 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agent-assistant/traits 还在维护吗?

最新版本 0.4.37 发布于 2026/10/04(1 个月前);至今共发布 72 个版本,其中过去 12 个月发布了 72 个;首次发布于 2026/04/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。