a digital person for bluesky
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()