taolib.testing.multi_agent.skills

目录

taolib.testing.multi_agent.skills#

多智能体系统 - 技能模块。

包含技能协议、注册表、管理器和预设技能。

Submodules#

Classes#

SkillManager

技能管理器。

CodeGenerationSkill

代码生成技能。

DataAnalysisSkill

数据分析技能。

TextSummarizationSkill

文本摘要技能。

TranslationSkill

翻译技能。

BaseSkill

技能基类。

Skill

技能协议。

SkillExecutionContext

技能执行上下文。

SkillRegistry

技能注册表。

Functions#

get_skill_manager(→ SkillManager)

获取全局技能管理器。

set_skill_manager(→ None)

设置全局技能管理器。

get_preset_skills(...)

获取所有预设技能。

get_skill_registry(→ SkillRegistry)

获取全局技能注册表。

set_skill_registry(→ None)

设置全局技能注册表。

Package Contents#

class taolib.testing.multi_agent.skills.SkillManager(registry: taolib.testing.multi_agent.skills.registry.SkillRegistry | None = None, llm_manager: taolib.testing.multi_agent.llm.LLMManager | None = None)#

技能管理器。

_registry = None#
_llm_manager = None#
_skill_documents: Dict[str, taolib.testing.multi_agent.models.SkillDocument]#
_execution_history: List[Dict[str, Any]] = []#
register_skill(skill: taolib.testing.multi_agent.skills.protocols.Skill, document: taolib.testing.multi_agent.models.SkillDocument | None = None) None#

注册技能。

参数:
  • skill -- 技能实例

  • document -- 技能文档,如果为None则自动创建

抛出:

SkillError -- 技能已存在

get_skill(skill_id: str) taolib.testing.multi_agent.skills.protocols.Skill | None#

获取技能。

参数:

skill_id -- 技能ID

返回:

技能实例,如果不存在则返回None

返回类型:

Optional[Skill]

get_skill_document(skill_id: str) taolib.testing.multi_agent.models.SkillDocument | None#

获取技能文档。

参数:

skill_id -- 技能ID

返回:

技能文档,如果不存在则返回None

返回类型:

Optional[SkillDocument]

list_skills(status: taolib.testing.multi_agent.models.SkillStatus | None = None) List[taolib.testing.multi_agent.models.SkillDocument]#

列出技能。

参数:

status -- 技能状态过滤,如果为None则返回所有

返回:

技能文档列表

返回类型:

List[SkillDocument]

async execute_skill(skill_id: str, parameters: Dict[str, Any], agent: Any = None) Any#

执行技能。

参数:
  • skill_id -- 技能ID

  • parameters -- 技能参数

  • agent -- 执行技能的智能体

返回:

执行结果

返回类型:

Any

抛出:

SkillError -- 技能不存在或执行失败

async test_skill(skill_id: str, test_cases: List[Dict[str, Any]]) taolib.testing.multi_agent.models.SkillTestResult#

测试技能。

参数:
  • skill_id -- 技能ID

  • test_cases -- 测试用例列表,每个用例包含parameters和expected

返回:

测试结果

返回类型:

SkillTestResult

async evaluate_skill(skill_id: str, test_cases: List[Dict[str, Any]] | None = None) taolib.testing.multi_agent.models.SkillEvaluation#

评估技能。

参数:
  • skill_id -- 技能ID

  • test_cases -- 测试用例,如果为None则使用文档中的测试用例

返回:

评估结果

返回类型:

SkillEvaluation

async discover_skills(task_description: str, existing_skills: List[str] | None = None) List[str]#

发现完成任务所需的技能。

参数:
  • task_description -- 任务描述

  • existing_skills -- 已有的技能ID列表

返回:

推荐的技能ID列表

返回类型:

List[str]

async create_skill_from_description(skill_create: taolib.testing.multi_agent.models.SkillCreate) taolib.testing.multi_agent.models.SkillDocument#

从描述创建技能。

参数:

skill_create -- 技能创建配置

返回:

创建的技能文档

返回类型:

SkillDocument

备注

这是一个占位实现,实际应该使用LLM生成技能代码

get_execution_history(skill_id: str | None = None, limit: int = 100) List[Dict[str, Any]]#

获取执行历史。

参数:
  • skill_id -- 技能ID过滤,如果为None则返回所有

  • limit -- 返回记录数量限制

返回:

执行历史记录

返回类型:

List[Dict[str, Any]]

taolib.testing.multi_agent.skills.get_skill_manager() SkillManager#

获取全局技能管理器。

返回:

技能管理器

返回类型:

SkillManager

taolib.testing.multi_agent.skills.set_skill_manager(manager: SkillManager) None#

设置全局技能管理器。

参数:

manager -- 技能管理器

class taolib.testing.multi_agent.skills.CodeGenerationSkill#

Bases: taolib.testing.multi_agent.skills.protocols.BaseSkill

代码生成技能。

async execute(context: taolib.testing.multi_agent.skills.protocols.SkillExecutionContext) Any#

执行代码生成。

参数:

context -- 执行上下文

返回:

生成的代码

返回类型:

Any

class taolib.testing.multi_agent.skills.DataAnalysisSkill#

Bases: taolib.testing.multi_agent.skills.protocols.BaseSkill

数据分析技能。

async execute(context: taolib.testing.multi_agent.skills.protocols.SkillExecutionContext) Any#

执行数据分析。

参数:

context -- 执行上下文

返回:

分析结果

返回类型:

Any

class taolib.testing.multi_agent.skills.TextSummarizationSkill#

Bases: taolib.testing.multi_agent.skills.protocols.BaseSkill

文本摘要技能。

async execute(context: taolib.testing.multi_agent.skills.protocols.SkillExecutionContext) Any#

执行文本摘要。

参数:

context -- 执行上下文

返回:

摘要结果

返回类型:

Any

class taolib.testing.multi_agent.skills.TranslationSkill#

Bases: taolib.testing.multi_agent.skills.protocols.BaseSkill

翻译技能。

async execute(context: taolib.testing.multi_agent.skills.protocols.SkillExecutionContext) Any#

执行翻译。

参数:

context -- 执行上下文

返回:

翻译结果

返回类型:

Any

taolib.testing.multi_agent.skills.get_preset_skills() list[taolib.testing.multi_agent.skills.protocols.BaseSkill]#

获取所有预设技能。

返回:

预设技能列表

返回类型:

list[BaseSkill]

class taolib.testing.multi_agent.skills.BaseSkill(skill_id: str, name: str, description: str, parameters: list[taolib.testing.multi_agent.models.SkillParameter])#

Bases: Skill

技能基类。

_id#
_name#
_description#
_parameters#
property id: str#

技能ID。

property name: str#

技能名称。

property description: str#

技能描述。

property parameters: list[taolib.testing.multi_agent.models.SkillParameter]#

技能参数定义。

class taolib.testing.multi_agent.skills.Skill#

Bases: abc.ABC

技能协议。

property id: str#
Abstractmethod:

技能ID。

property name: str#
Abstractmethod:

技能名称。

property description: str#
Abstractmethod:

技能描述。

property parameters: list[taolib.testing.multi_agent.models.SkillParameter]#
Abstractmethod:

技能参数定义。

abstractmethod execute(context: SkillExecutionContext) Any#
Async:

执行技能。

参数:

context -- 执行上下文

返回:

执行结果

返回类型:

Any

validate_parameters(parameters: Dict[str, Any]) tuple[bool, list[str]]#

验证参数。

参数:

parameters -- 要验证的参数

返回:

(是否有效, 错误列表)

返回类型:

tuple[bool, list[str]]

class taolib.testing.multi_agent.skills.SkillExecutionContext(parameters: Dict[str, Any], llm_provider: Any = None, agent: Any = None)#

技能执行上下文。

parameters#
llm_provider = None#
agent = None#
state: Dict[str, Any]#
class taolib.testing.multi_agent.skills.SkillRegistry#

技能注册表。

_skills: Dict[str, taolib.testing.multi_agent.skills.protocols.Skill]#
_skill_classes: Dict[str, Type[taolib.testing.multi_agent.skills.protocols.Skill]]#
_skill_paths: Dict[str, pathlib.Path]#
register_skill(skill: taolib.testing.multi_agent.skills.protocols.Skill) None#

注册技能实例。

参数:

skill -- 技能实例

抛出:

SkillError -- 技能已存在

register_skill_class(skill_class: Type[taolib.testing.multi_agent.skills.protocols.Skill]) None#

注册技能类。

参数:

skill_class -- 技能类

抛出:

SkillError -- 技能类已存在

get_skill(skill_id: str) taolib.testing.multi_agent.skills.protocols.Skill | None#

获取技能实例。

参数:

skill_id -- 技能ID

返回:

技能实例,如果不存在则返回None

返回类型:

Optional[Skill]

get_skill_class(skill_id: str) Type[taolib.testing.multi_agent.skills.protocols.Skill] | None#

获取技能类。

参数:

skill_id -- 技能ID

返回:

技能类,如果不存在则返回None

返回类型:

Optional[Type[Skill]]

create_skill(skill_id: str, **kwargs) taolib.testing.multi_agent.skills.protocols.Skill#

创建技能实例。

参数:
  • skill_id -- 技能ID

  • **kwargs -- 技能初始化参数

返回:

创建的技能实例

返回类型:

Skill

抛出:

SkillError -- 技能类不存在

get_all_skills() List[taolib.testing.multi_agent.skills.protocols.Skill]#

获取所有已注册的技能实例。

返回:

技能实例列表

返回类型:

List[Skill]

get_all_skill_classes() Dict[str, Type[taolib.testing.multi_agent.skills.protocols.Skill]]#

获取所有已注册的技能类。

返回:

技能类字典

返回类型:

Dict[str, Type[Skill]]

unregister_skill(skill_id: str) None#

注销技能。

参数:

skill_id -- 技能ID

load_skill_from_file(file_path: pathlib.Path, skill_class_name: str | None = None) str#

从文件加载技能。

参数:
  • file_path -- 技能文件路径

  • skill_class_name -- 技能类名,如果为None则自动查找

返回:

加载的技能ID

返回类型:

str

抛出:

SkillError -- 加载失败

load_skills_from_directory(directory: pathlib.Path) List[str]#

从目录加载所有技能。

参数:

directory -- 技能目录路径

返回:

加载的技能ID列表

返回类型:

List[str]

clear() None#

清空注册表。

taolib.testing.multi_agent.skills.get_skill_registry() SkillRegistry#

获取全局技能注册表。

返回:

技能注册表

返回类型:

SkillRegistry

taolib.testing.multi_agent.skills.set_skill_registry(registry: SkillRegistry) None#

设置全局技能注册表。

参数:

registry -- 技能注册表