a digital person for bluesky
at main 69 lines 3.1 kB view raw
1#!/usr/bin/env python3 2""" 3Show the current capabilities of both agents. 4""" 5 6import os 7from letta_client import Letta 8 9def show_agent_capabilities(): 10 """Display the capabilities of both agents.""" 11 12 client = Letta(api_key=os.environ["LETTA_API_KEY"]) # v1.0: token → api_key 13 14 print("🤖 LETTA AGENT CAPABILITIES") 15 print("=" * 50) 16 17 # Profile Researcher Agent (v1.0: list returns page object) 18 researchers_page = client.agents.list(name="profile-researcher") 19 researchers = researchers_page.items if hasattr(researchers_page, 'items') else researchers_page 20 if researchers: 21 researcher = researchers[0] 22 print(f"\n📊 PROFILE RESEARCHER AGENT") 23 print(f" ID: {researcher.id}") 24 print(f" Name: {researcher.name}") 25 26 researcher_tools_page = client.agents.tools.list(agent_id=researcher.id) 27 researcher_tools = researcher_tools_page.items if hasattr(researcher_tools_page, 'items') else researcher_tools_page 28 print(f" Tools ({len(researcher_tools)}):") 29 for tool in researcher_tools: 30 print(f" - {tool.name}") 31 32 researcher_blocks_page = client.agents.blocks.list(agent_id=researcher.id) 33 researcher_blocks = researcher_blocks_page.items if hasattr(researcher_blocks_page, 'items') else researcher_blocks_page 34 print(f" Memory Blocks ({len(researcher_blocks)}):") 35 for block in researcher_blocks: 36 print(f" - {block.label}") 37 38 # Void Agent (v1.0: list returns page object) 39 voids_page = client.agents.list(name="void") 40 voids = voids_page.items if hasattr(voids_page, 'items') else voids_page 41 if voids: 42 void = voids[0] 43 print(f"\n🌌 VOID AGENT") 44 print(f" ID: {void.id}") 45 print(f" Name: {void.name}") 46 47 void_tools_page = client.agents.tools.list(agent_id=void.id) 48 void_tools = void_tools_page.items if hasattr(void_tools_page, 'items') else void_tools_page 49 print(f" Tools ({len(void_tools)}):") 50 for tool in void_tools: 51 print(f" - {tool.name}") 52 53 void_blocks_page = client.agents.blocks.list(agent_id=void.id) 54 void_blocks = void_blocks_page.items if hasattr(void_blocks_page, 'items') else void_blocks_page 55 print(f" Memory Blocks ({len(void_blocks)}):") 56 for block in void_blocks: 57 print(f" - {block.label}") 58 59 print(f"\n🔄 WORKFLOW") 60 print(f" 1. Profile Researcher: attach_user_block → research_bluesky_profile → update_user_block → detach_user_block") 61 print(f" 2. Void Agent: Can attach/detach same user blocks for personalized interactions") 62 print(f" 3. Shared Memory: Both agents can access the same user-specific blocks") 63 64 print(f"\n💡 USAGE EXAMPLES") 65 print(f" Profile Researcher: 'Research @cameron.pfiffer.org and store findings'") 66 print(f" Void Agent: 'Attach user block for cameron.pfiffer.org before responding'") 67 68if __name__ == "__main__": 69 show_agent_capabilities()