diff --git a/a2as.yaml b/a2as.yaml new file mode 100644 index 0000000..302c576 --- /dev/null +++ b/a2as.yaml @@ -0,0 +1,259 @@ +manifest: + version: "0.1.2" + schema: https://a2as.org/cert/schema + subject: + name: datasciencedisciple/expert-agent-engine + source: https://github.com/datasciencedisciple/expert-agent-engine + branch: main + commit: "8360d58b" + scope: [src/agent_factory.py, src/agents/__init__.py, src/config_loader.py, src/context.py, src/engine.py, src/output_manager.py] + issued: + by: A2AS.org + at: '2026-01-26T16:14:47Z' + signatures: + digest: sha256:nLR0VO5_f1enpAuG_0V34Vljr9byKWhn9GVnK6ICQaA + key: ed25519:LleC3I-E_9lF_Jv2DbS1IEo3dXMTZPl13wPASjDWx0U + sig: ed25519:bkXgg_x8VucZD9J4VCVdYU05vzcs5wL4GiGE6lsKGW_gBjlRstFV4PLoOfEf4ZgPp_-1ribfmuwO12W0GC5vAg + +agents: + expert_agent: + type: instance + models: [config.openai_model] + params: + function: create_expert_agent + name: ExpertAgent + instructions: [expert_instructions] + user_agent: + type: instance + models: [config.openai_model] + params: + function: create_user_agent + +models: + config.openai_model: + type: variable + agents: [user_agent, expert_agent] + +imports: + Agent: agents.Agent + Any: typing.Any + AppConfig: src.config_loader.AppConfig + argparse: argparse + asyncio: asyncio + BaseModel: pydantic.BaseModel + ConfigLoaderError: src.config_loader.ConfigLoaderError + ConversationContext: src.context.ConversationContext + ConversationEngine: src.engine.ConversationEngine + ConversationHistory: src.conversation.ConversationHistory + create_expert_agent: src.agent_factory.create_expert_agent + create_user_agent: src.agent_factory.create_user_agent + dataclass: dataclasses.dataclass + datetime: datetime + Dict: typing.Dict + Field: pydantic.Field + field_validator: pydantic.field_validator + json: json + List: typing.List + load_config: src.config_loader.load_config + load_dotenv: dotenv.load_dotenv + logging: logging + openai: openai + Optional: typing.Optional + os: os + OutputManager: src.output_manager.OutputManager + Path: pathlib.Path + RunContextWrapper: agents.run_context.RunContextWrapper + Runner: agents.Runner + sys: sys + TYPE_CHECKING: typing.TYPE_CHECKING + ValidationError: pydantic.ValidationError + yaml: yaml + +functions: + __init__: + type: sync + module: src.output_manager + args: [self, output_dir] + _ensure_output_dir_exists: + type: sync + module: src.output_manager + args: [self] + params: + returns: None + _get_user_agent_instructions: + type: sync + module: src.agent_factory + args: [context, agent] + params: + returns: str + _set_openai_key: + type: sync + module: src.agent_factory + args: [api_key] + create_expert_agent: + type: sync + module: src.agent_factory + args: [config] + params: + returns: Agent[ConversationContext] + create_user_agent: + type: sync + module: src.agent_factory + args: [config] + params: + returns: Agent[ConversationContext] + format_conversation: + type: sync + module: src.output_manager + args: [self, history] + params: + returns: str + generate_filename: + type: sync + module: src.output_manager + args: [self, prefix, extension] + params: + returns: str + generate_takeaways: + type: async + module: src.output_manager + args: [self, history, context, expert_agent, config] + params: + returns: str + get_expert_agent_instructions: + type: sync + module: src.config_loader + args: [self] + params: + returns: str + get_final_history: + type: sync + module: src.engine + args: [self] + params: + returns: ConversationHistory + get_user_agent_instructions: + type: sync + module: src.config_loader + args: [self] + params: + returns: str + history_file_must_exist: + type: sync + module: src.config_loader + args: [cls, v] + load_config: + type: sync + module: src.config_loader + args: [config_path_str] + params: + returns: AppConfig + main: + type: async + module: src.cli + output_dir_must_exist: + type: sync + module: src.config_loader + args: [cls, v] + parse_arguments: + type: sync + module: src.cli + run_conversation: + type: async + module: src.engine + args: [self] + params: + returns: ConversationHistory + save_takeaways: + type: sync + module: src.output_manager + args: [self, takeaways, transcript_filename] + params: + returns: Path + save_transcript: + type: sync + module: src.output_manager + args: [self, history, filename] + params: + returns: Path + +variables: + OPENAI_API_KEY: + type: env + params: + caller: [os.getenv, os.environ] + path: [src.config_loader, src.agent_factory] + +files: + args.config_file: + type: variable + actions: [read] + params: + caller: [Path] + config/dummy_config.json: + type: literal + actions: [read] + config/dummy_config.yaml: + type: literal + actions: [read] + config/dummy_config_no_key.yaml: + type: literal + actions: [read] + config/dummy_history.txt: + type: literal + actions: [read] + config/temp_factory_test_config.yaml: + type: literal + actions: [read] + config_path: + type: literal + actions: [read] + params: + caller: [Path(args.config_file), open, json.load, yaml.safe_load] + dummy_config_path: + type: literal + actions: [read, write, delete] + params: + caller: [Path('config/temp_factory_test_config.yaml'), dummy_config_path.parent.mkdir, dummy_config_path.write_text, + dummy_config_path.unlink] + dummy_history_path: + type: literal + actions: [read, write, delete] + params: + caller: [Path('config/dummy_history.txt'), dummy_history_path.touch, dummy_history_path.unlink] + dummy_json_path: + type: literal + actions: [read, write, delete] + params: + caller: [Path('config/dummy_config.json'), dummy_json_path.write_text, dummy_json_path.unlink] + dummy_output_dir: + type: literal + actions: [read, write, delete] + params: + caller: [Path(temp_factory_output), dummy_output_dir.mkdir, dummy_output_dir.rmdir] + dummy_output_path: + type: literal + actions: [read, write, delete] + params: + caller: [Path(temp_output), dummy_output_path.mkdir, dummy_output_path.rmdir] + dummy_yaml_no_key_path: + type: literal + actions: [read, write, delete] + params: + caller: [Path('config/dummy_config_no_key.yaml'), dummy_yaml_no_key_path.write_text, dummy_yaml_no_key_path.unlink] + dummy_yaml_path: + type: literal + actions: [read, write, delete] + params: + caller: [Path('config/dummy_config.yaml'), dummy_yaml_path.write_text, dummy_yaml_path.unlink] + file_path: + type: variable + actions: [write] + params: + caller: [open] + alias: [f] + output_dir: + type: variable + actions: [read] + params: + caller: [Path]