# @dmfaster/sdk 中文文档

规范地址：https://npmcn.com/package/%40dmfaster/sdk/

版本：2\.7\.6
npm 元数据更新时间：2026-10-25T11:19:06.810Z
中文译文更新时间：2026-11-12T13:04:26.952Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dmfaster/sdk
原文对照：https://npmcn.com/package/%40dmfaster/sdk/?lang=original
项目主页：https://dmfaster.com/
源码仓库：https://github.com/dmfaster/agents

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：3.4 MB，51 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：24\.x
- 运行依赖：0 个
- 首次发布：2026-07-29T19:28:56.891Z
- 最新版本发布：2026-10-25T11:19:06.488Z
- 近 30 天下载量：3580（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 32 个）

## 中文简介

为DM快速代理API打入了客户端.

## 安装

```sh
npm install @dmfaster/sdk
```

也可以使用：`pnpm add @dmfaster/sdk`、`yarn add @dmfaster/sdk`、`bun add @dmfaster/sdk`

## README

# @dmfaster/ sdk (英语)

为DM快取代理2.0打入了Node.js客户端. 它暴露了有界限的工作空间 检查 无国籍运动规划 准确的观众预览 私人起草和授权通过 范围,工作空间 `dmf_pat_…` 符号 .

> 分发便条:下面的登记命令只有在这个精确度之后才能工作 发布. 在此之前,维护者使用一个 授权源检出 .

```bash
npm install @dmfaster/sdk@2.7.6
```

非落下端点必须使用HTTPS. 客户端也拒绝 HTTP 重定向, 所以 无法将无记名标志传送到不同的来源.

```ts
import { createDmfasterClient } from "@dmfaster/sdk";

const client = createDmfasterClient({
  baseUrl: process.env.DMFASTER_API_URL!,
  token: process.env.DMFASTER_TOKEN!,
});

const result = await client.invoke("campaigns.list", {
  status: "Running",
  limit: 10,
});
```

运动规划的呼唤需要最新的运动状态。 这保持了 公共 API 无国籍,同时允许任何客户恢复、验证或交出 计划给另一个特工 发射和暂停是两步操作: 飞行前,让所有者批准 确切的竞选版本 在DM更快,然后 以发回的许可身份和同等能力援引该诉讼 键。 重复准确的飞行前读取现有的授权状态. A 类 客户端提供 `approved` 布尔从未被接受为授权 .

发射前飞行是一种歧视的结果. `status: "setup_required"` 用品 人类拥有的浏览器设置 URL 以及飞行前要恢复的确切输入 竞选活动仍然被禁用. `status: "approval_required"` 供应 版本约束授权和批准 URL. 浏览器设置从未替换 用于批准发射.

呼叫者必须提供绝对的 API 基础 URL 和 范围无记名标志 . SDK 将工具输入直接发送给 `POST /api/v1/agent/tools/{toolName}`,应用限定的超时,并验证 返回前共享结果封.

## 导入Instagram 用户名

保存已审查过的用户名收藏为私有列表 :

```bash
dmfaster list import --name "Finland Coaches" --file instagram-usernames.csv --json
```

使用带有可选选项的一栏 CSV `username` 或者说 `instagram_username` 标题, 或每行有一个用户名。 UTF-8 BOM,引用的单元格,和 CRLF 支持. 最多 1000行和64KiB被接受. 无效行拒绝整个导入 。 大小写 和领导@实现正常化;重复报告并删除。 命令 从名称和唯一用户名中获取一个稳定的重试密钥; 提供新 `--idempotency-key` 故意创建另一个副本.

SDK当量是 `client.invoke("list.import", { name, usernames, idempotencyKey })`它要求 `campaigns:write` 并且在所有计划中,包括Basic上都可以使用。 成功的结果包括: `listId`, (中文(简体) ), `name`, (中文(简体) ), `importedCount`, (中文(简体) ), `inputCount`, (中文(简体) ), `duplicateCount`, (中文(简体) ), `created`,以及 `replayed`。 。 。 . 更改的有效载荷或编辑后保存的列表返回 `idempotency_conflict`。 。 。 . 该列表可在竞选建设者中选择;没有创建竞选 无所寄出. 导入验证语法,而不是活的Instagram账户存在.

## 现有Instagram列表 (1.1

查找已保存的列表, 检查整个受众是否准确的用户名, 删除 a 并且通过同一合同筹备一场未启动的运动:

```bash
dmfaster lists list --query "Coaches" --json
dmfaster list inspect LIST_ID --username pt.j.jylha --json
dmfaster list target remove LIST_ID --username pt.j.jylha --expected-version INSPECTED_UPDATED_AT --json
dmfaster campaign draft prepare --input draft.json --json
```

JSON草案载有 `listId`, (中文(简体) ), `expectedListUpdatedAt`, (中文(简体) ), `expectedTargetCount`, (中文(简体) ), `name`, (中文(简体) ), `messageVariants` (1-4个字符串), `dailyCap`, (中文(简体) ), `pacingSeconds`, (中文(简体) ), `onlyNewChats`, (中文(简体) ), `skipPreviouslyMessaged`,以及 `idempotencyKey`。使用该版本 以及最新检查/搬运的准确总数。 核查 保存副本和设置, 并总是返回已禁用 `Draft`它不会 启动或发送手臂。 重用不同设置或编辑对象的密钥 失败而不改变原来的竞选.

SDK 操作名称为 `lists.list`, (中文(简体) ), `list.inspect`, (中文(简体) ), `list.target.remove`, (中文(简体) ), `campaign.draft.prepare`,以及 `campaign.draft.update`; MCP 名称以下划线取代点. 列表 读取要求 `campaigns:read`; 删除需要所有者 `campaigns:write`· ; 起草草案需要两种范围。 不需要公司搜查权 这些Instagram列表。 现有的运动发起/暂停批准没有变化.

Instagram运动总是排除已知的联系人: `onlyNewChats` 财务报告和审定财务报表 `skipPreviouslyMessaged` 都一样 `true`未支持的值被拒绝 在起草之前.

修改现有的残疾、未启动的社会运动草案,使用 `dmfaster campaign draft update --input update.json --json`供应 `campaignId`, (中文(简体) ), `expectedCampaignUpdatedAt` 和无能的 `updates` 含有其中任何一种的物体 `name`, (中文(简体) ), `messageVariants`, (中文(简体) ), `dailyCap` (1-60),或 `pacingSeconds` (12-3,600) (中文(简体) ). 外出设置和观众保存. Stale版本和开始的竞选活动被拒绝. 在不确定之后 回答,在重试前检查运动。 无需批准发射 编辑已禁用的草稿.

混合Instagram/Facebook/LinkedIn草稿,呼叫 `campaign.copy.inspect` 读取确切邀请模式、注释、保存序列、Instagram/脸书 `messageVariants`,并有效 `linkedinAcceptedMessage`。 。 。 . 不带便条就发出邀请,然后设置一个DM `linkedinInviteMode` 改为 `invite_only` 财务报告和审定财务报表 `linkedinFollowUpSequence` 到第一个启用的序列 链接 在包含DM文本的步骤中. 第一步一到就排队 连接被接受,或者如果该人已经连接; 所需员额 `delayDays: 1` 不延迟接收消息。 以后的步骤 使用他们所配置的延迟 。 在另一条竞选渠道上,一个已知的人类答复 已链接 步骤中,在发送前进行最后检查. 仅链接 运动用途 `followUpSequence` 为这些步骤。 更新后检查 校验已保存的副本; 编辑时从未启动草稿 .

自动发送窗口也可以通过编辑 `campaign.draft.update`数字 : `instagramSendingWindowEnabled` 是一个布尔; `instagramSendingWindowStartMinute` 0-1380为; `instagramSendingWindowEndMinute` - 60-1440;以及 `instagramSendingWindowWeekdays` 是1–127(星期一=1,星期二=2)的位图, 周日=64;周一至周五=31。 间隔必须至少为60分钟 在同一天里,我们开始讨论 时间使用工作空间时区返回 `campaign.inspect` 内 `settings`,与当前窗口并列,复制,节奏,并启用状态. 更改间隔时发送两个端点 。 保存的窗口可切换 草案停止使用时进行或关闭;只有单独的发射操作 手持时间表。 已经开始的运动不能用这个工具草案来编辑.

## 直接运动控制(自1.8.0起)

老板可以给钱 `campaigns:control` 当连接到代理人时 `full` 简介。 明确用户指示即可发射或暂停: 飞行前返回 `ready` 并有版本限制的授权ID 立即 执行。 仍然需要正常的行动范围。 现有全权证书 保留每个行动的批准,直到所有者重新连接并给予这一许可. 计划或筹备一场运动从来不授权发动.

## 恢复审查和完成出口(自1.8.0起)

```ts
import { runCompanyFitReview, collectCompanyFitResults } from "@dmfaster/sdk";
const receipt = await runCompanyFitReview(client, runId, {
  maxDurationMs: 30 * 60_000,
  onProgress: (progress) => console.error(progress.complete, progress.total),
});
if (receipt.stopReason === "complete") {
  const reviewed = await collectCompanyFitResults(client, runId);
}
```

瞬间重试保留可持久运行的ID. 预算到期返回进度; 取消调用 `request_aborted`,并重复相同的运行恢复. 导出调和一个完整、不变的版本和每一个独特的公司 返回数据。 新的打字工具还包括状态/历史/注销, 排名组、复制性能、日历观察/记录和允许 呼叫读取。 外部预订需要准确的用户指示并授予范围; SDK的可用性不能确定生产释放.

### 心地欢快的感谢

`agent.heartbeat` 默认情况下使用压缩成功响应。 HTTP和MCP携带被接受的心跳时间戳,相容性标记和下个间隔;身份,状态和干跑状态已经在请求中. SDK在其常规结果信封中恢复这些与请求相关的字段(诊断持续时间不详并被表示为零). 使用 `responseMode: "full"` 原诊断信封。 错误保留全部可操作的细节。 Sandbox的确认使用工作空间的可提前的时钟.

## 常见问题

### @dmfaster/sdk 是什么？

为DM快速代理API打入了客户端\.

### 如何安装 @dmfaster/sdk？

在项目目录运行 npm install @dmfaster/sdk，或使用 pnpm add / yarn add / bun add。

### @dmfaster/sdk 支持 TypeScript 吗？

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

### @dmfaster/sdk 支持 ESM 还是 CommonJS？

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

### @dmfaster/sdk 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js 24\.x。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @dmfaster/sdk 可以商用吗？

@dmfaster/sdk 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @dmfaster/sdk 的下载量有多少？

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

### @dmfaster/sdk 还在维护吗？

最新版本 2\.7\.6 发布于 2026/10/25（19 天前）；至今共发布 32 个版本，其中过去 12 个月发布了 32 个；首次发布于 2026/07/30。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

