@downcity/agent 1.1.100 → 1.1.104

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.
Files changed (102) hide show
  1. package/bin/agent/local/Agent.d.ts +2 -2
  2. package/bin/agent/local/Agent.d.ts.map +1 -1
  3. package/bin/agent/local/Agent.js.map +1 -1
  4. package/bin/agent/local/AgentPluginFactory.d.ts +1 -6
  5. package/bin/agent/local/AgentPluginFactory.d.ts.map +1 -1
  6. package/bin/agent/local/AgentPluginFactory.js +1 -19
  7. package/bin/agent/local/AgentPluginFactory.js.map +1 -1
  8. package/bin/agent/local/AgentRuntimeFactory.d.ts +2 -2
  9. package/bin/agent/local/AgentRuntimeFactory.d.ts.map +1 -1
  10. package/bin/agent/local/services/AgentAssemblyService.d.ts +4 -4
  11. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -1
  12. package/bin/agent/local/services/AgentAssemblyService.js +5 -6
  13. package/bin/agent/local/services/AgentAssemblyService.js.map +1 -1
  14. package/bin/config/AgentInitializer.d.ts.map +1 -1
  15. package/bin/config/AgentInitializer.js +6 -12
  16. package/bin/config/AgentInitializer.js.map +1 -1
  17. package/bin/config/DowncitySchema.d.ts.map +1 -1
  18. package/bin/config/DowncitySchema.js +0 -8
  19. package/bin/config/DowncitySchema.js.map +1 -1
  20. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  21. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  22. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  23. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  24. package/bin/executor/composer/system/default/assets/plugin.prompt.d.ts +1 -1
  25. package/bin/executor/composer/system/default/assets/plugin.prompt.d.ts.map +1 -1
  26. package/bin/executor/composer/system/default/assets/plugin.prompt.js +1 -1
  27. package/bin/executor/composer/system/default/assets/plugin.prompt.js.map +1 -1
  28. package/bin/executor/composer/system/default/assets/task.prompt.d.ts +1 -1
  29. package/bin/executor/composer/system/default/assets/task.prompt.d.ts.map +1 -1
  30. package/bin/executor/composer/system/default/assets/task.prompt.js +1 -1
  31. package/bin/executor/composer/system/default/assets/task.prompt.js.map +1 -1
  32. package/bin/executor/messages/AssistantFileResource.d.ts +3 -2
  33. package/bin/executor/messages/AssistantFileResource.d.ts.map +1 -1
  34. package/bin/executor/messages/AssistantFileResource.js +88 -20
  35. package/bin/executor/messages/AssistantFileResource.js.map +1 -1
  36. package/bin/executor/tools/plugin/PluginToolBridge.d.ts +3 -3
  37. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -1
  38. package/bin/executor/tools/plugin/PluginToolBridge.js +1 -1
  39. package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -1
  40. package/bin/index.d.ts +1 -3
  41. package/bin/index.d.ts.map +1 -1
  42. package/bin/index.js +0 -1
  43. package/bin/index.js.map +1 -1
  44. package/bin/plugin/core/BasePlugin.d.ts +0 -14
  45. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  46. package/bin/plugin/core/BasePlugin.js +0 -22
  47. package/bin/plugin/core/BasePlugin.js.map +1 -1
  48. package/bin/plugin/core/Manager.d.ts +1 -1
  49. package/bin/plugin/core/Manager.d.ts.map +1 -1
  50. package/bin/plugin/core/Manager.js +1 -1
  51. package/bin/plugin/core/Manager.js.map +1 -1
  52. package/bin/plugin/core/PluginRegistry.d.ts +2 -2
  53. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  54. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  55. package/bin/plugin/core/PluginStateController.d.ts +1 -9
  56. package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
  57. package/bin/plugin/core/PluginStateController.js +0 -12
  58. package/bin/plugin/core/PluginStateController.js.map +1 -1
  59. package/bin/plugin/types/Plugin.d.ts +1 -1
  60. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  61. package/bin/types/config/DowncityConfig.d.ts +2 -23
  62. package/bin/types/config/DowncityConfig.d.ts.map +1 -1
  63. package/bin/types/plugin/PluginRuntime.d.ts +2 -2
  64. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  65. package/bin/types/runtime/agent/AgentContext.d.ts +2 -2
  66. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  67. package/package.json +2 -2
  68. package/scripts/image-plugin-job.test.mjs +21 -9
  69. package/src/agent/local/Agent.ts +2 -2
  70. package/src/agent/local/AgentPluginFactory.ts +1 -33
  71. package/src/agent/local/AgentRuntimeFactory.ts +2 -2
  72. package/src/agent/local/services/AgentAssemblyService.ts +6 -9
  73. package/src/config/AgentInitializer.ts +6 -12
  74. package/src/config/DowncitySchema.ts +0 -8
  75. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  76. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +3 -3
  77. package/src/executor/composer/system/default/assets/plugin.prompt.ts +1 -1
  78. package/src/executor/composer/system/default/assets/plugin.prompt.ts.txt +12 -22
  79. package/src/executor/composer/system/default/assets/task.prompt.ts +1 -1
  80. package/src/executor/composer/system/default/assets/task.prompt.ts.txt +1 -1
  81. package/src/executor/messages/AssistantFileResource.ts +111 -22
  82. package/src/executor/tools/plugin/PluginToolBridge.ts +5 -5
  83. package/src/index.ts +1 -11
  84. package/src/plugin/core/BasePlugin.ts +0 -27
  85. package/src/plugin/core/Manager.ts +0 -2
  86. package/src/plugin/core/PluginRegistry.ts +2 -1
  87. package/src/plugin/core/PluginStateController.ts +0 -15
  88. package/src/plugin/types/Plugin.ts +1 -1
  89. package/src/types/config/DowncityConfig.ts +1 -24
  90. package/src/types/plugin/PluginRuntime.ts +2 -2
  91. package/src/types/runtime/agent/AgentContext.ts +2 -2
  92. package/tsconfig.tsbuildinfo +1 -1
  93. package/bin/plugin/core/ImagePlugin.d.ts +0 -57
  94. package/bin/plugin/core/ImagePlugin.d.ts.map +0 -1
  95. package/bin/plugin/core/ImagePlugin.js +0 -112
  96. package/bin/plugin/core/ImagePlugin.js.map +0 -1
  97. package/bin/types/plugin/ImagePlugin.d.ts +0 -94
  98. package/bin/types/plugin/ImagePlugin.d.ts.map +0 -1
  99. package/bin/types/plugin/ImagePlugin.js +0 -10
  100. package/bin/types/plugin/ImagePlugin.js.map +0 -1
  101. package/src/plugin/core/ImagePlugin.ts +0 -132
  102. package/src/types/plugin/ImagePlugin.ts +0 -103
@@ -101,23 +101,6 @@ export interface DowncityChatPluginConfig {
101
101
  */
102
102
  channels?: DowncityChatPluginChannelsConfig;
103
103
  }
104
- /**
105
- * skill 插件配置。
106
- */
107
- export interface DowncitySkillPluginConfig {
108
- /**
109
- * 当前插件是否启用。
110
- */
111
- enabled?: boolean;
112
- /**
113
- * 技能目录列表。
114
- */
115
- paths?: string[];
116
- /**
117
- * 是否允许读取项目外部技能目录。
118
- */
119
- allowExternalPaths?: boolean;
120
- }
121
104
  /**
122
105
  * downcity.json 中的插件配置映射。
123
106
  */
@@ -126,14 +109,10 @@ export interface DowncityPluginConfigMap {
126
109
  * chat 插件配置。
127
110
  */
128
111
  chat?: DowncityChatPluginConfig;
129
- /**
130
- * skill 插件配置。
131
- */
132
- skill?: DowncitySkillPluginConfig;
133
112
  /**
134
113
  * 其他插件配置。
135
114
  */
136
- [pluginName: string]: JsonObject | DowncityChatPluginConfig | DowncitySkillPluginConfig | undefined;
115
+ [pluginName: string]: JsonObject | DowncityChatPluginConfig | undefined;
137
116
  }
138
117
  export interface DowncityConfig {
139
118
  $schema?: string;
@@ -159,7 +138,7 @@ export interface DowncityConfig {
159
138
  *
160
139
  * 关键点(中文)
161
140
  * - 所有可配置能力统一收敛到 `plugins`,不再保留独立 `services` 域。
162
- * - plugin 私有配置(例如 `plugins.skill.paths`、`plugins.chat.channels`)也放在这里。
141
+ * - 需要持久化到项目文件的 plugin 配置(例如 `plugins.chat.channels`)放在这里。
163
142
  * - key 为 plugin 名称,value 为对应插件的结构化配置对象。
164
143
  * - 当前阶段允许各 plugin 自定义字段,但必须保持 JSON 可序列化。
165
144
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DowncityConfig.d.ts","sourceRoot":"","sources":["../../../src/types/config/DowncityConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC;;OAEG;IACH,EAAE,CAAC,EAAE,yBAAyB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,6BAA6B,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,EAAE,gCAAgC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,yBAAyB,CAAC;IAClC;;OAEG;IACH,CAAC,UAAU,EAAE,MAAM,GACf,UAAU,GACV,wBAAwB,GACxB,yBAAyB,GACzB,SAAS,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB"}
1
+ {"version":3,"file":"DowncityConfig.d.ts","sourceRoot":"","sources":["../../../src/types/config/DowncityConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC;;OAEG;IACH,EAAE,CAAC,EAAE,yBAAyB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,6BAA6B,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,EAAE,gCAAgC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC;;OAEG;IACH,CAAC,UAAU,EAAE,MAAM,GACf,UAAU,GACV,wBAAwB,GACxB,SAAS,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB"}
@@ -45,9 +45,9 @@ export interface PluginAvailability {
45
45
  reasons: string[];
46
46
  }
47
47
  /**
48
- * Plugin 调用端口。
48
+ * 当前 Agent 可用的 plugin 调用面。
49
49
  */
50
- export interface PluginPort {
50
+ export interface AgentPlugins {
51
51
  /** 列出全部已注册 plugin。 */
52
52
  list(): PluginView[];
53
53
  /** 检查指定 plugin 可用性。 */
@@ -1 +1 @@
1
- {"version":3,"file":"PluginRuntime.d.ts","sourceRoot":"","sources":["../../../src/types/plugin/PluginRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginRuntime.d.ts","sourceRoot":"","sources":["../../../src/types/plugin/PluginRuntime.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import type { AgentRuntime } from "../../../types/runtime/agent/AgentRuntime.js"
15
15
  import type { AgentPathRuntime, AgentPluginConfigRuntime } from "../../../types/agent/AgentRuntimeAssembly.js";
16
16
  import type { DowncityConfig } from "../../../types/config/DowncityConfig.js";
17
17
  import type { JsonValue } from "../../../types/common/Json.js";
18
- import type { PluginPort } from "../../../plugin/types/Plugin.js";
18
+ import type { AgentPlugins } from "../../../plugin/types/Plugin.js";
19
19
  import type { SessionMetadataV1, SessionMessageV1 } from "../../../executor/types/SessionMessages.js";
20
20
  import type { SessionRunInput, SessionRunResult } from "../../../executor/types/SessionRun.js";
21
21
  import type { SessionHistoryStore } from "../../../executor/store/history/SessionHistoryStore.js";
@@ -233,7 +233,7 @@ export interface AgentContext {
233
233
  /**
234
234
  * Plugin 调用入口。
235
235
  */
236
- plugins: PluginPort;
236
+ plugins: AgentPlugins;
237
237
  }
238
238
  /**
239
239
  * 允许 optional 字段的结构化配置对象。
@@ -1 +1 @@
1
- {"version":3,"file":"AgentContext.d.ts","sourceRoot":"","sources":["../../../../src/types/runtime/agent/AgentContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentContext.d.ts","sourceRoot":"","sources":["../../../../src/types/runtime/agent/AgentContext.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@downcity/agent",
3
- "version": "1.1.100",
3
+ "version": "1.1.104",
4
4
  "type": "module",
5
5
  "description": "Downcity Agent 运行时 — 单 Agent 执行壳与本机 RPC 能力",
6
6
  "main": "./bin/index.js",
@@ -29,7 +29,7 @@
29
29
  "node-cron": "^4.2.1",
30
30
  "ws": "^8.21.0",
31
31
  "zod": "^4.4.3",
32
- "@downcity/type": "0.1.34"
32
+ "@downcity/type": "0.1.35"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/fs-extra": "^11.0.4",
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - Agent 只调用 `generate` action。
6
- * - 插件内部直接调用注入的 image 函数。
6
+ * - 插件内部调用注入的 image_create / image_result 任务函数并轮询。
7
7
  * - 成功后返回 UIMessage,后续由 plugin bridge 落盘 file parts。
8
8
  */
9
9
 
@@ -27,12 +27,20 @@ function create_image_message() {
27
27
  };
28
28
  }
29
29
 
30
- test("ImagePlugin generate calls image and returns the generated message", async () => {
30
+ test("ImagePlugin generate creates and polls image jobs", async () => {
31
31
  const calls = [];
32
+ const message = create_image_message();
32
33
  const plugin = new ImagePlugin({
33
- image: (input) => {
34
- calls.push(["image", input.prompt]);
35
- return create_image_message();
34
+ min_poll_interval_ms: 1,
35
+ image_create: (input) => {
36
+ calls.push(["create", input.prompt]);
37
+ return { job_id: "img_1", status: "queued", poll_after_ms: 1 };
38
+ },
39
+ image_result: (input) => {
40
+ calls.push(["result", input.job_id]);
41
+ return calls.length === 2
42
+ ? { job_id: input.job_id, status: "running", poll_after_ms: 1 }
43
+ : { job_id: input.job_id, status: "succeeded", result: message, poll_after_ms: 1 };
36
44
  },
37
45
  });
38
46
 
@@ -46,14 +54,18 @@ test("ImagePlugin generate calls image and returns the generated message", async
46
54
  assert.equal(result.success, true);
47
55
  assert.equal(result.data.role, "assistant");
48
56
  assert.equal(result.data.parts[0].type, "file");
49
- assert.deepEqual(calls, [["image", "draw"]]);
57
+ assert.deepEqual(calls, [
58
+ ["create", "draw"],
59
+ ["result", "img_1"],
60
+ ["result", "img_1"],
61
+ ]);
50
62
  });
51
63
 
52
64
  test("ImagePlugin generate reports image failure", async () => {
53
65
  const plugin = new ImagePlugin({
54
- image: () => {
55
- throw new Error("provider failed");
56
- },
66
+ min_poll_interval_ms: 1,
67
+ image_create: () => ({ job_id: "img_1", status: "queued", poll_after_ms: 1 }),
68
+ image_result: () => ({ job_id: "img_1", status: "failed", error: "provider failed", poll_after_ms: 1 }),
57
69
  });
58
70
 
59
71
  const result = await plugin.actions.generate.execute({
@@ -11,7 +11,7 @@ import type { Tool } from "ai";
11
11
  import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
12
12
  import type { AgentRuntime } from "@/types/runtime/agent/AgentRuntime.js";
13
13
  import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
14
- import type { PluginPort } from "@/plugin/types/Plugin.js";
14
+ import type { AgentPlugins } from "@/plugin/types/Plugin.js";
15
15
  import type {
16
16
  AgentCreateSessionInput,
17
17
  AgentListSessionsInput,
@@ -41,7 +41,7 @@ export class Agent {
41
41
  readonly id: string;
42
42
  readonly path: string;
43
43
  readonly tools: Record<string, Tool>;
44
- readonly plugins: PluginPort;
44
+ readonly plugins: AgentPlugins;
45
45
 
46
46
  private readonly logger: Logger;
47
47
  private readonly runtime: AgentRuntime;
@@ -2,17 +2,12 @@
2
2
  * Agent plugin 装配工厂。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 这里只负责把 plugin 实例装配成 registry 与对外 port
5
+ * - 这里只负责把 plugin 实例装配成 registry。
6
6
  * - Agent 仍然持有长期状态;这里不创建新的运行时层级。
7
7
  */
8
8
 
9
9
  import type { BasePlugin } from "@/plugin/core/BasePlugin.js";
10
10
  import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
11
- import type {
12
- PluginAvailability,
13
- PluginPort,
14
- PluginView,
15
- } from "@/plugin/types/Plugin.js";
16
11
  import { HookRegistry } from "@/plugin/core/HookRegistry.js";
17
12
  import { PluginRegistry } from "@/plugin/core/PluginRegistry.js";
18
13
  import { isPluginEnabled } from "@/plugin/core/Activation.js";
@@ -54,30 +49,3 @@ export function createAgentPluginRegistry(
54
49
  }
55
50
  return registry;
56
51
  }
57
-
58
- /**
59
- * 创建对外暴露的 plugin 调用门面。
60
- */
61
- export function createAgentPluginPort(
62
- plugin_registry: PluginRegistry,
63
- ): PluginPort {
64
- return {
65
- list: (): PluginView[] => plugin_registry.list(),
66
- availability: async (plugin_name: string): Promise<PluginAvailability> =>
67
- await plugin_registry.availability(plugin_name),
68
- runAction: async (params) => await plugin_registry.runAction(params),
69
- pipeline: async <T>(point_name: string, value: T): Promise<T> =>
70
- await plugin_registry.pipeline(point_name, value),
71
- guard: async <T>(point_name: string, value: T): Promise<void> => {
72
- await plugin_registry.guard(point_name, value);
73
- },
74
- effect: async <T>(point_name: string, value: T): Promise<void> => {
75
- await plugin_registry.effect(point_name, value);
76
- },
77
- resolve: async <TInput, TOutput>(
78
- point_name: string,
79
- value: TInput,
80
- ): Promise<TOutput> =>
81
- await plugin_registry.resolve<TInput, TOutput>(point_name, value),
82
- };
83
- }
@@ -16,7 +16,7 @@ import type {
16
16
  SessionPort,
17
17
  } from "@/types/runtime/agent/AgentContext.js";
18
18
  import type { AgentRuntime } from "@/types/runtime/agent/AgentRuntime.js";
19
- import type { PluginPort } from "@/plugin/types/Plugin.js";
19
+ import type { AgentPlugins } from "@/plugin/types/Plugin.js";
20
20
  import type { AgentManagedSession } from "@/types/agent/AgentTypes.js";
21
21
  import {
22
22
  createAgentPathRuntime,
@@ -66,7 +66,7 @@ export interface CreateAgentContextOptions {
66
66
  /** 当前 plugin 实例集合。 */
67
67
  plugin_instances: Map<string, BasePlugin>;
68
68
  /** 对外 plugin 调用端口。 */
69
- plugins: PluginPort;
69
+ plugins: AgentPlugins;
70
70
  /** 获取或创建 session runtime port。 */
71
71
  get_session_port: (session_id: string) => SessionPort;
72
72
  /** 解析 session 当前绑定的模型实例。 */
@@ -2,7 +2,7 @@
2
2
  * AgentAssemblyService:本地 Agent 装配服务。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 统一装配 logger、config、env、runtime、context、plugin registry 与 plugin port
5
+ * - 统一装配 logger、config、env、runtime、context 与 plugin registry
6
6
  * - 该服务只负责一次性长期对象装配,不负责 session 缓存和生命周期启动。
7
7
  * - session/lifecycle service 通过它暴露的长期对象协作,避免在 facade 中重复拼装。
8
8
  */
@@ -12,7 +12,7 @@ import type { BasePlugin } from "@/plugin/core/BasePlugin.js";
12
12
  import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
13
13
  import type { AgentRuntime } from "@/types/runtime/agent/AgentRuntime.js";
14
14
  import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
15
- import type { PluginPort } from "@/plugin/types/Plugin.js";
15
+ import type { AgentPlugins } from "@/plugin/types/Plugin.js";
16
16
  import type { AgentOptions } from "@/types/agent/AgentTypes.js";
17
17
  import { Logger } from "@/utils/logger/Logger.js";
18
18
  import { loadDowncityConfig, resolveAgentEnv } from "@/config/Config.js";
@@ -22,7 +22,6 @@ import {
22
22
  normalizeInstructionInput,
23
23
  } from "@/agent/local/AgentInstructions.js";
24
24
  import {
25
- createAgentPluginPort,
26
25
  createAgentPluginRegistry,
27
26
  } from "@/agent/local/AgentPluginFactory.js";
28
27
  import {
@@ -111,9 +110,9 @@ export interface AgentAssemblyResult {
111
110
  plugin_registry: PluginRegistry;
112
111
 
113
112
  /**
114
- * 当前对外 plugin 调用端口。
113
+ * 当前 agent plugin 调用面。
115
114
  */
116
- plugins: PluginPort;
115
+ plugins: AgentPlugins;
117
116
 
118
117
  /**
119
118
  * 当前 agent runtime。
@@ -178,14 +177,14 @@ export class AgentAssemblyService {
178
177
  list_cached_sessions: this.list_cached_sessions,
179
178
  });
180
179
 
181
- this.register_plugins(plugin_instances, runtime, this.options.plugins || []);
180
+ this.register_plugins(plugin_instances, this.options.plugins || []);
182
181
 
183
182
  let agent_context!: AgentContext;
184
183
  const plugin_registry = createAgentPluginRegistry({
185
184
  plugins: [...plugin_instances.values()],
186
185
  get_context: () => agent_context,
187
186
  });
188
- const plugins = createAgentPluginPort(plugin_registry);
187
+ const plugins = plugin_registry;
189
188
  if (this.should_register_plugin_call_tool(plugin_instances)) {
190
189
  tools.plugin_call = tools.plugin_call || plugin_tools.plugin_call;
191
190
  }
@@ -231,7 +230,6 @@ export class AgentAssemblyService {
231
230
 
232
231
  private register_plugins(
233
232
  plugin_instances: Map<string, BasePlugin>,
234
- runtime: AgentRuntime,
235
233
  plugins: BasePlugin[],
236
234
  ): void {
237
235
  for (const plugin of plugins) {
@@ -242,7 +240,6 @@ export class AgentAssemblyService {
242
240
  if (plugin_instances.has(name)) {
243
241
  throw new Error(`Duplicate plugin registration: ${name}`);
244
242
  }
245
- plugin.bindAgent(runtime);
246
243
  plugin_instances.set(name, plugin);
247
244
  }
248
245
  }
@@ -183,22 +183,16 @@ export async function initializeAgentProject(
183
183
  version: "1.0.0",
184
184
  execution,
185
185
  plugins: {
186
- skill: {
187
- enabled: true,
188
- paths: [".agents/skills"],
189
- allowExternalPaths: false,
190
- },
191
186
  ...(input.plugins || {}),
192
- },
193
- ...(Object.keys(channelsConfig).length > 0
194
- ? {
195
- plugins: {
187
+ ...(Object.keys(channelsConfig).length > 0
188
+ ? {
196
189
  chat: {
190
+ ...input.plugins?.chat,
197
191
  channels: channelsConfig,
198
192
  },
199
- },
200
- }
201
- : {}),
193
+ }
194
+ : {}),
195
+ },
202
196
  };
203
197
  await saveJson(shipJsonPath, shipConfig);
204
198
  createdFiles.push("downcity.json");
@@ -86,14 +86,6 @@ export const DOWNCITY_JSON_SCHEMA: JsonObject = {
86
86
  type: "object",
87
87
  additionalProperties: true,
88
88
  properties: {
89
- skill: {
90
- type: "object",
91
- additionalProperties: true,
92
- properties: {
93
- paths: { type: "array", items: { type: "string" } },
94
- allowExternalPaths: { type: "boolean" },
95
- },
96
- },
97
89
  chat: {
98
90
  type: "object",
99
91
  additionalProperties: true,
@@ -4,6 +4,6 @@
4
4
  */
5
5
 
6
6
  // Source: src/executor/composer/system/default/assets/core.prompt.ts.txt
7
- const TEXT_MODULE_CONTENT = "你拥有且仅拥有当前项目 {{project_path}} 的使用权和修改权。当前年份是 {{current_year}} 年。\n1. `.downcity/` 是 Downcity 的运行时数据目录(通常不需要你手动读取/修改;系统会自动写入与注入)。结构与逻辑如下:\n - `.downcity/agents/<agentId>/sessions/` 是会话消息。\n - `.downcity/memory/` 是中长期记忆。\n - `.downcity/profile/Primary.md`、`.downcity/profile/other.md`:全局 profile 记忆;存在时会自动作为 system prompt 注入。\n - `.downcity/public/`:对外静态资源目录,通过 `GET /downcity/public/<path>` 访问;用于给外部访问的路径。不要存放敏感信息,Town Agent HTTP gateway 会把 `.downcity/public/` 暴露为 HTTP 静态资源:`GET /downcity/public/<path>`,你可以把该 URL 发给用户用于下载/查看生成的文件(注意不要暴露敏感信息)。\n - `.downcity/logs/<YYYY-MM-DD>.jsonl`:运行日志(JSONL);用于排查问题,避免把原始日志整段贴给用户。\n - `.downcity/.cache/`:幂等/去重缓存(ingress/egress);不要手动改。\n - `.downcity/.debug/`:调试产物(Town 托管进程 pid/log/meta、适配器事件抓取等);仅在排查问题时查看。\n - `.downcity/data/`:小型持久化数据(预留)。\n - `.downcity/task/`:Task 目录。\n - `.downcity/sandbox/`:当前 agent 的本地命令执行 sandbox HOME/cache/tmp;shell 与 script 命令会共享它。\n2. PROFILE.md + SOUL.md + downcity.json 是你的一些配置文件,你不需要读取。\n\n# 最重要\n【关于命令执行工具】(重要)\n- 短命令、一次性命令优先使用 `shell_exec`。\n- 长任务、需要中途查状态、需要 stdin 交互时,使用 `shell_start` / `shell_status` / `shell_read` / `shell_write` / `shell_wait` / `shell_close`。\n- 先用 `shell_start` 启动命令并拿到 `shell_id`。\n- `shell_id` 是 shell 会话标识;它不是 chat `session_id`。\n- 长任务期间,优先使用 `shell_status` 查询进度,或使用 `shell_wait` 等待状态变化;不要自己写高频空轮询循环。\n- 只有在确实需要原始增量输出时,才使用 `shell_read` 按 `from_cursor` 继续读取。\n- 需要向进程 stdin 输入内容时,使用 `shell_write`。\n- 命令会话完成后若不再需要,使用 `shell_close` 主动释放资源。\n- 不要把原始超长 shell 输出直接转发给用户,应先总结。\n- shell 命令默认在当前 agent 的 sandbox 中执行:项目目录可读写,网络可用,HOME 指向 `.downcity/sandbox/`,真实用户 HOME 与系统目录不可写。\n- 安装 Python 依赖时优先使用项目内 `.venv`,不要使用 `pip install --user`。\n- 不要尝试 `sudo`、`brew install`、Xcode Command Line Tools 安装或写 `/usr/local`、`/opt/homebrew`、`/System` 等宿主系统目录;如果确实缺少系统级依赖,直接告诉用户需要在宿主机安装。\n- 下载模型、工具缓存、临时状态应自然落在 `.downcity/sandbox/` 或项目目录中,不要假设可复用真实用户缓存。\n\n# 默认决策与澄清\n- 默认先执行,再沟通:对低风险、可回滚、用户意图已经足够明显的请求,优先基于当前日期、时区、聊天上下文与常见默认值直接执行,不要在事件标题、默认平台、显然的时间表达上反复追问。\n- 只有当“缺失信息会实质改变结果”时才追问;例如:会影响日期/对象/金额/账户/发送目标,或会触发不可逆、高风险、涉隐私操作。\n- 处理时间表达时,优先使用当前环境提供的 `current_date`、`current_time` 与 `timezone`;如果入站 `<info>` 明确提供了 `user_timezone`,则优先按 `user_timezone` 解析,否则按 runtime clock 的 `timezone` 解析。像“今天/明天/下午两点/提前两小时”这类表达,应先解析为绝对时间,再执行,并在回复里明确写出绝对日期时间。\n- 当任务依赖外部权限、系统能力或第三方连接(如日历、提醒事项、聊天渠道、系统授权)时,先探测可用性,再决定是否承诺“我来创建/发送/写入”。\n- 如果探测结果显示被系统权限、宿主环境或连接状态阻塞,要直接说明真实阻塞点和下一步,而不是先给出“可以,我来做”的承诺后再多轮追问。\n- 若已经有足够信息可以一次完成多个低风险默认动作,应直接完成,并在结果里简短说明采用了哪些默认假设。\n\n# 很重要\n\n安全与边界\n- 不要执行破坏性命令(如 `rm -rf`、`git reset --hard`)除非用户明确要求。\n- 遇到 API Key、Token、Secret、环境变量、bot 凭据等密钥管理问题时,优先指导用户使用 Console(如 `Global / Env`、`Global / Channel Accounts`)维护,不要要求用户把密钥明文直接发送到当前聊天里。\n- `town keys` 只能列出已配置的 key 名与描述,不会返回密钥值。不要让用户把密钥“发给你自己”或继续尝试通过 `town keys` 获取明文。\n";
7
+ const TEXT_MODULE_CONTENT = "你拥有且仅拥有当前项目 {{project_path}} 的使用权和修改权。当前年份是 {{current_year}} 年。\n1. `.downcity/` 是 Downcity 的运行时数据目录(通常不需要你手动读取/修改;系统会自动写入与注入)。结构与逻辑如下:\n - `.downcity/agents/<agentId>/sessions/` 是会话消息。\n - `.downcity/memory/` 是中长期记忆。\n - `.downcity/profile/Primary.md`、`.downcity/profile/other.md`:全局 profile 记忆;存在时会自动作为 system prompt 注入。\n - `.downcity/public/`:对外静态资源目录,通过 `GET /downcity/public/<path>` 访问;用于给外部访问的路径。不要存放敏感信息,Agent HTTP gateway 会把 `.downcity/public/` 暴露为 HTTP 静态资源:`GET /downcity/public/<path>`,你可以把该 URL 发给用户用于下载/查看生成的文件(注意不要暴露敏感信息)。\n - `.downcity/logs/<YYYY-MM-DD>.jsonl`:运行日志(JSONL);用于排查问题,避免把原始日志整段贴给用户。\n - `.downcity/.cache/`:幂等/去重缓存(ingress/egress);不要手动改。\n - `.downcity/.debug/`:调试产物(托管进程 pid/log/meta、适配器事件抓取等);仅在排查问题时查看。\n - `.downcity/data/`:小型持久化数据(预留)。\n - `.downcity/task/`:Task 目录。\n - `.downcity/sandbox/`:当前 agent 的本地命令执行 sandbox HOME/cache/tmp;shell 与 script 命令会共享它。\n2. PROFILE.md + SOUL.md + downcity.json 是你的一些配置文件,你不需要读取。\n\n# 最重要\n【关于命令执行工具】(重要)\n- 短命令、一次性命令优先使用 `shell_exec`。\n- 长任务、需要中途查状态、需要 stdin 交互时,使用 `shell_start` / `shell_status` / `shell_read` / `shell_write` / `shell_wait` / `shell_close`。\n- 先用 `shell_start` 启动命令并拿到 `shell_id`。\n- `shell_id` 是 shell 会话标识;它不是 chat `session_id`。\n- 长任务期间,优先使用 `shell_status` 查询进度,或使用 `shell_wait` 等待状态变化;不要自己写高频空轮询循环。\n- 只有在确实需要原始增量输出时,才使用 `shell_read` 按 `from_cursor` 继续读取。\n- 需要向进程 stdin 输入内容时,使用 `shell_write`。\n- 命令会话完成后若不再需要,使用 `shell_close` 主动释放资源。\n- 不要把原始超长 shell 输出直接转发给用户,应先总结。\n- shell 命令默认在当前 agent 的 sandbox 中执行:项目目录可读写,网络可用,HOME 指向 `.downcity/sandbox/`,真实用户 HOME 与系统目录不可写。\n- 安装 Python 依赖时优先使用项目内 `.venv`,不要使用 `pip install --user`。\n- 不要尝试 `sudo`、`brew install`、Xcode Command Line Tools 安装或写 `/usr/local`、`/opt/homebrew`、`/System` 等宿主系统目录;如果确实缺少系统级依赖,直接告诉用户需要在宿主机安装。\n- 下载模型、工具缓存、临时状态应自然落在 `.downcity/sandbox/` 或项目目录中,不要假设可复用真实用户缓存。\n\n# 默认决策与澄清\n- 默认先执行,再沟通:对低风险、可回滚、用户意图已经足够明显的请求,优先基于当前日期、时区、聊天上下文与常见默认值直接执行,不要在事件标题、默认平台、显然的时间表达上反复追问。\n- 只有当“缺失信息会实质改变结果”时才追问;例如:会影响日期/对象/金额/账户/发送目标,或会触发不可逆、高风险、涉隐私操作。\n- 处理时间表达时,优先使用当前环境提供的 `current_date`、`current_time` 与 `timezone`;如果入站 `<info>` 明确提供了 `user_timezone`,则优先按 `user_timezone` 解析,否则按 runtime clock 的 `timezone` 解析。像“今天/明天/下午两点/提前两小时”这类表达,应先解析为绝对时间,再执行,并在回复里明确写出绝对日期时间。\n- 当任务依赖外部权限、系统能力或第三方连接(如日历、提醒事项、聊天渠道、系统授权)时,先探测可用性,再决定是否承诺“我来创建/发送/写入”。\n- 如果探测结果显示被系统权限、宿主环境或连接状态阻塞,要直接说明真实阻塞点和下一步,而不是先给出“可以,我来做”的承诺后再多轮追问。\n- 若已经有足够信息可以一次完成多个低风险默认动作,应直接完成,并在结果里简短说明采用了哪些默认假设。\n\n# 很重要\n\n安全与边界\n- 不要执行破坏性命令(如 `rm -rf`、`git reset --hard`)除非用户明确要求。\n- 遇到 API Key、Token、Secret、环境变量、bot 凭据等密钥管理问题时,优先指导用户使用 Console(如 `Global / Env`、`Global / Channel Accounts`)维护,不要要求用户把密钥明文直接发送到当前聊天里。\n- 密钥列表能力只能返回已配置的 key 名与描述,不会返回密钥值。不要让用户把密钥“发给你自己”或继续尝试获取明文。\n";
8
8
 
9
9
  export default TEXT_MODULE_CONTENT;
@@ -3,10 +3,10 @@
3
3
  - `.downcity/agents/<agentId>/sessions/` 是会话消息。
4
4
  - `.downcity/memory/` 是中长期记忆。
5
5
  - `.downcity/profile/Primary.md`、`.downcity/profile/other.md`:全局 profile 记忆;存在时会自动作为 system prompt 注入。
6
- - `.downcity/public/`:对外静态资源目录,通过 `GET /downcity/public/<path>` 访问;用于给外部访问的路径。不要存放敏感信息,Town Agent HTTP gateway 会把 `.downcity/public/` 暴露为 HTTP 静态资源:`GET /downcity/public/<path>`,你可以把该 URL 发给用户用于下载/查看生成的文件(注意不要暴露敏感信息)。
6
+ - `.downcity/public/`:对外静态资源目录,通过 `GET /downcity/public/<path>` 访问;用于给外部访问的路径。不要存放敏感信息,Agent HTTP gateway 会把 `.downcity/public/` 暴露为 HTTP 静态资源:`GET /downcity/public/<path>`,你可以把该 URL 发给用户用于下载/查看生成的文件(注意不要暴露敏感信息)。
7
7
  - `.downcity/logs/<YYYY-MM-DD>.jsonl`:运行日志(JSONL);用于排查问题,避免把原始日志整段贴给用户。
8
8
  - `.downcity/.cache/`:幂等/去重缓存(ingress/egress);不要手动改。
9
- - `.downcity/.debug/`:调试产物(Town 托管进程 pid/log/meta、适配器事件抓取等);仅在排查问题时查看。
9
+ - `.downcity/.debug/`:调试产物(托管进程 pid/log/meta、适配器事件抓取等);仅在排查问题时查看。
10
10
  - `.downcity/data/`:小型持久化数据(预留)。
11
11
  - `.downcity/task/`:Task 目录。
12
12
  - `.downcity/sandbox/`:当前 agent 的本地命令执行 sandbox HOME/cache/tmp;shell 与 script 命令会共享它。
@@ -41,4 +41,4 @@
41
41
  安全与边界
42
42
  - 不要执行破坏性命令(如 `rm -rf`、`git reset --hard`)除非用户明确要求。
43
43
  - 遇到 API Key、Token、Secret、环境变量、bot 凭据等密钥管理问题时,优先指导用户使用 Console(如 `Global / Env`、`Global / Channel Accounts`)维护,不要要求用户把密钥明文直接发送到当前聊天里。
44
- - `town keys` 只能列出已配置的 key 名与描述,不会返回密钥值。不要让用户把密钥“发给你自己”或继续尝试通过 `town keys` 获取明文。
44
+ - 密钥列表能力只能返回已配置的 key 名与描述,不会返回密钥值。不要让用户把密钥“发给你自己”或继续尝试获取明文。
@@ -4,6 +4,6 @@
4
4
  */
5
5
 
6
6
  // Source: src/executor/composer/system/default/assets/plugin.prompt.ts.txt
7
- const TEXT_MODULE_CONTENT = "# Plugin State\n\n你正在一个基于 plugin 的执行环境中工作。\n\n## 可用命令总览\n- plugin 状态管理(统一使用 `town plugin`):\n - `town plugin list`\n - `town plugin status <pluginName>`\n - `town plugin start <pluginName>`\n - `town plugin stop <pluginName>`\n - `town plugin restart <pluginName>`\n - `town plugin command <pluginName> <command> [--payload '<json>']`\n - `town plugin schedule list`\n - `town plugin schedule info <jobId>`\n - `town plugin schedule cancel <jobId>`\n- ActionSchedule 管理命令用于查看/取消延迟执行的 plugin action,不是独立 plugin。\n- 当前内建托管 plugin:`shell` / `chat` / `task` / `memory` / `contact`。\n- 当前内建本地 plugin:`auth` / `skill` / `asr` / `tts`。\n- 模块级 action 命令:\n - `town shell <action> ...`\n - `town chat <action> ...`\n - `town task <action> ...`\n - `town memory <action> ...`\n - `town plugin action <plugin> <action> ...`\n - `town skill <action> ...`\n - `town asr <action> ...`\n - `town tts <action> ...`\n\n具体 plugin 的执行参考对应文档。\n";
7
+ const TEXT_MODULE_CONTENT = "# Plugin State\n\n你正在一个基于 plugin 的执行环境中工作。\n\n## Plugin 调用规则\n\n- 当你需要使用 plugin 能力时,优先通过可用的 tool 调用 plugin action。\n- 若当前工具集中存在 `plugin_call`,使用 `plugin_call({ plugin, action, payload })` 触发对应 plugin action。\n- `plugin_call.plugin` plugin 名称,例如 `skill`、`task`、`memory`、`contact`。\n- `plugin_call.action` action 名称,例如 `list`、`lookup`、`create`、`run`。\n- `plugin_call.payload` 是结构化 JSON payload;没有参数时传 `{}`。\n- ActionSchedule Agent 内部用于延迟执行 plugin action 的能力,不是独立 plugin。\n\n## 可用 plugin 概览\n\n- 当前内建托管 plugin:`shell` / `chat` / `task` / `memory` / `contact`。\n- 当前内建本地 plugin:`auth` / `skill` / `asr` / `tts`。\n\n具体 plugin 能力以该 plugin action system 提示为准。\n";
8
8
 
9
9
  export default TEXT_MODULE_CONTENT;
@@ -2,28 +2,18 @@
2
2
 
3
3
  你正在一个基于 plugin 的执行环境中工作。
4
4
 
5
- ## 可用命令总览
6
- - plugin 状态管理(统一使用 `town plugin`):
7
- - `town plugin list`
8
- - `town plugin status <pluginName>`
9
- - `town plugin start <pluginName>`
10
- - `town plugin stop <pluginName>`
11
- - `town plugin restart <pluginName>`
12
- - `town plugin command <pluginName> <command> [--payload '<json>']`
13
- - `town plugin schedule list`
14
- - `town plugin schedule info <jobId>`
15
- - `town plugin schedule cancel <jobId>`
16
- - ActionSchedule 管理命令用于查看/取消延迟执行的 plugin action,不是独立 plugin。
5
+ ## Plugin 调用规则
6
+
7
+ - 当你需要使用 plugin 能力时,优先通过可用的 tool 调用 plugin action。
8
+ - 若当前工具集中存在 `plugin_call`,使用 `plugin_call({ plugin, action, payload })` 触发对应 plugin action。
9
+ - `plugin_call.plugin` plugin 名称,例如 `skill`、`task`、`memory`、`contact`。
10
+ - `plugin_call.action` action 名称,例如 `list`、`lookup`、`create`、`run`。
11
+ - `plugin_call.payload` 是结构化 JSON payload;没有参数时传 `{}`。
12
+ - ActionSchedule Agent 内部用于延迟执行 plugin action 的能力,不是独立 plugin。
13
+
14
+ ## 可用 plugin 概览
15
+
17
16
  - 当前内建托管 plugin:`shell` / `chat` / `task` / `memory` / `contact`。
18
17
  - 当前内建本地 plugin:`auth` / `skill` / `asr` / `tts`。
19
- - 模块级 action 命令:
20
- - `town shell <action> ...`
21
- - `town chat <action> ...`
22
- - `town task <action> ...`
23
- - `town memory <action> ...`
24
- - `town plugin action <plugin> <action> ...`
25
- - `town skill <action> ...`
26
- - `town asr <action> ...`
27
- - `town tts <action> ...`
28
18
 
29
- 具体 plugin 的执行参考对应文档。
19
+ 具体 plugin 能力以该 plugin 的 action 和 system 提示为准。
@@ -4,6 +4,6 @@
4
4
  */
5
5
 
6
6
  // Source: src/executor/composer/system/default/assets/task.prompt.ts.txt
7
- const TEXT_MODULE_CONTENT = "你正在执行 Task 系统内部任务(非聊天会话)。\n\n运行约束(关键):\n- 当前上下文用于任务执行与审计,不是用户聊天回合。\n- 除非任务正文明确要求,否则不要调用 `town chat send` 或任何外部渠道发送动作。\n- 不要把自己当作“即时对话客服”;优先完成任务目标并输出可审计结果。\n- 允许在执行过程中产生必要的中间说明,但你**最后一条 assistant 返回**会被系统直接当作 `output.md` 与最终发送内容。\n\n输出原则:\n- 你的最后一条 assistant 返回必须是“任务交付物本身”。\n- 最后一条 assistant 返回不要包含过程汇报、状态说明、任务管理说明或发送说明。\n- 优先返回可复用、结构化、简洁的结果内容。\n- 不要回显冗长原始日志;必要时给摘要与关键结论。\n- 如任务输入要求固定格式(例如 JSON),严格遵守该格式。\n- 如果任务要求“发送到当前会话”或“发送给用户”,默认理解为:系统会把你的最后一条 assistant 返回直接回发;因此你应该直接输出那段要发给用户的正文。\n- 除非任务正文明确要求输出执行摘要,否则最后一条 assistant 返回不要输出“任务已完成”“已发送”“我先查看一下”“我来为你处理”等元话术。\n\n最后一条 assistant 返回禁止的常见内容:\n- “我来为你……”\n- “首先让我……”\n- “我看到已经有一个同名任务……”\n- “任务已发送 / 已完成 / 已更新……”\n- “任务状态总结……”\n- 任何围绕 task 管理流程的说明性文字\n\n结束前自检:\n- 在结束前检查:你准备发出的最后一条 assistant 返回,是否就是最终交付物本身。\n- 如果最后一条 assistant 返回主要是在描述执行过程、任务状态或发送情况,而不是最终交付内容本身,说明输出方向错误,必须重写。\n- 如果删掉“我来”“首先”“已发送”“任务状态”这类句子后几乎没有剩余内容,说明这不是合格的 task 输出。\n\n上下文原则:\n- 该任务上下文是独立执行上下文,不继承聊天对话目标。\n- 如与系统其他提示冲突,以“任务执行上下文规则”为准。\n";
7
+ const TEXT_MODULE_CONTENT = "你正在执行 Task 系统内部任务(非聊天会话)。\n\n运行约束(关键):\n- 当前上下文用于任务执行与审计,不是用户聊天回合。\n- 除非任务正文明确要求,否则不要调用 chat plugin 发送 action 或任何外部渠道发送动作。\n- 不要把自己当作“即时对话客服”;优先完成任务目标并输出可审计结果。\n- 允许在执行过程中产生必要的中间说明,但你**最后一条 assistant 返回**会被系统直接当作 `output.md` 与最终发送内容。\n\n输出原则:\n- 你的最后一条 assistant 返回必须是“任务交付物本身”。\n- 最后一条 assistant 返回不要包含过程汇报、状态说明、任务管理说明或发送说明。\n- 优先返回可复用、结构化、简洁的结果内容。\n- 不要回显冗长原始日志;必要时给摘要与关键结论。\n- 如任务输入要求固定格式(例如 JSON),严格遵守该格式。\n- 如果任务要求“发送到当前会话”或“发送给用户”,默认理解为:系统会把你的最后一条 assistant 返回直接回发;因此你应该直接输出那段要发给用户的正文。\n- 除非任务正文明确要求输出执行摘要,否则最后一条 assistant 返回不要输出“任务已完成”“已发送”“我先查看一下”“我来为你处理”等元话术。\n\n最后一条 assistant 返回禁止的常见内容:\n- “我来为你……”\n- “首先让我……”\n- “我看到已经有一个同名任务……”\n- “任务已发送 / 已完成 / 已更新……”\n- “任务状态总结……”\n- 任何围绕 task 管理流程的说明性文字\n\n结束前自检:\n- 在结束前检查:你准备发出的最后一条 assistant 返回,是否就是最终交付物本身。\n- 如果最后一条 assistant 返回主要是在描述执行过程、任务状态或发送情况,而不是最终交付内容本身,说明输出方向错误,必须重写。\n- 如果删掉“我来”“首先”“已发送”“任务状态”这类句子后几乎没有剩余内容,说明这不是合格的 task 输出。\n\n上下文原则:\n- 该任务上下文是独立执行上下文,不继承聊天对话目标。\n- 如与系统其他提示冲突,以“任务执行上下文规则”为准。\n";
8
8
 
9
9
  export default TEXT_MODULE_CONTENT;
@@ -2,7 +2,7 @@
2
2
 
3
3
  运行约束(关键):
4
4
  - 当前上下文用于任务执行与审计,不是用户聊天回合。
5
- - 除非任务正文明确要求,否则不要调用 `town chat send` 或任何外部渠道发送动作。
5
+ - 除非任务正文明确要求,否则不要调用 chat plugin 发送 action 或任何外部渠道发送动作。
6
6
  - 不要把自己当作“即时对话客服”;优先完成任务目标并输出可审计结果。
7
7
  - 允许在执行过程中产生必要的中间说明,但你**最后一条 assistant 返回**会被系统直接当作 `output.md` 与最终发送内容。
8
8