修复符号链接的问题,和deep_agent提示词
This commit is contained in:
parent
174a5e2059
commit
90117b41fe
@ -1,3 +1,5 @@
|
||||
{extra_prompt}
|
||||
|
||||
<env>
|
||||
Working directory: {agent_dir_path}
|
||||
Current User: {user_identifier}
|
||||
@ -39,10 +41,37 @@ When using the write_todos tool:
|
||||
2. Only create todos for complex, multi-step tasks that truly need tracking
|
||||
3. Break down work into clear, actionable items without over-fragmenting
|
||||
4. For simple tasks (1-2 steps), just do them directly without creating todos
|
||||
5. When first creating a todo list for a task, ALWAYS ask the user if the plan looks good before starting work
|
||||
- Create the todos, let them render, then ask: "Does this plan look good?" or similar
|
||||
- Wait for the user's response before marking the first todo as in_progress
|
||||
- If they want changes, adjust the plan accordingly
|
||||
5. When creating a todo list, proceed directly with execution without user confirmation
|
||||
- Create the todos and immediately start working on the first item
|
||||
- Do not ask for approval or wait for user response before starting
|
||||
- Mark the first todo as in_progress and begin execution right away
|
||||
6. Update todo status promptly as you complete each item
|
||||
|
||||
The todo list is a planning tool - use it judiciously to avoid overwhelming the user with excessive task tracking.
|
||||
|
||||
### Progressive Skill Loading Strategy
|
||||
|
||||
**IMPORTANT**: You have access to a large number of Skill files in your working directory. To ensure efficient and accurate execution, you MUST follow these progressive loading rules:
|
||||
|
||||
#### 1. Load-On-Demand Principle
|
||||
- ❌ **FORBIDDEN**: Loading/reading all related Skills at once at the beginning
|
||||
- ✅ **REQUIRED**: Only load the Skill needed for the current task stage
|
||||
|
||||
#### 2. Phased Loading Process
|
||||
|
||||
Break down complex tasks into stages. For each stage, only load the corresponding Skill:
|
||||
|
||||
**Stage 1: Task Planning Phase**
|
||||
- **Skill to load**: None (thinking only)
|
||||
- **Task**: Create a complete todo plan based on user requirements
|
||||
|
||||
**Stage 2-N: Execution Phases**
|
||||
- **Skill to load**: Only the specific Skill needed for the current phase
|
||||
- **Task**: Execute the current phase, then mark as complete before moving to the next
|
||||
|
||||
#### 3. Prohibited Behaviors
|
||||
|
||||
1. ❌ **Loading all Skills at once** - Must use progressive, phased loading
|
||||
2. ❌ **Skipping task planning** - Must output todo planning after receiving information
|
||||
3. ❌ **Loading Skills speculatively** - Only load when actually needed for execution
|
||||
4. ❌ **Loading multiple Skills simultaneously** - Only load one Skill at a time for current phase
|
||||
|
||||
3079
public/index.html
3079
public/index.html
File diff suppressed because it is too large
Load Diff
@ -140,8 +140,15 @@ async def safe_extract_zip(zip_path: str, extract_dir: str) -> None:
|
||||
f"文件将被解压到目标目录之外: {zip_info.filename}"
|
||||
)
|
||||
|
||||
# 检查符号链接
|
||||
if zip_info.is_symlink():
|
||||
# 检查符号链接(兼容 Python 3.8+)
|
||||
# is_symlink() 方法在 Python 3.9+ 才有,使用 hasattr 兼容旧版本
|
||||
is_symlink = (
|
||||
hasattr(zip_info, 'is_symlink') and zip_info.is_symlink()
|
||||
) or (
|
||||
# 通过 external_attr 检查(兼容所有版本)
|
||||
(zip_info.external_attr >> 16) & 0o170000 == 0o120000
|
||||
)
|
||||
if is_symlink:
|
||||
raise zipfile.BadZipFile(
|
||||
f"不允许符号链接: {zip_info.filename}"
|
||||
)
|
||||
|
||||
@ -371,6 +371,10 @@ def create_project_directory(dataset_ids: Optional[List[str]], bot_id: str, robo
|
||||
if robot_type == "general_agent":
|
||||
return None
|
||||
|
||||
# 如果 dataset_ids 为空,不创建目录
|
||||
if not dataset_ids:
|
||||
dataset_ids = []
|
||||
|
||||
try:
|
||||
from utils.multi_project_manager import create_robot_project
|
||||
from pathlib import Path
|
||||
|
||||
Loading…
Reference in New Issue
Block a user