@letta-ai/letta-agent-sdk 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/agent-creation.d.ts +9 -0
- package/dist/agent-creation.d.ts.map +1 -0
- package/dist/app-server-session.d.ts.map +1 -1
- package/dist/client-entry.js +46 -12
- package/dist/client-entry.js.map +6 -5
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -12
- package/dist/index.js.map +7 -6
- package/dist/remote-session-protocol.d.ts.map +1 -1
- package/dist/types.d.ts +9 -28
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/agent-creation.ts +66 -0
- package/src/app-server-session.ts +8 -13
- package/src/index.ts +8 -6
- package/src/remote-session-protocol.ts +2 -1
- package/src/types.ts +17 -30
package/README.md
CHANGED
|
@@ -30,8 +30,16 @@ const client = new LettaAgentClient({
|
|
|
30
30
|
|
|
31
31
|
const agentId = await client.createAgent({
|
|
32
32
|
model: "anthropic/claude-opus-4-8",
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
memory: [
|
|
34
|
+
{
|
|
35
|
+
label: "persona",
|
|
36
|
+
value: "You are a proactive research assistant.",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: "human",
|
|
40
|
+
value: "The user prefers concise summaries with sources and next steps.",
|
|
41
|
+
},
|
|
42
|
+
],
|
|
35
43
|
});
|
|
36
44
|
|
|
37
45
|
await using session = client.createSession(agentId);
|
|
@@ -44,6 +52,10 @@ for await (const message of session.stream()) {
|
|
|
44
52
|
}
|
|
45
53
|
```
|
|
46
54
|
|
|
55
|
+
`createAgent()` uses the supplied memory as the agent's identity. Letta Code
|
|
56
|
+
personality presets are opt-in: pass `personality: "memo"` (or another preset)
|
|
57
|
+
only when you want that preset's name, description, and memory blocks.
|
|
58
|
+
|
|
47
59
|
An agent is the persistent entity with memory. A conversation is a thread on that agent. A session is the active connection used to send messages, stream events, execute tools, and handle approvals.
|
|
48
60
|
|
|
49
61
|
- `createSession(agentId)` starts a new conversation.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CreateAgentOptions } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Build the standard harness portion of a create-agent request.
|
|
4
|
+
*
|
|
5
|
+
* Personality presets are explicit opt-ins. Without one, the SDK builds a
|
|
6
|
+
* generic agent and lets the caller's memory blocks define its identity.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildInitialAgentBody(options: CreateAgentOptions): Promise<Record<string, unknown>>;
|
|
9
|
+
//# sourceMappingURL=agent-creation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-creation.d.ts","sourceRoot":"","sources":["../src/agent-creation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAmBrD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+BlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-server-session.d.ts","sourceRoot":"","sources":["../src/app-server-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gCAAgC,EAEtC,MAAM,wCAAwC,CAAC;AAqBhD,OAAO,EACL,uBAAuB,EAKvB,KAAK,eAAe,EACpB,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAElB,8BAA8B,EAC9B,6BAA6B,EAC7B,WAAW,EACX,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAWpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,EAAE,GAAG,SAAS,CAStB;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,4BAA4B,CAAC,GAAG;IAC5E,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,CACR,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAChC,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,IAAI,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7C,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAoDtD,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"app-server-session.d.ts","sourceRoot":"","sources":["../src/app-server-session.ts"],"names":[],"mappings":"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"}
|
package/dist/client-entry.js
CHANGED
|
@@ -8271,6 +8271,7 @@ var models_default = {
|
|
|
8271
8271
|
]
|
|
8272
8272
|
};
|
|
8273
8273
|
var models = models_default.models;
|
|
8274
|
+
var MODEL_PRESETS = models;
|
|
8274
8275
|
function resolveModel(modelIdentifier) {
|
|
8275
8276
|
const byId = models.find((m) => m.id === modelIdentifier);
|
|
8276
8277
|
if (byId)
|
|
@@ -8530,6 +8531,45 @@ async function buildCreateAgentRequestForPersonality(params) {
|
|
|
8530
8531
|
};
|
|
8531
8532
|
}
|
|
8532
8533
|
|
|
8534
|
+
// src/agent-creation.ts
|
|
8535
|
+
var DEFAULT_MODEL_ID = "auto";
|
|
8536
|
+
var DEFAULT_SUMMARIZATION_MODEL2 = "letta/auto";
|
|
8537
|
+
function resolveModel2(modelIdentifier) {
|
|
8538
|
+
const preset = MODEL_PRESETS.find((model) => model.id === modelIdentifier || model.handle === modelIdentifier);
|
|
8539
|
+
if (preset)
|
|
8540
|
+
return preset.handle;
|
|
8541
|
+
if (modelIdentifier.includes("/"))
|
|
8542
|
+
return modelIdentifier;
|
|
8543
|
+
throw new Error(`Unknown model: ${modelIdentifier}`);
|
|
8544
|
+
}
|
|
8545
|
+
async function buildInitialAgentBody(options) {
|
|
8546
|
+
if (options.personality !== undefined) {
|
|
8547
|
+
return {
|
|
8548
|
+
...await buildCreateAgentRequestForPersonality({
|
|
8549
|
+
personalityId: options.personality,
|
|
8550
|
+
...options.name !== undefined ? { name: options.name } : {},
|
|
8551
|
+
...options.description !== undefined ? { description: options.description } : {},
|
|
8552
|
+
...options.model !== undefined ? { model: options.model } : {},
|
|
8553
|
+
...options.tags !== undefined ? { extraTags: options.tags } : {}
|
|
8554
|
+
})
|
|
8555
|
+
};
|
|
8556
|
+
}
|
|
8557
|
+
return {
|
|
8558
|
+
agent_type: LETTA_CODE_AGENT_TYPE,
|
|
8559
|
+
...options.name !== undefined ? { name: options.name } : {},
|
|
8560
|
+
...options.description !== undefined ? { description: options.description } : {},
|
|
8561
|
+
model: resolveModel2(options.model ?? DEFAULT_MODEL_ID),
|
|
8562
|
+
system: buildSystemPrompt("default", "memfs"),
|
|
8563
|
+
tags: buildCreatedAgentTags({
|
|
8564
|
+
enableMemfs: true,
|
|
8565
|
+
tags: options.tags ?? []
|
|
8566
|
+
}),
|
|
8567
|
+
initial_message_sequence: [],
|
|
8568
|
+
parallel_tool_calls: true,
|
|
8569
|
+
compaction_settings: { model: DEFAULT_SUMMARIZATION_MODEL2 }
|
|
8570
|
+
};
|
|
8571
|
+
}
|
|
8572
|
+
|
|
8533
8573
|
// src/interactiveToolPolicy.ts
|
|
8534
8574
|
var INTERACTIVE_APPROVAL_TOOLS = new Set([
|
|
8535
8575
|
"AskUserQuestion",
|
|
@@ -8609,7 +8649,7 @@ function normalizePermissionMode(mode) {
|
|
|
8609
8649
|
if (mode === "bypassPermissions" || mode === "fullAccess") {
|
|
8610
8650
|
return "unrestricted";
|
|
8611
8651
|
}
|
|
8612
|
-
if (mode === "standard" || mode === "acceptEdits" || mode === "unrestricted") {
|
|
8652
|
+
if (mode === "standard" || mode === "acceptEdits" || mode === "unrestricted" || mode === "strict") {
|
|
8613
8653
|
return mode;
|
|
8614
8654
|
}
|
|
8615
8655
|
return;
|
|
@@ -9981,15 +10021,7 @@ function upsertMemoryBlock(blocks, block) {
|
|
|
9981
10021
|
async function createAgentBody(options, settings = {}) {
|
|
9982
10022
|
assertRemoteCreateAgentOptionsSupported(options);
|
|
9983
10023
|
const includeOriginTag = settings.includeSdkOriginTag ?? true;
|
|
9984
|
-
const body =
|
|
9985
|
-
...await buildCreateAgentRequestForPersonality({
|
|
9986
|
-
personalityId: options.personality ?? "memo",
|
|
9987
|
-
...options.name !== undefined ? { name: options.name } : {},
|
|
9988
|
-
...options.description !== undefined ? { description: options.description } : {},
|
|
9989
|
-
...options.model !== undefined ? { model: options.model } : {},
|
|
9990
|
-
...options.tags !== undefined ? { extraTags: options.tags } : {}
|
|
9991
|
-
})
|
|
9992
|
-
};
|
|
10024
|
+
const body = await buildInitialAgentBody(options);
|
|
9993
10025
|
if (Array.isArray(body.tags)) {
|
|
9994
10026
|
body.tags = body.tags.filter((tag) => (includeOriginTag || tag !== LETTA_CODE_ORIGIN_TAG) && (options.memfs !== false || tag !== GIT_MEMORY_ENABLED_TAG));
|
|
9995
10027
|
}
|
|
@@ -10020,6 +10052,7 @@ async function createAgentBody(options, settings = {}) {
|
|
|
10020
10052
|
throw new Error("createAgent() does not yet support system prompt preset objects for this backend.");
|
|
10021
10053
|
}
|
|
10022
10054
|
}
|
|
10055
|
+
const hasMemoryConfiguration = Array.isArray(body.memory_blocks) || options.memory !== undefined || options.persona !== undefined || options.human !== undefined;
|
|
10023
10056
|
const memoryBlocks = Array.isArray(body.memory_blocks) ? body.memory_blocks.filter((block) => block !== null && typeof block === "object").map((block) => ({ ...block })) : [];
|
|
10024
10057
|
const blockIds = [];
|
|
10025
10058
|
for (const item of options.memory ?? []) {
|
|
@@ -10041,7 +10074,8 @@ async function createAgentBody(options, settings = {}) {
|
|
|
10041
10074
|
if (options.human !== undefined) {
|
|
10042
10075
|
upsertMemoryBlock(memoryBlocks, { label: "human", value: options.human });
|
|
10043
10076
|
}
|
|
10044
|
-
|
|
10077
|
+
if (hasMemoryConfiguration)
|
|
10078
|
+
body.memory_blocks = memoryBlocks;
|
|
10045
10079
|
if (blockIds.length > 0)
|
|
10046
10080
|
body.block_ids = blockIds;
|
|
10047
10081
|
return body;
|
|
@@ -12135,4 +12169,4 @@ export {
|
|
|
12135
12169
|
CloudManagedSandboxExpiredError
|
|
12136
12170
|
};
|
|
12137
12171
|
|
|
12138
|
-
//# debugId=
|
|
12172
|
+
//# debugId=A7FA3320F5313CB664756E2164756E21
|