Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update examples in docs #2396

Merged
merged 2 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .composio.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
134 changes: 70 additions & 64 deletions examples/Building agents with Letta.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"metadata": {},
"source": [
"## Setup a Letta client \n",
"Make sure you run `pip install letta` and `letta quickstart`"
"Make sure you run `pip install letta_client` and start letta server `letta quickstart`"
]
},
{
Expand All @@ -29,8 +29,9 @@
"metadata": {},
"outputs": [],
"source": [
"!pip install letta_client\n",
"!pip install letta\n",
"! letta quickstart"
"!letta quickstart"
]
},
{
Expand All @@ -40,22 +41,9 @@
"metadata": {},
"outputs": [],
"source": [
"from letta import create_client \n",
"from letta_client import CreateBlock, Letta, MessageCreate \n",
"\n",
"client = create_client() "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9a28e38a-7dbe-4530-8260-202322a8458e",
"metadata": {},
"outputs": [],
"source": [
"from letta import LLMConfig, EmbeddingConfig\n",
"\n",
"client.set_default_llm_config(LLMConfig.default_config(\"gpt-4o-mini\")) \n",
"client.set_default_embedding_config(EmbeddingConfig.default_config(provider=\"openai\")) "
"client = Letta(base_url=\"http://localhost:8283\")"
]
},
{
Expand Down Expand Up @@ -92,14 +80,20 @@
"metadata": {},
"outputs": [],
"source": [
"from letta.schemas.memory import ChatMemory\n",
"\n",
"agent_state = client.create_agent(\n",
"agent_state = client.agents.create(\n",
" name=agent_name, \n",
" memory=ChatMemory(\n",
" human=\"My name is Sarah\", \n",
" persona=\"You are a helpful assistant that loves emojis\"\n",
" )\n",
" memory_blocks=[\n",
" CreateBlock(\n",
" label=\"human\",\n",
" value=\"My name is Sarah\",\n",
" ),\n",
" CreateBlock(\n",
" label=\"persona\",\n",
" value=\"You are a helpful assistant that loves emojis\",\n",
" ),\n",
" ]\n",
" model=\"openai/gpt-4o-mini\",\n",
" embedding=\"openai/text-embedding-ada-002\",\n",
")"
]
},
Expand All @@ -110,10 +104,14 @@
"metadata": {},
"outputs": [],
"source": [
"response = client.send_message(\n",
"response = client.agents.messages.create(\n",
" agent_id=agent_state.id, \n",
" message=\"hello!\", \n",
" role=\"user\" \n",
" messages=[\n",
" MessageCreate(\n",
" role=\"user\", \n",
" content=\"hello!\", \n",
" ),\n",
" ]\n",
")\n",
"response"
]
Expand All @@ -123,7 +121,7 @@
"id": "20a5ccf4-addd-4bdb-be80-161f7925dae0",
"metadata": {},
"source": [
"Note that MemGPT agents will generate an *internal_monologue* that explains its actions. You can use this monoloque to understand why agents are behaving as they are. \n",
"Note that MemGPT agents will generate a *reasoning_message* that explains its actions. You can use this monoloque to understand why agents are behaving as they are. \n",
"\n",
"Second, MemGPT agents also use tools to communicate, so messages are sent back by calling a `send_message` tool. This makes it easy to allow agent to communicate over different mediums (e.g. text), and also allows the agent to distinguish betweeh that is and isn't send to the end user. "
]
Expand Down Expand Up @@ -175,7 +173,7 @@
"metadata": {},
"outputs": [],
"source": [
"memory = client.get_core_memory(agent_state.id)"
"memory = client.agents.core_memory.retrieve(agent_id=agent_state.id)"
]
},
{
Expand All @@ -195,7 +193,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_archival_memory_summary(agent_state.id)"
"client.agents.context.retrieve(agent_id=agent_state.id)[\"num_archival_memory\"]"
]
},
{
Expand All @@ -205,7 +203,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_recall_memory_summary(agent_state.id)"
"client.agents.context.retrieve(agent_id=agent_state.id)[\"num_recall_memory\"]"
]
},
{
Expand All @@ -215,7 +213,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_messages(agent_state.id)"
"client.agents.messages.list(agent_id=agent_state.id)"
]
},
{
Expand Down Expand Up @@ -243,11 +241,15 @@
"metadata": {},
"outputs": [],
"source": [
"response = client.send_message(\n",
"response = client.agents.messages.create(\n",
" agent_id=agent_state.id, \n",
" message = \"My name is actually Bob\", \n",
" role = \"user\"\n",
") \n",
" messages=[\n",
" MessageCreate(\n",
" role=\"user\", \n",
" content=\"My name is actually Bob\", \n",
" ),\n",
" ]\n",
")\n",
"response"
]
},
Expand All @@ -258,7 +260,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_core_memory(agent_state.id)"
"client.agents.core_memory.retrieve(agent_id=agent_state.id)"
]
},
{
Expand All @@ -277,11 +279,15 @@
"metadata": {},
"outputs": [],
"source": [
"response = client.send_message(\n",
" agent_id=agent_state.id, \n",
" message = \"In the future, never use emojis to communicate\", \n",
" role = \"user\"\n",
") \n",
"response = client.agents.messages.create(\n",
" agent_id=agent_state.id,\n",
" messages=[\n",
" MessageCreate(\n",
" role=\"user\", \n",
" content=\"In the future, never use emojis to communicate\", \n",
" ),\n",
" ]\n",
")\n",
"response"
]
},
Expand All @@ -292,7 +298,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_core_memory(agent_state.id).get_block('persona')"
"client.agents.core_memory.retrieve_block(agent_id=agent_state.id, block_label='persona')"
]
},
{
Expand All @@ -311,7 +317,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_archival_memory(agent_state.id)"
"client.agents.archival_memory.list(agent_id=agent_state.id)"
]
},
{
Expand All @@ -321,7 +327,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_archival_memory_summary(agent_state.id)"
"client.agents.context.retrieve(agent_id=agent_state.id)[\"num_archival_memory\"]"
]
},
{
Expand All @@ -339,11 +345,15 @@
"metadata": {},
"outputs": [],
"source": [
"response = client.send_message(\n",
"response = client.agents.messages.create(\n",
" agent_id=agent_state.id, \n",
" message = \"Save the information that 'bob loves cats' to archival\", \n",
" role = \"user\"\n",
") \n",
" messages=[\n",
" MessageCreate(\n",
" role=\"user\", \n",
" content=\"Save the information that 'bob loves cats' to archival\", \n",
" ),\n",
" ]\n",
")\n",
"response"
]
},
Expand All @@ -354,7 +364,7 @@
"metadata": {},
"outputs": [],
"source": [
"client.get_archival_memory(agent_state.id)[0].text"
"client.agents.archival_memory.list(agent_id=agent_state.id)[0].text"
]
},
{
Expand All @@ -372,9 +382,9 @@
"metadata": {},
"outputs": [],
"source": [
"client.insert_archival_memory(\n",
" agent_state.id, \n",
" \"Bob's loves boston terriers\"\n",
"client.agents.archival_memory.create(\n",
" agent_id=agent_state.id, \n",
" text=\"Bob's loves boston terriers\"\n",
")"
]
},
Expand All @@ -393,21 +403,17 @@
"metadata": {},
"outputs": [],
"source": [
"response = client.send_message(\n",
"response = client.agents.messages.create(\n",
" agent_id=agent_state.id, \n",
" role=\"user\", \n",
" message=\"What animals do I like? Search archival.\"\n",
" messages=[\n",
" MessageCreate(\n",
" role=\"user\", \n",
" content=\"What animals do I like? Search archival.\", \n",
" ),\n",
" ]\n",
")\n",
"response"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "adc394c8-1d88-42bf-a6a5-b01f20f78d81",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand Down
4 changes: 2 additions & 2 deletions examples/docs/agent_advanced.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
print(f"Created agent with name {agent_state.name} and unique ID {agent_state.id}")

# message an agent as a user
response = client.agents.messages.send(
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
MessageCreate(
Expand All @@ -54,7 +54,7 @@
print("Agent messages", response.messages)

# message a system message (non-user)
response = client.agents.messages.send(
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
MessageCreate(
Expand Down
4 changes: 2 additions & 2 deletions examples/docs/agent_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
print(f"Created agent with name {agent_state.name} and unique ID {agent_state.id}")

# Message an agent
response = client.agents.messages.send(
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
MessageCreate(
Expand All @@ -40,7 +40,7 @@
agents = client.agents.list()

# get the agent by ID
agent_state = client.agents.get(agent_id=agent_state.id)
agent_state = client.agents.retrieve(agent_id=agent_state.id)

# get the agent by name
agent_state = client.agents.list(name=agent_state.name)[0]
Expand Down
Loading