Task Panner Validator for Agents

Polar Sponsor
爱发电 赞助
.NET 9.0

提供安全的任务规划、验证、审批与执行,内置安全检查、回滚、干运行以及纯Python错误处理。

任务规划员和验证员 - 技能指南

功能概述

任务规划员和验证员 - 技能指南是一项面向实际任务的技能,主要用于这一技能为AI Agents提供了安全、分步的任务管理系统;QQ 快速安装;

核心要点

  • 导入和初始化。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

任务规划器与验证器 — 技能指南

该技能为 AI Agent 提供一套安全、分步式的任务管理系统。

快速安装

# 克隆仓库
git clone https://github.com/cerbug45/task-planner-validator.git
cd task-planner-validator

# 完成!无需任何依赖 — 纯 Python 标准库实现

验证安装

# 运行测试
python test_basic.py

# 运行示例
python examples.py

基础用法

1. 导入并初始化

from task_planner import TaskPlanner

# 创建规划器实例
planner = TaskPlanner(auto_approve=False)

2. 定义执行器(Executor)

def my_executor(action: str, parameters: dict):
    """您自定义的执行逻辑"""
    if action == "fetch_data":
        # 从 API、数据库等获取数据
        return {"data": [1, 2, 3]}
    elif action == "process_data":
        # 处理数据
        return {"processed": True}
    else:
        return {"status": "completed"}

3. 创建计划

steps = [
    {
        "description": "获取用户数据",
        "action": "fetch_data",
        "parameters": {"source": "database"},
        "expected_output": "用户列表"
    },
    {
        "description": "处理用户数据",
        "action": "process_data",
        "parameters": {"validation": True},
        "expected_output": "已处理的数据"
    }
]

plan = planner.create_plan(
    title="数据处理流水线",
    description="获取并处理用户数据",
    steps=steps
)

4. 验证并执行

# 验证计划
is_valid, warnings = planner.validate_plan(plan)
if warnings:
    print("警告:", warnings)

# 批准计划
planner.approve_plan(plan, approved_by="admin")

# 执行计划
success, results = planner.execute_plan(plan, my_executor)

# 获取执行摘要
summary = planner.get_execution_summary(plan)
print(f"进度: {summary['progress_percentage']}%")

核心特性

安全验证

自动识别危险操作:

steps = [
    {
        "description": "删除旧文件",
        "action": "delete_files",  # ⚠️ 危险操作!
        "parameters": {"path": "/data/old"},
        "safety_check": True,  # 系统将发出警告
        "rollback_possible": False  # 不可回滚
    }
]

试运行模式(Dry Run Mode)

仅模拟执行,不真实触发操作:

success, results = planner.execute_plan(
    plan, 
    my_executor, 
    dry_run=True  # 仅模拟
)

保存与加载计划

持久化存储计划以便复用:

# 保存计划
planner.save_plan(plan, "my_plan.json")

# 后续加载
loaded_plan = planner.load_plan("my_plan.json")

# 验证完整性
if loaded_plan.verify_integrity():
    planner.execute_plan(loaded_plan, my_executor)

错误处理

灵活控制错误行为:

success, results = planner.execute_plan(
    plan,
    my_executor,
    stop_on_error=False  # 出错后继续执行后续步骤
)

# 检查结果
for result in results:
    if not result['success']:
        print(f"步骤 {result['order']} 执行失败: {result['error']}")

步骤配置项

每个步骤支持以下参数:

{
    "description": str,          # 必填:人类可读的描述
    "action": str,               # 必填:操作标识符
    "parameters": dict,          # 必填:操作所需参数
    "expected_output": str,      # 必填:预期输出结果
    "safety_check": bool,        # 可选:启用安全验证(默认为 True)
    "rollback_possible": bool,   # 可选:是否支持回滚(默认为 True)
    "max_retries": int          # 可选:最大重试次数(默认为 3)
}

常见使用场景

API 编排

steps = [
    {
        "description": "身份认证",
        "action": "api_auth",
        "parameters": {"service": "github"},
        "expected_output": "认证令牌"
    },
    {
        "description": "获取数据",
        "action": "api_fetch",
        "parameters": {"endpoint": "/repos"},
        "expected_output": "仓库列表"
    }
]

数据流水线

steps = [
    {
        "description": "抽取数据",
        "action": "extract",
        "parameters": {"source": "database"},
        "expected_output": "原始数据"
    },
    {
        "description": "转换数据",
        "action": "transform",
        "parameters": {"rules": ["normalize", "validate"]},
        "expected_output": "清洗后的数据"
    },
    {
        "description": "加载数据",
        "action": "load",
        "parameters": {"destination": "warehouse"},
        "expected_output": "成功确认信息"
    }
]

系统自动化

steps = [
    {
        "description": "备份数据库",
        "action": "backup",
        "parameters": {"target": "postgres"},
        "expected_output": "备份文件路径",
        "rollback_possible": True
    },
    {
        "description": "更新数据库结构",
        "action": "migrate",
        "parameters": {"version": "2.0"},
        "expected_output": "迁移完成",
        "rollback_possible": True
    },
    {
        "description": "验证完整性",
        "action": "verify",
        "parameters": {"checks": ["all"]},
        "expected_output": "所有检查通过"
    }
]

最佳实践

1. 始终先执行验证

is_valid, warnings = planner.validate_plan(plan)
if not is_valid:
    print("计划验证失败!")
    for warning in warnings:
        print(f"  - {warning}")
    exit(1)

2. 使用描述性名称

# 推荐 ✅
{
    "description": "从 PostgreSQL 生产数据库中获取活跃用户",
    "action": "fetch_active_users_postgres_prod",
    ...
}

# 不推荐 ❌
{
    "description": "获取数据",
    "action": "get",
    ...
}

3. 显式标记危险操作

{
    "description": "删除超过 30 天的临时文件",
    "action": "cleanup_temp_files",
    "parameters": {"age_days": 30, "path": "/tmp"},
    "safety_check": True,      # ⚠️ 将触发安全警告
    "rollback_possible": False  # ⚠️ 不可撤销!
}

4. 使用试运行模式先行测试

# 总是先进行试运行
success, results = planner.execute_plan(plan, my_executor, dry_run=True)

if success:
    # 再正式执行
    success, results = planner.execute_plan(plan, my_executor, dry_run=False)

5. 优雅地处理错误

def safe_executor(action: str, parameters: dict):
    try:
        result = execute_action(action, parameters)
        return result
    except Exception as e:
        logging.error(f"执行 {action} 失败: {e}")
        raise  # 重新抛出异常,交由规划器统一处理

高级特性

自动化流程启用自动批准

# 对自动化工作流跳过人工审批环节
planner = TaskPlanner(auto_approve=True)

检查点系统(Checkpoint System)

# 对支持回滚的步骤,系统将自动创建检查点
# 查看检查点历史记录
checkpoints = planner.executor.checkpoint_stack

执行历史记录

# 查看执行历史
history = planner.executor.execution_history
for entry in history:
    print(f"{entry['timestamp']}: {entry['step_id']} - {entry['status']}")

自定义验证规则

# 向 SafetyValidator 添加自定义验证项
planner.safety_validator.dangerous_operations.append('my_dangerous_op')
planner.safety_validator.sensitive_paths.append('/my/sensitive/path')

故障排查

“执行前必须批准计划”

# 解决方案:先批准计划
planner.approve_plan(plan, approved_by="admin")
# 或启用自动批准模式
planner = TaskPlanner(auto_approve=True)

安全验证警告

# 审阅警告内容,确保相关操作确属有意为之
is_valid, warnings = planner.validate_plan(plan)
for warning in warnings:
    print(warning)

# 若操作本身安全,仍可手动批准
if is_valid:  # 计划仍有效,仅存在警告
    planner.approve_plan(plan)

步骤执行顺序异常

# 确保 order 字段值为连续整数
steps[0]['order'] = 1
steps[1]['order'] = 2
steps[2]['order'] = 3

文件结构

task-planner-validator/
├── task_planner.py      # 主库文件
├── examples.py          # 使用示例
├── test_basic.py        # 测试套件
├── README.md            # 完整文档
├── QUICKSTART.md        # 快速入门指南
├── API.md              # API 参考手册
├── SKILL.md            # 当前文件
└── LICENSE              # MIT 许可证

运行要求

  • Python 3.8 或更高版本
  • 无外部依赖!

测试

# 运行基础测试
python test_basic.py

# 运行示例脚本
python examples.py

# 两者均应显示 “✅ ALL TESTS PASSED”

获取帮助

  • 📖 查阅 README.md 中的完整文档
  • 🚀 参考 QUICKSTART.md 获取快速上手示例
  • 📚 查看 API.md 获取完整 API 参考
  • 💡 浏览 examples.py 查看真实可用代码
  • 🐛 在 GitHub 上提交问题反馈

许可证

MIT 许可证 — 详见 LICENSE 文件

作者

cerbug45

  • GitHub: @cerbug45

⭐ 若您觉得此项目有用,请在 GitHub 上为其点亮 Star!

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
文心快码功能介绍
文心快码功能介绍

共0课时 | 0人学习

文心快码Agent使用手册
文心快码Agent使用手册

共0课时 | 0人学习

文心快码产品文档
文心快码产品文档

共0课时 | 0人学习