Skip to content

Commit 5562319

Browse files
authored
Merge pull request #32 from statelyai/davidkpiano/0-1
Release 0.1
2 parents 2a22df4 + 41c2b61 commit 5562319

File tree

11 files changed

+47
-123
lines changed

11 files changed

+47
-123
lines changed

.changeset/cold-needles-smile.md

Lines changed: 0 additions & 52 deletions
This file was deleted.

.changeset/cuddly-pillows-glow.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
'@statelyai/agent': minor
3+
---
4+
5+
First minor release of `@statelyai/agent`! The API has been simplified from experimental earlier versions. Here are the main methods:
6+
7+
- `createAgent({ … })` creates an agent
8+
- `agent.decide({ … })` decides on a plan to achieve the goal
9+
- `agent.generateText({ … })` generates text based on a prompt
10+
- `agent.streamText({ … })` streams text based on a prompt
11+
- `agent.addObservation(observation)` adds an observation and returns a full observation object
12+
- `agent.addFeedback(feedback)` adds a feedback and returns a full feedback object
13+
- `agent.addMessage(message)` adds a message and returns a full message object
14+
- `agent.addPlan(plan)` adds a plan and returns a full plan object
15+
- `agent.onMessage(cb)` listens to messages
16+
- `agent.select(selector)` selects data from the agent context
17+
- `agent.interact(actorRef, getInput)` interacts with an actor and makes decisions to accomplish a goal

.changeset/sixty-clocks-sort.md

Lines changed: 0 additions & 32 deletions
This file was deleted.

.changeset/slimy-forks-exercise.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

examples/email.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const machine = setup({
5050
instructions: x.context.instructions,
5151
clarifications: x.context.clarifications,
5252
},
53-
history: true,
53+
messages: agent.select((ctx) => ctx.messages),
5454
goal: 'Respond to the email given the instructions and the provided clarifications. If not enough information is provided, ask for clarification. Otherwise, if you are absolutely sure that there is no ambiguous or missing information, create and submit a response email.',
5555
}),
5656
},

src/agent.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,26 @@ test('an agent has the expected interface', () => {
1414
expect(agent.streamText).toBeDefined();
1515

1616
expect(agent.addFeedback).toBeDefined();
17-
expect(agent.addHistory).toBeDefined();
17+
expect(agent.addMessage).toBeDefined();
1818
expect(agent.addObservation).toBeDefined();
1919
expect(agent.addPlan).toBeDefined();
2020

2121
expect(agent.interact).toBeDefined();
2222
});
2323

24-
test('agent.addHistory() adds to history', () => {
24+
test('agent.addMessage() adds to message history', () => {
2525
const agent = createAgent({
2626
name: 'test',
2727
events: {},
2828
model: {} as any,
2929
});
3030

31-
agent.addHistory({
31+
agent.addMessage({
3232
content: 'msg 1',
3333
role: 'user',
3434
});
3535

36-
const messageHistory = agent.addHistory({
36+
const messageHistory = agent.addMessage({
3737
content: 'response 1',
3838
role: 'assistant',
3939
});

src/agent.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {
1010
import { ZodEventMapping } from './schemas';
1111
import {
1212
Agent,
13-
AgentContext,
1413
AgentLogic,
1514
AgentMessageHistory,
1615
AgentPlanner,
@@ -20,6 +19,7 @@ import {
2019
AIAdapter,
2120
ObservedState,
2221
AgentObservationInput,
22+
AgentMemoryContext,
2323
} from './types';
2424
import { simplePlanner } from './planners/simplePlanner';
2525
import { randomUUID } from 'crypto';
@@ -76,7 +76,7 @@ export const agentLogic: AgentLogic<AnyEventObject> = fromTransition(
7676
messages: [],
7777
observations: [],
7878
plans: [],
79-
} as AgentContext
79+
} as AgentMemoryContext
8080
);
8181

8282
export function createAgent<
@@ -141,7 +141,7 @@ export function createAgent<
141141
return agentDecide(agent, opts);
142142
};
143143

144-
agent.addHistory = (messageInput) => {
144+
agent.addMessage = (messageInput) => {
145145
const message = {
146146
...messageInput,
147147
id: messageInput.id ?? randomUUID(),

src/memory.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { AgentMemory, AgentMemoryData } from './types';
1+
import { AgentMemory, AgentMemoryContext } from './types';
22

33
export function createAgentMemory(): AgentMemory {
44
const storage = {
5-
sessions: {} as Record<string, AgentMemoryData>,
5+
sessions: {} as Record<string, AgentMemoryContext>,
66
};
77

88
return {
@@ -14,7 +14,7 @@ export function createAgentMemory(): AgentMemory {
1414
messages: [],
1515
plans: [],
1616
feedback: [],
17-
} satisfies AgentMemoryData);
17+
} satisfies AgentMemoryContext);
1818

1919
storage.sessions[sessionId]![key].push(item as any);
2020
},

src/strategies/chain-of-note.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export const chainOfNote = setup({
118118
// return summary.extract;
119119
// })
120120
// );
121-
// x.agent?.addHistory({
121+
// x.agent?.addMessage({
122122
// content: x.prompt!,
123123
// id: Date.now() + '',
124124
// role: 'user',
@@ -142,7 +142,7 @@ export const chainOfNote = setup({
142142
// prompt: `${x.prompt!}`,
143143
// });
144144

145-
// x.agent?.addHistory({
145+
// x.agent?.addMessage({
146146
// content: result.text,
147147
// id: Date.now() + '',
148148
// role: 'user',

src/text.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export async function agentGenerateText<T extends Agent<any>>(
7575

7676
const messages = await getMessages(agent, promptWithContext, resolvedOptions);
7777

78-
agent.addHistory({
78+
agent.addMessage({
7979
id,
8080
role: 'user',
8181
content: promptWithContext,
@@ -88,8 +88,8 @@ export async function agentGenerateText<T extends Agent<any>>(
8888
messages,
8989
});
9090

91-
agent.addHistory({
92-
content: result.toolResults ?? result.text,
91+
agent.addMessage({
92+
content: result.text,
9393
id,
9494
role: 'assistant',
9595
timestamp: Date.now(),
@@ -123,7 +123,7 @@ export async function agentStreamText(
123123

124124
const messages = await getMessages(agent, promptWithContext, resolvedOptions);
125125

126-
agent.addHistory({
126+
agent.addMessage({
127127
role: 'user',
128128
content: promptWithContext,
129129
id,
@@ -135,7 +135,7 @@ export async function agentStreamText(
135135
prompt: undefined,
136136
messages,
137137
onFinish: async (res) => {
138-
agent.addHistory({
138+
agent.addMessage({
139139
role: 'assistant',
140140
result: {
141141
text: res.text,

0 commit comments

Comments
 (0)