Trae Assistant
Enhance UI, add file upload, localize to Chinese, and optimize agent logic
6ff4e1a
from core.database import StellarDB
import random
db = StellarDB()
def query_satellite_status():
"""查询所有卫星的当前状态、电量和计算负载。"""
sats = db.get_satellites()
status_str = "当前卫星星座状态:\n"
for s in sats:
status_str += f"- {s['name']} ({s['id']}): 状态={s['status']}, 电量={s['battery']}%, 负载={s['compute_load']}%\n"
return status_str
def allocate_compute_task(task_description, target_sat_id):
"""将计算任务分配给指定的卫星。"""
sats = db.get_satellites()
target = next((s for s in sats if s['id'] == target_sat_id), None)
if not target:
return f"错误: 找不到卫星 {target_sat_id}"
if target['status'] != 'Orbiting':
return f"错误: 卫星 {target_sat_id} 当前处于 {target['status']} 状态,无法处理任务。"
if target['battery'] < 20:
return f"警告: 卫星 {target_sat_id} 电量过低 ({target['battery']}%),任务分配失败。"
# 模拟分配逻辑
new_load = min(100, target['compute_load'] + 25)
db.update_satellite(target_sat_id, compute_load=new_load)
return f"成功: 任务 '{task_description}' 已分配给 {target_sat_id}。当前负载增加至 {new_load}%。"
def check_orbital_weather():
"""检查当前的轨道空间天气,如太阳活动、碎片风险等。"""
weathers = ["正常", "强太阳风暴", "空间碎片预警", "电离层干扰"]
current = random.choice(weathers)
if current == "正常":
return "空间天气状况良好,适合进行高强度计算任务。"
else:
return f"警告: 当前空间天气为 '{current}',建议推迟非必要任务或降低负载。"
def verify_mission_result(task_id):
"""校验任务执行结果。"""
return f"任务 {task_id} 结果校验完成: 100% 匹配预期数据模型。"
# 工具映射表
AVAILABLE_TOOLS = {
"query_satellite_status": query_satellite_status,
"allocate_compute_task": allocate_compute_task,
"check_orbital_weather": check_orbital_weather,
"verify_mission_result": verify_mission_result
}