aig-agent-scan 0.1.0__py3-none-any.whl
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.
- agent_scan/__init__.py +16 -0
- agent_scan/__main__.py +4 -0
- agent_scan/config/provider_config_en.json +254 -0
- agent_scan/config/provider_config_zh.json +254 -0
- agent_scan/core/__init__.py +18 -0
- agent_scan/core/agent.py +456 -0
- agent_scan/core/agent_adapter/__init__.py +18 -0
- agent_scan/core/agent_adapter/adapter.py +1662 -0
- agent_scan/core/agent_adapter/connectivity.py +23 -0
- agent_scan/core/agent_adapter/connectivity_schema.xml +32 -0
- agent_scan/core/agent_adapter/providers.yaml +292 -0
- agent_scan/core/base_agent.py +385 -0
- agent_scan/core/report/__init__.py +42 -0
- agent_scan/core/report/models.py +90 -0
- agent_scan/core/report/report.py +359 -0
- agent_scan/main.py +276 -0
- agent_scan/prompt/skills/agentic-supply-chain-detection/SKILL.md +84 -0
- agent_scan/prompt/skills/authorization-bypass-detection/SKILL.md +81 -0
- agent_scan/prompt/skills/cascading-failure-detection/SKILL.md +80 -0
- agent_scan/prompt/skills/data-leakage-detection/SKILL.md +85 -0
- agent_scan/prompt/skills/direct-injection-detection/SKILL.md +78 -0
- agent_scan/prompt/skills/file-path-traversal-detection/SKILL.md +96 -0
- agent_scan/prompt/skills/hardcoded-secret-detection/SKILL.md +97 -0
- agent_scan/prompt/skills/human-agent-trust-exploit-detection/SKILL.md +93 -0
- agent_scan/prompt/skills/indirect-injection-detection/SKILL.md +91 -0
- agent_scan/prompt/skills/inter-agent-comm-security-detection/SKILL.md +91 -0
- agent_scan/prompt/skills/memory-poisoning-detection/SKILL.md +95 -0
- agent_scan/prompt/skills/memory-rag-poisoning-detection/SKILL.md +174 -0
- agent_scan/prompt/skills/owasp-asi/SKILL.md +95 -0
- agent_scan/prompt/skills/tool-abuse-detection/SKILL.md +165 -0
- agent_scan/prompt/skills/unexpected-code-execution-detection/SKILL.md +82 -0
- agent_scan/prompt/skills/web-exfiltration-detection/SKILL.md +130 -0
- agent_scan/prompt/system/agent_security_reviewer.md +204 -0
- agent_scan/prompt/system/agent_vulnerability_detector.md +123 -0
- agent_scan/prompt/system/agents/build_preview.md +106 -0
- agent_scan/prompt/system/agents/code_audit.md +185 -0
- agent_scan/prompt/system/agents/dynamic/general_analyzing_prompt_template.md +83 -0
- agent_scan/prompt/system/agents/dynamic/malicious_behaviour_testing.md +108 -0
- agent_scan/prompt/system/agents/dynamic/project_summary.md +43 -0
- agent_scan/prompt/system/agents/dynamic/system_prompt.md +8 -0
- agent_scan/prompt/system/agents/dynamic/vulnerability_testing.md +216 -0
- agent_scan/prompt/system/agents/dynamic_verification.md +188 -0
- agent_scan/prompt/system/agents/mcp_opera.md +104 -0
- agent_scan/prompt/system/agents/vuln_review.md +253 -0
- agent_scan/prompt/system/compact.md +79 -0
- agent_scan/prompt/system/format_report.md +15 -0
- agent_scan/prompt/system/main.md +88 -0
- agent_scan/prompt/system/next_prompt.md +1 -0
- agent_scan/prompt/system/project_summary.md +178 -0
- agent_scan/prompt/system/skill_runner.md +128 -0
- agent_scan/prompt/system/system_prompt.md +76 -0
- agent_scan/py.typed +0 -0
- agent_scan/tools/__init__.py +42 -0
- agent_scan/tools/batch/__init__.py +19 -0
- agent_scan/tools/batch/batch.py +168 -0
- agent_scan/tools/batch/batch_schema.xml +41 -0
- agent_scan/tools/dialogue/__init__.py +20 -0
- agent_scan/tools/dialogue/dialogue.py +73 -0
- agent_scan/tools/dialogue/dialogue_schema.xml +20 -0
- agent_scan/tools/dialogue/scan.py +324 -0
- agent_scan/tools/dialogue/scan_schema.xml +76 -0
- agent_scan/tools/dispatcher.py +63 -0
- agent_scan/tools/finish/__init__.py +19 -0
- agent_scan/tools/finish/finish_actions.py +35 -0
- agent_scan/tools/finish/finish_actions_schema.xml +11 -0
- agent_scan/tools/registry.py +188 -0
- agent_scan/tools/skill/__init__.py +19 -0
- agent_scan/tools/skill/skill.py +203 -0
- agent_scan/tools/skill/skill_schema.xml +56 -0
- agent_scan/tools/task/__init__.py +19 -0
- agent_scan/tools/task/task.py +242 -0
- agent_scan/tools/task/task_schema.xml +48 -0
- agent_scan/tools/test_dispatcher.py +96 -0
- agent_scan/tools/thinking/__init__.py +19 -0
- agent_scan/tools/thinking/thinking_actions.py +73 -0
- agent_scan/tools/thinking/thinking_actions_schema.xml +85 -0
- agent_scan/utils/__init__.py +18 -0
- agent_scan/utils/aig_logger.py +181 -0
- agent_scan/utils/config.py +65 -0
- agent_scan/utils/extract_vuln.py +233 -0
- agent_scan/utils/file_utils.py +333 -0
- agent_scan/utils/llm.py +206 -0
- agent_scan/utils/llm_manager.py +253 -0
- agent_scan/utils/logging.py +50 -0
- agent_scan/utils/mcp_tools.py +357 -0
- agent_scan/utils/parse.py +269 -0
- agent_scan/utils/path_utils.py +174 -0
- agent_scan/utils/project_analyzer.py +138 -0
- agent_scan/utils/prompt_manager.py +71 -0
- agent_scan/utils/todo_manager.py +296 -0
- agent_scan/utils/tool_context.py +154 -0
- aig_agent_scan-0.1.0.dist-info/METADATA +438 -0
- aig_agent_scan-0.1.0.dist-info/RECORD +96 -0
- aig_agent_scan-0.1.0.dist-info/WHEEL +5 -0
- aig_agent_scan-0.1.0.dist-info/entry_points.txt +2 -0
- aig_agent_scan-0.1.0.dist-info/top_level.txt +1 -0
agent_scan/__init__.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""aig-agent-scan - AI Agent Security Scanning Tool.
|
|
2
|
+
|
|
3
|
+
A dynamic black-box security testing tool for running AI Agent platforms
|
|
4
|
+
(e.g., Dify, Coze, OpenAI-compatible applications). It connects to the target
|
|
5
|
+
agent via API, sends crafted test prompts, and analyzes responses to discover
|
|
6
|
+
security vulnerabilities.
|
|
7
|
+
|
|
8
|
+
Public API:
|
|
9
|
+
from agent_scan.core.agent import Agent
|
|
10
|
+
from agent_scan.utils.llm import LLM
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
__version__ = "0.1.0"
|
|
16
|
+
__all__ = ["__version__"]
|
agent_scan/__main__.py
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"http": {
|
|
3
|
+
"name": "HTTP Endpoint",
|
|
4
|
+
"icon": "/images/agents-icon/http.webp",
|
|
5
|
+
"description": "Configure HTTP endpoint to send requests",
|
|
6
|
+
"fields": [
|
|
7
|
+
{
|
|
8
|
+
"field": "label",
|
|
9
|
+
"label": "Agent Name",
|
|
10
|
+
"type": "text",
|
|
11
|
+
"required": true,
|
|
12
|
+
"placeholder": "Enter a descriptive name for this agent(Letters and numbers only)",
|
|
13
|
+
"description": "A descriptive name for this agent"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"field": "url",
|
|
17
|
+
"label": "URL",
|
|
18
|
+
"type": "text",
|
|
19
|
+
"required": true,
|
|
20
|
+
"placeholder": "https://api.example.com/chat",
|
|
21
|
+
"description": "The HTTP endpoint URL to send requests to"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"field": "method",
|
|
25
|
+
"label": "HTTP Method",
|
|
26
|
+
"type": "select",
|
|
27
|
+
"required": true,
|
|
28
|
+
"options": [
|
|
29
|
+
{ "label": "POST", "value": "POST" },
|
|
30
|
+
{ "label": "GET", "value": "GET" },
|
|
31
|
+
{ "label": "PUT", "value": "PUT" },
|
|
32
|
+
{ "label": "PATCH", "value": "PATCH" },
|
|
33
|
+
{ "label": "DELETE", "value": "DELETE" }
|
|
34
|
+
],
|
|
35
|
+
"defaultValue": "POST",
|
|
36
|
+
"description": "HTTP request method"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"field": "headers",
|
|
40
|
+
"label": "Headers",
|
|
41
|
+
"type": "json",
|
|
42
|
+
"required": false,
|
|
43
|
+
"placeholder": "{\n \"Content-Type\": \"application/json\"\n}",
|
|
44
|
+
"defaultValue": "{\n \"Content-Type\": \"application/json\"\n}",
|
|
45
|
+
"rows": 4,
|
|
46
|
+
"description": "HTTP headers in JSON format"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"field": "body",
|
|
50
|
+
"label": "Request Body",
|
|
51
|
+
"type": "textarea",
|
|
52
|
+
"required": false,
|
|
53
|
+
"placeholder": "{\n \"message\": \"{{prompt}}\"\n}",
|
|
54
|
+
"defaultValue": "{\n \"message\": \"{{prompt}}\"\n}",
|
|
55
|
+
"rows": 6,
|
|
56
|
+
"description": "Request body template. Use {{prompt}} for the test input"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"field": "transform_response",
|
|
60
|
+
"label": "Response Parser",
|
|
61
|
+
"type": "text",
|
|
62
|
+
"required": false,
|
|
63
|
+
"placeholder": "json.choices[0].message.content",
|
|
64
|
+
"description": "JSONPath to extract the response (optional)"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"field": "timeout_ms",
|
|
68
|
+
"label": "Timeout (ms)",
|
|
69
|
+
"type": "number",
|
|
70
|
+
"required": false,
|
|
71
|
+
"min": 1000,
|
|
72
|
+
"max": 300000,
|
|
73
|
+
"step": 1000,
|
|
74
|
+
"defaultValue": 30000,
|
|
75
|
+
"description": "Request timeout in milliseconds"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"dify": {
|
|
80
|
+
"name": "Dify AI",
|
|
81
|
+
"icon": "/images/agents-icon/dify.webp",
|
|
82
|
+
"description": "Configure Dify AI platform",
|
|
83
|
+
"fields": [
|
|
84
|
+
{
|
|
85
|
+
"field": "label",
|
|
86
|
+
"label": "Agent Name",
|
|
87
|
+
"type": "text",
|
|
88
|
+
"required": true,
|
|
89
|
+
"placeholder": "Enter a descriptive name for this agent(Letters and numbers only)",
|
|
90
|
+
"description": "A descriptive name for this agent"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"field": "extra.dify_type",
|
|
94
|
+
"label": "Dify Endpoint Type",
|
|
95
|
+
"type": "select",
|
|
96
|
+
"required": false,
|
|
97
|
+
"options": [
|
|
98
|
+
{ "label": "Chat Messages", "value": "chat" },
|
|
99
|
+
{ "label": "Workflow", "value": "workflow" }
|
|
100
|
+
],
|
|
101
|
+
"defaultValue": "chat",
|
|
102
|
+
"description": "Chat Messages for conversational apps, Workflow for workflow execution"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"field": "apiBaseUrl",
|
|
106
|
+
"label": "API Base URL",
|
|
107
|
+
"type": "text",
|
|
108
|
+
"required": false,
|
|
109
|
+
"placeholder": "https://api.dify.ai/v1",
|
|
110
|
+
"description": "Dify API base URL. Leave empty to use default"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"field": "apiKey",
|
|
114
|
+
"label": "API-Key",
|
|
115
|
+
"type": "password",
|
|
116
|
+
"required": true,
|
|
117
|
+
"placeholder": "app-xxxx",
|
|
118
|
+
"description": "Dify API-Key"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"field": "extra.user",
|
|
122
|
+
"label": "User ID",
|
|
123
|
+
"type": "text",
|
|
124
|
+
"required": false,
|
|
125
|
+
"defaultValue": "agent-user",
|
|
126
|
+
"description": "User identifier for the conversation"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"field": "extra.conversation_id",
|
|
130
|
+
"label": "Conversation ID",
|
|
131
|
+
"type": "text",
|
|
132
|
+
"required": false,
|
|
133
|
+
"placeholder": "Leave empty to start a new conversation",
|
|
134
|
+
"description": "Leave empty to start a new conversation, or provide an existing conversation ID"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"field": "extra.inputs",
|
|
138
|
+
"label": "Custom Inputs",
|
|
139
|
+
"type": "json",
|
|
140
|
+
"required": false,
|
|
141
|
+
"placeholder": "{}",
|
|
142
|
+
"defaultValue": "{}",
|
|
143
|
+
"rows": 4,
|
|
144
|
+
"description": "Custom inputs that will be passed to the Dify app/workflow (JSON format)"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"field": "timeout_ms",
|
|
148
|
+
"label": "Timeout (ms)",
|
|
149
|
+
"type": "number",
|
|
150
|
+
"required": false,
|
|
151
|
+
"min": 1000,
|
|
152
|
+
"max": 300000,
|
|
153
|
+
"step": 1000,
|
|
154
|
+
"defaultValue": 60000,
|
|
155
|
+
"description": "Request timeout in milliseconds"
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
"coze": {
|
|
160
|
+
"name": "Coze AI",
|
|
161
|
+
"icon": "/images/agents-icon/coze.png",
|
|
162
|
+
"description": "Configure Coze AI bot platform",
|
|
163
|
+
"fields": [
|
|
164
|
+
{
|
|
165
|
+
"field": "label",
|
|
166
|
+
"label": "Agent Name",
|
|
167
|
+
"type": "text",
|
|
168
|
+
"required": true,
|
|
169
|
+
"placeholder": "Enter a descriptive name for this agent(Letters and numbers only)",
|
|
170
|
+
"description": "A descriptive name for this agent"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"field": "extra.coze_region",
|
|
174
|
+
"label": "Coze Region",
|
|
175
|
+
"type": "select",
|
|
176
|
+
"required": false,
|
|
177
|
+
"options": [
|
|
178
|
+
{ "label": "China (api.coze.cn)", "value": "coze-cn" },
|
|
179
|
+
{ "label": "International (api.coze.com)", "value": "coze-com" }
|
|
180
|
+
],
|
|
181
|
+
"defaultValue": "coze-cn",
|
|
182
|
+
"description": "Select the Coze API region"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"field": "extra.bot_id",
|
|
186
|
+
"label": "Bot ID",
|
|
187
|
+
"type": "text",
|
|
188
|
+
"required": true,
|
|
189
|
+
"placeholder": "Enter your Coze Bot ID",
|
|
190
|
+
"description": "Required. Your Coze bot ID from the Coze platform"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"field": "apiBaseUrl",
|
|
194
|
+
"label": "API Base URL",
|
|
195
|
+
"type": "text",
|
|
196
|
+
"required": false,
|
|
197
|
+
"placeholder": "https://api.coze.cn",
|
|
198
|
+
"description": "Coze API base URL. Leave empty to use default based on region"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"field": "apiKey",
|
|
202
|
+
"label": "API-Key",
|
|
203
|
+
"type": "password",
|
|
204
|
+
"required": true,
|
|
205
|
+
"placeholder": "pat_xxxx",
|
|
206
|
+
"description": "Coze API-Key"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"field": "extra.user_id",
|
|
210
|
+
"label": "User ID",
|
|
211
|
+
"type": "text",
|
|
212
|
+
"required": false,
|
|
213
|
+
"defaultValue": "agent-user",
|
|
214
|
+
"description": "User identifier for the conversation"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"field": "extra.conversation_id",
|
|
218
|
+
"label": "Conversation ID",
|
|
219
|
+
"type": "text",
|
|
220
|
+
"required": false,
|
|
221
|
+
"placeholder": "Leave empty to start a new conversation",
|
|
222
|
+
"description": "Leave empty to start a new conversation, or provide an existing conversation ID"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"field": "timeout_ms",
|
|
226
|
+
"label": "Timeout (ms)",
|
|
227
|
+
"type": "number",
|
|
228
|
+
"required": false,
|
|
229
|
+
"min": 1000,
|
|
230
|
+
"max": 300000,
|
|
231
|
+
"step": 1000,
|
|
232
|
+
"defaultValue": 120000,
|
|
233
|
+
"description": "Request timeout in milliseconds (default: 120000ms = 2 minutes)"
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
},
|
|
237
|
+
"common": {
|
|
238
|
+
"name": "Common Configuration",
|
|
239
|
+
"description": "Common configuration options for all provider types",
|
|
240
|
+
"fields": [
|
|
241
|
+
{
|
|
242
|
+
"field": "delay",
|
|
243
|
+
"label": "Delay (ms)",
|
|
244
|
+
"type": "number",
|
|
245
|
+
"required": false,
|
|
246
|
+
"min": 0,
|
|
247
|
+
"max": 60000,
|
|
248
|
+
"step": 100,
|
|
249
|
+
"defaultValue": 0,
|
|
250
|
+
"description": "Delay between requests in milliseconds to simulate a real user"
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"http": {
|
|
3
|
+
"name": "HTTP接口",
|
|
4
|
+
"icon": "/images/agents-icon/http.webp",
|
|
5
|
+
"description": "配置HTTP端点以发送请求",
|
|
6
|
+
"fields": [
|
|
7
|
+
{
|
|
8
|
+
"field": "label",
|
|
9
|
+
"label": "Agent名称",
|
|
10
|
+
"type": "text",
|
|
11
|
+
"required": true,
|
|
12
|
+
"placeholder": "为此Agent输入自定义名称(支持英文及数字)",
|
|
13
|
+
"description": "此Agent的描述名称"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"field": "url",
|
|
17
|
+
"label": "URL",
|
|
18
|
+
"type": "text",
|
|
19
|
+
"required": true,
|
|
20
|
+
"placeholder": "https://api.example.com/chat",
|
|
21
|
+
"description": "要发送请求的HTTP端点URL"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"field": "method",
|
|
25
|
+
"label": "HTTP方法",
|
|
26
|
+
"type": "select",
|
|
27
|
+
"required": true,
|
|
28
|
+
"options": [
|
|
29
|
+
{ "label": "POST", "value": "POST" },
|
|
30
|
+
{ "label": "GET", "value": "GET" },
|
|
31
|
+
{ "label": "PUT", "value": "PUT" },
|
|
32
|
+
{ "label": "PATCH", "value": "PATCH" },
|
|
33
|
+
{ "label": "DELETE", "value": "DELETE" }
|
|
34
|
+
],
|
|
35
|
+
"defaultValue": "POST",
|
|
36
|
+
"description": "HTTP请求方法"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"field": "headers",
|
|
40
|
+
"label": "请求头",
|
|
41
|
+
"type": "json",
|
|
42
|
+
"required": false,
|
|
43
|
+
"placeholder": "{\n \"Content-Type\": \"application/json\"\n}",
|
|
44
|
+
"defaultValue": "{\n \"Content-Type\": \"application/json\"\n}",
|
|
45
|
+
"rows": 4,
|
|
46
|
+
"description": "JSON格式的HTTP请求头"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"field": "body",
|
|
50
|
+
"label": "请求体",
|
|
51
|
+
"type": "textarea",
|
|
52
|
+
"required": false,
|
|
53
|
+
"placeholder": "{\n \"message\": \"{{prompt}}\"\n}",
|
|
54
|
+
"defaultValue": "{\n \"message\": \"{{prompt}}\"\n}",
|
|
55
|
+
"rows": 6,
|
|
56
|
+
"description": "请求体模板。使用 {{prompt}} 作为测试输入的占位符"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"field": "transform_response",
|
|
60
|
+
"label": "响应解析器",
|
|
61
|
+
"type": "text",
|
|
62
|
+
"required": false,
|
|
63
|
+
"placeholder": "json.choices[0].message.content",
|
|
64
|
+
"description": "用于提取响应的JSONPath(可选)"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"field": "timeout_ms",
|
|
68
|
+
"label": "超时时间(毫秒)",
|
|
69
|
+
"type": "number",
|
|
70
|
+
"required": false,
|
|
71
|
+
"min": 1000,
|
|
72
|
+
"max": 300000,
|
|
73
|
+
"step": 1000,
|
|
74
|
+
"defaultValue": 30000,
|
|
75
|
+
"description": "请求超时时间(毫秒)"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"dify": {
|
|
80
|
+
"name": "Dify AI",
|
|
81
|
+
"icon": "/images/agents-icon/dify.webp",
|
|
82
|
+
"description": "配置Dify AI平台",
|
|
83
|
+
"fields": [
|
|
84
|
+
{
|
|
85
|
+
"field": "label",
|
|
86
|
+
"label": "Agent名称",
|
|
87
|
+
"type": "text",
|
|
88
|
+
"required": true,
|
|
89
|
+
"placeholder": "为此Agent输入自定义名称(支持英文及数字)",
|
|
90
|
+
"description": "此Agent的描述名称"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"field": "extra.dify_type",
|
|
94
|
+
"label": "Dify端点类型",
|
|
95
|
+
"type": "select",
|
|
96
|
+
"required": false,
|
|
97
|
+
"options": [
|
|
98
|
+
{ "label": "聊天消息", "value": "chat" },
|
|
99
|
+
{ "label": "工作流", "value": "workflow" }
|
|
100
|
+
],
|
|
101
|
+
"defaultValue": "chat",
|
|
102
|
+
"description": "聊天消息用于对话应用,工作流用于工作流执行"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"field": "apiBaseUrl",
|
|
106
|
+
"label": "API基础URL",
|
|
107
|
+
"type": "text",
|
|
108
|
+
"required": false,
|
|
109
|
+
"placeholder": "https://api.dify.ai/v1",
|
|
110
|
+
"description": "Dify API基础URL。留空使用默认值"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"field": "apiKey",
|
|
114
|
+
"label": "API-Key",
|
|
115
|
+
"type": "password",
|
|
116
|
+
"required": true,
|
|
117
|
+
"placeholder": "app-xxxx",
|
|
118
|
+
"description": "Dify API-Key"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"field": "extra.user",
|
|
122
|
+
"label": "用户ID",
|
|
123
|
+
"type": "text",
|
|
124
|
+
"required": false,
|
|
125
|
+
"defaultValue": "agent-user",
|
|
126
|
+
"description": "对话的用户标识符"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"field": "extra.conversation_id",
|
|
130
|
+
"label": "对话ID",
|
|
131
|
+
"type": "text",
|
|
132
|
+
"required": false,
|
|
133
|
+
"placeholder": "留空开始新对话",
|
|
134
|
+
"description": "留空开始新对话,或提供现有对话ID"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"field": "extra.inputs",
|
|
138
|
+
"label": "自定义输入",
|
|
139
|
+
"type": "json",
|
|
140
|
+
"required": false,
|
|
141
|
+
"placeholder": "{}",
|
|
142
|
+
"defaultValue": "{}",
|
|
143
|
+
"rows": 4,
|
|
144
|
+
"description": "将传递给Dify应用/工作流的自定义输入(JSON格式)"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"field": "timeout_ms",
|
|
148
|
+
"label": "超时时间(毫秒)",
|
|
149
|
+
"type": "number",
|
|
150
|
+
"required": false,
|
|
151
|
+
"min": 1000,
|
|
152
|
+
"max": 300000,
|
|
153
|
+
"step": 1000,
|
|
154
|
+
"defaultValue": 60000,
|
|
155
|
+
"description": "请求超时时间(毫秒)"
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
"coze": {
|
|
160
|
+
"name": "Coze AI",
|
|
161
|
+
"icon": "/images/agents-icon/coze.png",
|
|
162
|
+
"description": "配置Coze AI机器人平台",
|
|
163
|
+
"fields": [
|
|
164
|
+
{
|
|
165
|
+
"field": "label",
|
|
166
|
+
"label": "Agent名称",
|
|
167
|
+
"type": "text",
|
|
168
|
+
"required": true,
|
|
169
|
+
"placeholder": "为此Agent输入自定义名称(支持英文及数字)",
|
|
170
|
+
"description": "此Agent的描述名称"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"field": "extra.coze_region",
|
|
174
|
+
"label": "Coze区域",
|
|
175
|
+
"type": "select",
|
|
176
|
+
"required": false,
|
|
177
|
+
"options": [
|
|
178
|
+
{ "label": "中国 (api.coze.cn)", "value": "coze-cn" },
|
|
179
|
+
{ "label": "国际 (api.coze.com)", "value": "coze-com" }
|
|
180
|
+
],
|
|
181
|
+
"defaultValue": "coze-cn",
|
|
182
|
+
"description": "选择Coze API区域"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"field": "extra.bot_id",
|
|
186
|
+
"label": "Bot ID",
|
|
187
|
+
"type": "text",
|
|
188
|
+
"required": true,
|
|
189
|
+
"placeholder": "输入您的Coze Bot ID",
|
|
190
|
+
"description": "必填。来自Coze平台的Bot ID"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"field": "apiBaseUrl",
|
|
194
|
+
"label": "API基础URL",
|
|
195
|
+
"type": "text",
|
|
196
|
+
"required": false,
|
|
197
|
+
"placeholder": "https://api.coze.cn",
|
|
198
|
+
"description": "Coze API基础URL。留空根据区域使用默认值"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"field": "apiKey",
|
|
202
|
+
"label": "API-Key",
|
|
203
|
+
"type": "password",
|
|
204
|
+
"required": true,
|
|
205
|
+
"placeholder": "pat_xxxx",
|
|
206
|
+
"description": "Coze API-Key"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"field": "extra.user_id",
|
|
210
|
+
"label": "用户ID",
|
|
211
|
+
"type": "text",
|
|
212
|
+
"required": false,
|
|
213
|
+
"defaultValue": "agent-user",
|
|
214
|
+
"description": "对话的用户标识符"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"field": "extra.conversation_id",
|
|
218
|
+
"label": "对话ID",
|
|
219
|
+
"type": "text",
|
|
220
|
+
"required": false,
|
|
221
|
+
"placeholder": "留空开始新对话",
|
|
222
|
+
"description": "留空开始新对话,或提供现有对话ID"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"field": "timeout_ms",
|
|
226
|
+
"label": "超时时间(毫秒)",
|
|
227
|
+
"type": "number",
|
|
228
|
+
"required": false,
|
|
229
|
+
"min": 1000,
|
|
230
|
+
"max": 300000,
|
|
231
|
+
"step": 1000,
|
|
232
|
+
"defaultValue": 120000,
|
|
233
|
+
"description": "请求超时时间(毫秒,默认:120000ms = 2分钟)"
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
},
|
|
237
|
+
"common": {
|
|
238
|
+
"name": "通用配置",
|
|
239
|
+
"description": "所有provider类型的通用配置选项",
|
|
240
|
+
"fields": [
|
|
241
|
+
{
|
|
242
|
+
"field": "delay",
|
|
243
|
+
"label": "延迟(毫秒)",
|
|
244
|
+
"type": "number",
|
|
245
|
+
"required": false,
|
|
246
|
+
"min": 0,
|
|
247
|
+
"max": 60000,
|
|
248
|
+
"step": 100,
|
|
249
|
+
"defaultValue": 0,
|
|
250
|
+
"description": "请求之间的延迟时间(毫秒),用于模拟真实用户"
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Copyright (c) 2024-2026 Tencent Zhuque Lab. All rights reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
#
|
|
15
|
+
# Requirement: Any integration or derivative work must explicitly attribute
|
|
16
|
+
# Tencent Zhuque Lab (https://github.com/Tencent/AI-Infra-Guard) in its
|
|
17
|
+
# documentation or user interface, as detailed in the NOTICE file.
|
|
18
|
+
|