Ian Macartney
banner
ianmacartney.bsky.social
Ian Macartney
@ianmacartney.bsky.social
Friendly engineer at Convex.dev
Love to hear it! Hop into the agents channel in the Convex Discord if you aren't already - that's where I give updates & folks give feedback to help shape the future of it
September 3, 2025 at 6:47 AM
github.com
June 17, 2025 at 8:44 PM
That sounds compelling, and yeah system prompts do feel like a pretty poor bound. Now that I think of it I agree it's pretty aligned.
What's your preferred way to handle routing / dispatching / step-by-step tool calls btw?
June 12, 2025 at 11:14 PM
but I may be over-indexing on the string-based signature. Definitely on my list of things to dig deeper on. Like most things you end up having more in common than you expect from the outset
June 12, 2025 at 6:12 AM
Yeah DSPy came on my radar recently. It seems interesting & audacious!
My gut feel is that code is still king though - the second you want more flexibility, composability, or control over context / prompting, you'd be fighting the framework.

A la #4 here stack.convex.dev/ai-agents#go...
AI Agents with Built-in Memory
With this new backend component, augment Agents to automatically save and search message history per-thread, providing realtime results across multipl...
stack.convex.dev
June 12, 2025 at 3:20 AM
wdyt?

const messages = useThreadMessages(
api​.foo.listMessages,
{ threadId },
{ initialNumItems: 10, stream: true },
);
const sendMessage = useMutation(
api​.foo.generateText,
).withOptimisticUpdate(
optimisticallySendMessage(api​.foo.listMessages),
);
May 31, 2025 at 8:16 AM
Agent Component: convex.dev/components/a...
Example code: github.com/get-convex/a...
Changelog: github.com/get-convex/a...

It one-ups persistent-text-streaming by syncing down only the deltas, not the full text, so you don't pay for bandwidth except proportional to the total length
AI Agent
Agents organize your AI workflows into units, with message history and vector search built in.
convex.dev
May 31, 2025 at 8:16 AM
Hosted playground: get-convex.github.io/agent/
Agent component / framework: github.com/get-convex/a...
Playground directory: github.com/get-convex/a...

Fun fact: It can target your @convex.dev backend if you if you expose the API, using API key auth.
Statically hosted on GitHub pages
Convex Agent Playground
Evaluate and test agents using @convex-dev/agent
get-convex.github.io
May 22, 2025 at 11:52 PM
For an importance of x (0 to 1):
1. Normalize the existing vector to (1-x) and add √.x
2. Search with [...embedding, 0].
e.g.:
Say we have an embedding of 2 numbers [.6, .8]
For 50% importance: [.3, .4, .707]
For [.6, .8] we used to get 1.0.
Now we get .6*.3 + .8+.4+0 = .5🎉
April 10, 2025 at 9:00 PM
My original thought was to just scale all the values, but vector search normalize the vectors for -1:+1 scores.

The trick is to add an extra number ("feature") to the embedding.
[...1536 numbers, <X>]
Then query with
[...1536 numbers, 0].
How it works: 🧵
April 10, 2025 at 9:00 PM
I pushed a fix this morning, so if you already installed it, upgrade to `@convex-dev/agent@latest`
April 9, 2025 at 11:32 PM
I launched this today! Adding memory to AI SDK Agents with tools and RAG.
Article on Agentic Workflow: stack.convex.dev/ai-agents
Agent framework: convex.dev/components/a...
AI Agents with Built-in Memory
With this new backend component, augment Agents to automatically save and search message history per-thread, providing realtime results across multipl...
stack.convex.dev
April 8, 2025 at 7:26 PM