コード例 #1
0
ファイル: test_skill.py プロジェクト: zeta1999/agents-aea
    def setup(cls, **kwargs: Any) -> None:
        """Set up the skill test case."""
        identity = Identity("test_agent_name", "test_agent_address")

        cls._multiplexer = AsyncMultiplexer()
        cls._multiplexer._out_queue = (  # pylint: disable=protected-access
            asyncio.Queue()
        )
        cls._outbox = OutBox(cast(Multiplexer, cls._multiplexer))
        _shared_state = cast(Dict[str, Any], kwargs.pop("shared_state", dict()))
        _skill_config_overrides = cast(
            Dict[str, Any], kwargs.pop("config_overrides", dict())
        )
        agent_context = AgentContext(
            identity=identity,
            connection_status=cls._multiplexer.connection_status,
            outbox=cls._outbox,
            decision_maker_message_queue=Queue(),
            decision_maker_handler_context=SimpleNamespace(),
            task_manager=TaskManager(),
            default_ledger_id=identity.default_address_key,
            currency_denominations=DEFAULT_CURRENCY_DENOMINATIONS,
            default_connection=None,
            default_routing={},
            search_service_address="dummy_search_service_address",
            decision_maker_address="dummy_decision_maker_address",
            data_dir=os.getcwd(),
        )

        # This enables pre-populating the 'shared_state' prior to loading the skill
        if _shared_state != dict():
            for key, value in _shared_state.items():
                agent_context.shared_state[key] = value

        skill_configuration_file_path: Path = Path(cls.path_to_skill, "skill.yaml")
        loader = ConfigLoaders.from_package_type(PackageType.SKILL)

        with open_file(skill_configuration_file_path) as fp:
            skill_config: SkillConfig = loader.load(fp)

        # This enables overriding the skill's config prior to loading
        if _skill_config_overrides != {}:
            skill_config.update(_skill_config_overrides)

        skill_config.directory = cls.path_to_skill

        cls._skill = Skill.from_config(skill_config, agent_context)
コード例 #2
0
ファイル: aea_builder.py プロジェクト: pbukva/agents-aea
 def _load_and_add_skills(self, context: AgentContext) -> None:
     for configuration in self._package_dependency_manager.skills.values():
         logger_name = "aea.packages.{}.skills.{}".format(
             configuration.author, configuration.name
         )
         skill_context = SkillContext()
         skill_context.set_agent_context(context)
         skill_context.logger = logging.getLogger(logger_name)
         configuration = cast(SkillConfig, configuration)
         try:
             skill = Skill.from_config(configuration, skill_context=skill_context)
         except Exception as e:
             raise Exception(
                 "An error occurred while loading skill {}: {}".format(
                     configuration.public_id, str(e)
                 )
             )
         self._add_component_to_resources(skill)