Skip to content

Est404/astrbot_plugin_async_task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

astrbot_plugin_async_task

AstrBot 异步任务通知插件 —— 让 Agent 在后台执行耗时命令,完成后自动推送结果。

功能特性

  • 将耗时 Shell 命令包装为异步任务,后台执行不阻塞对话
  • 任务完成/失败/超时后自动推送结果到对应会话
  • 支持 LLM 工具调用(Agent 自动创建)和 指令操作(管理员手动使用)两种方式
  • 并发任务数控制、输出截断、可配置超时策略

安装

在 AstrBot 插件管理页面搜索 async_task 安装,或手动将本目录放置到 data/plugins/ 下。

依赖:AstrBot >= 4.5.0

配置项

配置项 类型 默认值 说明
default_timeout int 60 默认任务超时时间(秒)
max_concurrent_tasks int 5 最大同时执行任务数
output_max_length int 500 推送消息中输出结果的最大字符数
auto_notify bool true 任务完成后是否自动推送通知
timeout_action string "ask" 超时行为:ask(通知并终止)/ wait(继续等待一轮)/ abort(静默终止)

指令

所有指令仅限管理员使用。

指令 别名 说明
/async <命令> /run <命令> 创建异步任务并执行指定命令
/async_list /tasks 查看所有任务状态
/async_del <ID> /task_del <ID> 删除/取消指定任务
/async_result <ID> /task_result <ID> 查看指定任务的执行结果

LLM 工具

Agent 可通过以下工具自动管理任务:

工具名 说明
async_create_task 创建异步任务,参数:command, description, timeout
async_query_task 查询单个任务状态,参数:task_id
async_query_all_tasks 查询所有任务列表
async_cancel_task 取消并删除任务,参数:task_id

使用示例

指令方式:

/async python batch_process.py --input /data --output /result

Agent 自动调用: 当 Agent 判断命令耗时较长时,会自动创建异步任务,完成后主动推送结果:

✅ 异步任务完成
任务ID: #3
命令: python batch_process.py --input /data --output /result
耗时: 47s
输出:
> Processing 17 files...
> Done. Output saved to /result/

已知限制

  • 任务数据存储在内存中,插件重启后清空(持久化计划在后续版本)
  • ask 超时模式当前行为等同于 abort(用户交互功能待完善)
  • Shell 命令未做输入过滤,仅限管理员使用

许可证

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Generated from Soulter/helloworld