@ai-zen/agents-sdk 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.2] - 2026-08-31
4
+
5
+ ### 🎯 Optimized
6
+
7
+ - **默认 Agent 提示词重构(`DEFAULT_AGENT_DEFINITION`)** — 精简并统一风格:
8
+ - 人格设定调整为"幽默风趣、严谨可靠"
9
+ - 原有 8 条原则压缩为一条核心规则:遇到任何不明确、不确定、有矛盾或可能影响结果的状况,立即停下并直接询问用户,而不是自行脑补、猜测或硬干
10
+ - 新增"惜字如金"原则:只交代结果与必要说明,执行过程(工具调用、读写、搜索等)用户均已可见,不必再复述,以节省 token
11
+ - 保留护栏:主动调用工具、如实汇报、并只在你被指定的工作范围内行事
12
+ - 注入"当前操作系统"信息,动态使用 `process.platform`,适配不同平台
13
+ - **`ViewImageTool` 增加本地 URL 校验** — 新增 `isLocalUrl()`,拒绝 `file://` 协议及指向本机回环地址(`localhost`/`127.0.0.1`/`[::1]`/`0.0.0.0`)的 http(s) URL(API 服务商无法下载访问),在调用早期直接报错;`function.description` 与 `path_or_url` 参数说明同步补充"不支持本地 URL,本地图片请使用文件路径"
14
+
3
15
  ## [0.9.1] - 2026-08-28
4
16
 
5
17
  ### 🔧 Fixed
@@ -3,6 +3,16 @@ import { promises as fs } from "node:fs";
3
3
  import path from "node:path";
4
4
  import { SdkCallbackTool } from "../../../runtime/SdkCallbackTool.js";
5
5
  const SUPPORTED_EXT = [".jpg", ".jpeg", ".png", ".gif", ".webp"];
6
+ /**
7
+ * 是否为"本地 URL"——指向本地/回环地址,API 服务商无法下载访问。
8
+ * 覆盖 file:// 等本地协议,以及指向本机的 http(s) 地址(localhost、127.0.0.1、[::1]、0.0.0.0)。
9
+ */
10
+ function isLocalUrl(value) {
11
+ if (/^file:\/\//i.test(value))
12
+ return true;
13
+ const m = value.match(/^https?:\/\/([^/?#]+)/i);
14
+ return !!m && /^(localhost|127\.0\.0\.1|\[::1\]|0\.0\.0\.0)$/i.test(m[1]);
15
+ }
6
16
  /**
7
17
  * 查看图片工具 — 让 Agent 主动查看/分析一张图片。**仅对视觉模型可用**:
8
18
  * 由 `isAvailable(config, definition)` 声明(从 definition.modelId 解析模型,检查 Model.vision),
@@ -24,13 +34,13 @@ export class ViewImageTool extends SdkCallbackTool {
24
34
  }
25
35
  function = {
26
36
  name: "viewImage",
27
- description: "查看一张图片并分析其内容。传入本地图片路径或 http(s) 图片 URL。本地图片会自动上传(Files API)后引用,网络图片直接引用。适合识别图片文字、描述图片内容、分析图表等。",
37
+ description: "查看一张图片并分析其内容。传入本地图片路径或 http(s) 图片 URL。本地图片会自动上传(Files API)后引用,网络图片直接引用。不支持本地 URL(如 file:// 协议、指向本机 localhost/127.0.0.1 的 http(s) 地址),本地图片请使用文件路径。适合识别图片文字、描述图片内容、分析图表等。",
28
38
  parameters: {
29
39
  type: "object",
30
40
  properties: {
31
41
  path_or_url: {
32
42
  type: "string",
33
- description: "本地图片路径(相对/绝对)或 http(s) 图片 URL。支持的格式:JPEG、PNG、GIF、WebP。",
43
+ description: "本地图片路径(相对/绝对)或 http(s) 图片 URL。支持的格式:JPEG、PNG、GIF、WebP。不支持本地 URL(如 file:// 协议、指向本机 localhost/127.0.0.1 的 http(s) 地址),本地图片请使用文件路径。",
34
44
  },
35
45
  },
36
46
  required: ["path_or_url"],
@@ -47,6 +57,10 @@ export class ViewImageTool extends SdkCallbackTool {
47
57
  return "viewImage 需要提供 path_or_url 参数(本地图片路径或 http(s) URL)。";
48
58
  }
49
59
  const value = target.trim();
60
+ // 拒绝服务商无法访问的"本地 URL":file:// 等本地协议,或指向本机回环地址(localhost/127.0.0.1/[::1]/0.0.0.0)的 http(s) 地址
61
+ if (isLocalUrl(value)) {
62
+ return "不支持本地 URL(API 服务商无法下载访问)。本地图片请使用文件路径,而不是本地链接。";
63
+ }
50
64
  try {
51
65
  // 网络图片:直接返回 image_url 内容块(无需上传)
52
66
  if (/^https?:\/\//i.test(value)) {
@@ -10,14 +10,9 @@ export const DEFAULT_AGENT_DEFINITION = {
10
10
  name: "默认助手",
11
11
  description: "默认的 AI 助手,适用于日常问答和任务执行。",
12
12
  messages: [
13
- Message.System(`你是一个严谨可靠的智能助手。请用中文回复,说话风格参照官方文件。
13
+ Message.System(`你是一个幽默风趣、严谨可靠的智能助手,请用中文回复。当前操作系统:${process.platform}。
14
14
 
15
- - 开动脑筋 — 主动思考、灵活运用工具,而不是机械执行
16
- - 实事求是 — 知之为知之,不知为不知,而不是凭空编造;如果用户意图不明确,应先提问澄清,而不是自行脑补
17
- - 一切行动听指挥 — 严格遵循用户指令,而不是自作主张
18
- - 安全第一 — 风险操作先告知确认,而不是盲目执行
19
- - 能打胜仗 — 写优秀的代码,而不是只限于能用的代码
20
- - 有矛盾就问 — 如果用户指令中存在自相矛盾之处,应指出矛盾并请求澄清,而不是自行取舍`),
15
+ 惜字如金:只交代结果和必要说明,执行过程(工具调用、读写、搜索等)用户均已可见,不必再复述。遇到任何不明确、不确定、有矛盾或可能影响结果的状况,立即停下并直接询问用户,而不是自行脑补、猜测或硬干。除此之外,主动调用工具、如实汇报,并只在你被指定的工作范围内行事。`),
21
16
  ],
22
17
  permissions: {
23
18
  tools: { allow: ["*"] },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-zen/agents-sdk",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "AI-Zen Agents SDK — shared business logic for CLI and Desktop",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",