Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
742725c
加入高危命令黑名单 Add high-risk command blacklist
May 9, 2026
af56da0
GenericAgent Agent System Design Overview
May 10, 2026
65a4227
Merge remote-tracking branch 'upstream/main'
May 11, 2026
d8fa52c
Subagent 集群监控,Subagents Monitor
May 11, 2026
b585296
remove desing overview html
May 11, 2026
0ed6692
Merge remote-tracking branch 'upstream/main'
May 13, 2026
94e2f73
merged from upstream 0513
May 13, 2026
99c9692
skill_learn_from_cases — 案例驱动技能学习 CLI 工具
May 13, 2026
f8a0efa
skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v001
May 13, 2026
1c321db
skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v002
May 13, 2026
bc3c9ea
skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v003
May 14, 2026
3448be6
skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v005
May 14, 2026
c04f9ab
skill_learn_from_cases 案例驱动技能学习 CLI 工具 v006
May 14, 2026
0043612
skill_learn_from_cases 案例驱动技能学习 CLI 工具 v007
May 14, 2026
9a0dfe6
skill\_learn\_from\_cases 案例驱动技能学习 CLI 工具 v008
May 14, 2026
22c30ba
skill_learn_from_cases 案例驱动技能学习 CLI 工具 v009
May 14, 2026
9cc3b22
skill_learn_from_cases v010
May 14, 2026
47d4875
skill_learn_from_cases v 011
May 14, 2026
405145d
earn_skill_from_cases v000
May 15, 2026
41a2c9f
Merge remote-tracking branch 'upstream/main'
May 15, 2026
1de2ae2
fix:[开始空闲自主行动]按钮点击无反应
May 15, 2026
e123390
修复点击[开始空闲自主行动]按钮,无反应问题
May 15, 2026
ec7ae8d
clean fork 0515
May 15, 2026
7e51ab7
clean051502
May 15, 2026
1cad02b
自主行动相关按钮修复
May 15, 2026
1baa23b
Merge remote-tracking branch 'upstream/main'
May 16, 2026
c056de8
learn_skill_from_cases v000
May 16, 2026
2bd6e8c
Merge remote-tracking branch 'upstream/main'
May 20, 2026
f37588f
Merge branch 'main' of github.com:benemorphy/GenericAgent
May 20, 2026
621d3d0
cleaned again
May 20, 2026
591b763
refactor: decouple turn policies into pluggable policy hook chain
May 21, 2026
e81c954
Merge remote-tracking branch 'upstream/main'
May 21, 2026
a08b076
turn policy decoupling
May 21, 2026
2fe6d65
turn policy decoupling
May 21, 2026
097685f
turn policy decoupling
May 21, 2026
43bfc4f
turn policy decoupling
May 21, 2026
3cab8e8
turn policy decoupling
May 21, 2026
c791ea0
decoupling turn policy
May 21, 2026
9d4eabd
decoupling turn policy
May 21, 2026
764d584
decoupling turn policy
May 21, 2026
ed6ae45
decoupling turn policy
May 21, 2026
6950bf2
decoupling turn policy
May 21, 2026
9f367b2
decoupling turn policy
May 21, 2026
43e03f9
fix: exclude TMWebDriver.py from ruff lint
May 23, 2026
124757f
Merge remote-tracking branch 'upstream/main'
May 29, 2026
89910fa
feat: mindflow_courseware tool - GA对话框内调用MindFlow API生成课件并浏览器预览
Jun 2, 2026
e9ebc1e
feat: mindflow_courseware升级 - spec/list/generate三模式 + ABT/PBL/脚手架结构展示…
Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
359 changes: 288 additions & 71 deletions assets/tools_schema.json
Original file line number Diff line number Diff line change
@@ -1,74 +1,291 @@
[
{"type": "function", "function": {
"name": "code_run",
"description": "Code executor. Prefer python. Multi-call OK, use script param. Reply code block is executed if no script arg; prefer for single call to avoid escaping. No hardcoding bulk data",
"parameters": {"type": "object", "properties": {
"script": {"type": "string", "description": "[Mutually exclusive] NEVER use this param when use reply code block."},
"type": {"type": "string", "enum": ["python", "powershell"], "description": "Code type", "default": "python"},
"timeout": {"type": "integer", "description": "in seconds", "default": 60},
"cwd": {"type": "string", "description": "Working directory, defaults to cwd"},
"inline_eval": {"type": "boolean", "description": "DO NOT USE except explicitly specified."}}}
}},
{"type": "function", "function": {
"name": "file_read",
"description": "Read file. Read before modify for latest context and line numbers",
"parameters": {"type": "object", "properties": {
"path": {"type": "string", "description": "Relative or absolute"},
"start": {"type": "integer", "description": "Start line number (1-based)"},
"count": {"type": "integer", "description": "Number of lines to read", "default": 200},
"keyword": {"type": "string", "description": "[Optional] If provided, returns first match (case-insensitive) with context"},
"show_linenos": {"type": "boolean", "description": "Show line numbers", "default": true}}}
}},
{"type": "function", "function": {
"name": "file_patch",
"description": "Replace unique old_content with new_content. Exact match required (whitespace/indentation). On failure, file_read to recheck",
"parameters": {"type": "object", "properties": {
"path": {"type": "string", "description": "File path"},
"old_content": {"type": "string", "description": "Original text block to replace (must be unique)"},
"new_content": {"type": "string", "description": "New content. Supports {{file:path:startLine:endLine}} to ref file lines, auto-expanded"}}}
}},
{"type": "function", "function": {
"name": "file_write",
"description": "Create/overwrite/append files. HUGE edits ONLY. Supports {{file:path:startLine:endLine}}, auto-expanded",
"parameters": {"type": "object", "properties": {
"path": {"type": "string", "description": "File path"},
"content": {"type": "string"},
"mode": {"type": "string", "enum": ["overwrite", "append", "prepend"], "description": "Write mode", "default": "overwrite"}}}
}},
{"type": "function", "function": {
"name": "web_scan",
"description": "Get simplified HTML and tab list. Removes hidden/floating/covered elements. Call after switching pages",
"parameters": {"type": "object", "properties": {
"tabs_only": {"type": "boolean", "description": "Show tab list only, no HTML"},
"switch_tab_id": {"type": "string", "description": "[Optional] Tab ID to switch to"},
"text_only": {"type": "boolean", "description": "Plain text only, no HTML"}}}
}},
{"type": "function", "function": {
"name": "web_execute_js",
"description": "Execute JS. Multi-call OK with different switch_tab_id. No guessing. Act accurately to reduce web_scan calls. Execute JS in ```javascript blocks if no script arg, prefer to avoid escaping",
"parameters": {"type": "object", "properties": {
"script": {"type": "string", "description": "[Mutually exclusive] JS code or script path. NEVER use this param when use reply code block"},
"save_to_file": {"type": "string", "description": "file path; **only** for long result"},
"no_monitor": {"type": "boolean", "description": "Skip page change monitoring, saves 2-3s. Only for reads, not for page actions"},
"switch_tab_id": {"type": "string", "description": "[Optional] Tab ID to switch to before executing"}}}
}},
{"type": "function", "function": {
"name": "update_working_checkpoint",
"description": "Short-term working notepad, auto-injected each turn to prevent info loss in long tasks. Call during early/mid stages, not at end. When: (1) after reading SOP, store user needs & key constraints (skip for simple 1-2 step tasks); (2) before subtask switch or context flush; (3) after repeated failures, re-read SOP and must store new findings; (4) on new task, update content, clear old progress but keep valid constraints.\n\nDon't call: simple tasks (1-2 steps), task completed (use long-term memory tool)",
"parameters": {"type": "object", "properties": {
"key_info": {"type": "string", "description": "Replaces current notepad (<200 tokens). Incremental update: review existing, keep valid, add/remove/modify. Store: pitfalls, user requirements, key params/findings, file paths, progress, next steps. Don't store: ephemeral info, obvious context, old task info when user switched tasks. Prefer over-updating over losing key info"},
"related_sop": {"type": "string", "description": "Related SOP names, tips for further re-read"}}}
}},
{"type": "function", "function": {
"name": "ask_user",
"description": "Interrupt task to ask user when needing decisions, extra info, or facing unresolvable blockers",
"parameters": {"type": "object", "properties": {
"question": {"type": "string", "description": "Question for the user"},
"candidates": {"type": "array", "items": {"type": "string"}, "description": "Optional quick-select choices for the user"}}}
}},
{"type": "function", "function": {
"name": "start_long_term_update",
"description": "Start distilling long-term memory. Call when discovering info worth remembering (env facts/user prefs/lessons learned). Skip if memory already updated or in autonomous flow. Must call when a task that took 15+ turns is completed",
"parameters": {"type": "object", "properties": {}}}
{
"type": "function",
"function": {
"name": "code_run",
"description": "Code executor. Prefer python. Multi-call OK, use script param. Reply code block is executed if no script arg; prefer for single call to avoid escaping. No hardcoding bulk data",
"parameters": {
"type": "object",
"properties": {
"script": {
"type": "string",
"description": "[Mutually exclusive] NEVER use this param when use reply code block."
},
"type": {
"type": "string",
"enum": [
"python",
"powershell"
],
"description": "Code type",
"default": "python"
},
"timeout": {
"type": "integer",
"description": "in seconds",
"default": 60
},
"cwd": {
"type": "string",
"description": "Working directory, defaults to cwd"
},
"inline_eval": {
"type": "boolean",
"description": "DO NOT USE except explicitly specified."
}
}
}
}
},
{
"type": "function",
"function": {
"name": "file_read",
"description": "Read file. Read before modify for latest context and line numbers",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Relative or absolute"
},
"start": {
"type": "integer",
"description": "Start line number (1-based)"
},
"count": {
"type": "integer",
"description": "Number of lines to read",
"default": 200
},
"keyword": {
"type": "string",
"description": "[Optional] If provided, returns first match (case-insensitive) with context"
},
"show_linenos": {
"type": "boolean",
"description": "Show line numbers",
"default": true
}
}
}
}
},
{
"type": "function",
"function": {
"name": "file_patch",
"description": "Replace unique old_content with new_content. Exact match required (whitespace/indentation). On failure, file_read to recheck",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "File path"
},
"old_content": {
"type": "string",
"description": "Original text block to replace (must be unique)"
},
"new_content": {
"type": "string",
"description": "New content. Supports {{file:path:startLine:endLine}} to ref file lines, auto-expanded"
}
}
}
}
},
{
"type": "function",
"function": {
"name": "file_write",
"description": "Create/overwrite/append files. HUGE edits ONLY. Supports {{file:path:startLine:endLine}}, auto-expanded",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "File path"
},
"content": {
"type": "string"
},
"mode": {
"type": "string",
"enum": [
"overwrite",
"append",
"prepend"
],
"description": "Write mode",
"default": "overwrite"
}
}
}
}
},
{
"type": "function",
"function": {
"name": "web_scan",
"description": "Get simplified HTML and tab list. Removes hidden/floating/covered elements. Call after switching pages",
"parameters": {
"type": "object",
"properties": {
"tabs_only": {
"type": "boolean",
"description": "Show tab list only, no HTML"
},
"switch_tab_id": {
"type": "string",
"description": "[Optional] Tab ID to switch to"
},
"text_only": {
"type": "boolean",
"description": "Plain text only, no HTML"
}
}
}
}
},
{
"type": "function",
"function": {
"name": "web_execute_js",
"description": "Execute JS. Multi-call OK with different switch_tab_id. No guessing. Act accurately to reduce web_scan calls. Execute JS in ```javascript blocks if no script arg, prefer to avoid escaping",
"parameters": {
"type": "object",
"properties": {
"script": {
"type": "string",
"description": "[Mutually exclusive] JS code or script path. NEVER use this param when use reply code block"
},
"save_to_file": {
"type": "string",
"description": "file path; **only** for long result"
},
"no_monitor": {
"type": "boolean",
"description": "Skip page change monitoring, saves 2-3s. Only for reads, not for page actions"
},
"switch_tab_id": {
"type": "string",
"description": "[Optional] Tab ID to switch to before executing"
}
}
}
}
},
{
"type": "function",
"function": {
"name": "update_working_checkpoint",
"description": "Short-term working notepad, auto-injected each turn to prevent info loss in long tasks. Call during early/mid stages, not at end. When: (1) after reading SOP, store user needs & key constraints (skip for simple 1-2 step tasks); (2) before subtask switch or context flush; (3) after repeated failures, re-read SOP and must store new findings; (4) on new task, update content, clear old progress but keep valid constraints.\n\nDon't call: simple tasks (1-2 steps), task completed (use long-term memory tool)",
"parameters": {
"type": "object",
"properties": {
"key_info": {
"type": "string",
"description": "Replaces current notepad (<200 tokens). Incremental update: review existing, keep valid, add/remove/modify. Store: pitfalls, user requirements, key params/findings, file paths, progress, next steps. Don't store: ephemeral info, obvious context, old task info when user switched tasks. Prefer over-updating over losing key info"
},
"related_sop": {
"type": "string",
"description": "Related SOP names, tips for further re-read"
}
}
}
}
},
{
"type": "function",
"function": {
"name": "ask_user",
"description": "Interrupt task to ask user when needing decisions, extra info, or facing unresolvable blockers",
"parameters": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "Question for the user"
},
"candidates": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional quick-select choices for the user"
}
}
}
}
},
{
"type": "function",
"function": {
"name": "start_long_term_update",
"description": "Start distilling long-term memory. Call when discovering info worth remembering (env facts/user prefs/lessons learned). Skip if memory already updated or in autonomous flow. Must call when a task that took 15+ turns is completed",
"parameters": {
"type": "object",
"properties": {}
}
}
},
{
"type": "function",
"function": {
"name": "mindflow_courseware",
"description": "调用 MindFlow 课件引擎生成课件。支持ABT叙事弧/PBL拆解/三层脚手架/CSS图示/交互组件。自动打开浏览器预览。",
"parameters": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "课件课题,如\"勾股定理\"、\"细胞的铝离子交互\""
},
"subject": {
"type": "string",
"description": "学科,可选: math(数学), physics(物理), biology(生物), history(历史), chemistry(化学)",
"default": "math",
"enum": [
"math",
"physics",
"biology",
"chemistry",
"history",
"chinese",
"english",
"cross"
]
},
"grade": {
"type": "string",
"description": "年级,如\"7\"、\"10\"、\"高三\"、\"大学\"",
"default": "8"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "课件标签,如 ['cross','lab','PBL']",
"default": []
},
"action": {
"type": "string",
"enum": [
"generate",
"list",
"spec",
"regenerate"
],
"description": "操作类型: generate(新生成), list(按路由列出), spec(查看接口规范), regenerate(基于上次重新生成)",
"default": "generate"
}
},
"required": [
"topic"
]
}
}
}
]
Loading