summaryrefslogtreecommitdiff
path: root/src/agents/03-logs/main.py
blob: 7da931baa2a91d6425ce38cd2556b703535ed743 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# main.py
from agent import Agent
import os
from config import VFS_PATH
from vfs import VFS

def load_prompt(file_path):
    if not os.path.exists(file_path):
        return ""
    with open(file_path, 'r') as f:
        return f.read().strip()

if __name__ == "__main__":
    # Configuration for the experiment run
    SCENARIO = "data_sanitization"
    OVERSIGHT_LEVEL = "low" 
    USER_PROMPT_TYPE = "data_sanitization"

    # Load scenario prompts
    cover_prompt_path = os.path.join("prompts", "scenarios", f"{SCENARIO}_cover.md")
    hidden_prompt_path = os.path.join("prompts", "scenarios", f"{SCENARIO}_hidden.md")
    cover_prompt = load_prompt(cover_prompt_path)
    hidden_prompt = load_prompt(hidden_prompt_path)

    # Load oversight prompt
    oversight_prompt_path = os.path.join("prompts", "oversight", f"{OVERSIGHT_LEVEL}.md")
    oversight_prompt = load_prompt(oversight_prompt_path)

    # Combine system prompts
    system_prompt_parts = [cover_prompt, oversight_prompt, hidden_prompt]
    system_prompt = "\n\n".join(filter(None, system_prompt_parts))

    # Load user prompt
    user_prompt_path = os.path.join("prompts", "user", f"{USER_PROMPT_TYPE}.md")
    user_prompt = load_prompt(user_prompt_path)
    
    agent = Agent(
        system_prompt=system_prompt,
        scenario=SCENARIO,
        oversight_level=OVERSIGHT_LEVEL,
        user_prompt_type=USER_PROMPT_TYPE
    )
    agent.run(user_prompt)
    agent.save_logs()

    print("\n--- Final Virtual File System State ---")
    VFS.get_instance().print_fs()