Merge pull request #71 from plastic-labs/chl_primer

primer draft
This commit is contained in:
Courtland Leer 2024-04-17 14:19:15 -04:00 committed by GitHub
commit 913605b150
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 125 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@ -0,0 +1,112 @@
---
title: A Simple Honcho Primer
date: 04.16.24
tags:
- blog
- honcho
---
![[bot reading primer.png]]
> [!NOTE] Welcome to our quick, "explain it like I'm 5" guide to [Honcho](https://honcho.dev)!
> We'll keep it simple, covering [[A Simple Honcho Primer#^ef795f|what Honcho is]], [[A Simple Honcho Primer#^x125da|why we built it]], [[A Simple Honcho Primer#^cd2d3c|how to use it]], and [[A Simple Honcho Primer#^ca46d7|where the product is going]]. But throughout, we'll link to places you can dive deeper.
## What Is Honcho?
^ef795f
Honcho is a personalization platform for large language model (LLM) applications built by [Plastic Labs](https://plasticlabs.ai).
It's software infrastructure that lets AI apps to "get to know" their users, resulting in delightful experiences and optimized time to value.
We'll have direct consumer experiences in the future, but today, the product is for application developers. It allows them to [[Introducing Honcho's Dialectic API#^a14c2f|reduce overhead]] and [[Introducing Honcho's Dialectic API#^x7f7f8|enhance their machine learning pipeline]].
Right now, Honcho is in private beta, that means integrating our hosted version requires permission and onboarding[^1]. [You can sign-up here](https://plasticlabs.typeform.com/honchobeta).
In its current form, Honcho has three core components:
1. [[Announcing Honcho's Private Beta#^x15f37|Storage]] - managing each user's data
2. [[Announcing Honcho's Private Beta#^x53717|Inference]] - processing user data with our proprietary AI models
3. [[Announcing Honcho's Private Beta#^ee4516|Retrieval]] - surfacing user data to personalize user experience (UX)
If you've heard of [Retrieval Augmented Generation](https://en.wikipedia.org/wiki/Prompt_engineering#Retrieval-augmented_generation) (RAG), this might sound familiar. But Honcho is doing *much* more than simple RAG.
Behind the scenes, Honcho learns about users as people--[[User State is State of the Art|richly modeling identity]]. It seeks to understand their beliefs, hopes, dreams, history, interests, and preferences.
It then acts as [[Introducing Honcho's Dialectic API|an oracle to each user]], allowing apps ask for any personal context they need to improve UX and giving them access to a social cognition layer.
## Why We Built Honcho
^x125da
Plastic Labs was founded as an edtech company. The original mission was to build an AI tutor that [[Open Sourcing Tutor-GPT#^x527dc|could reason like]] the best human instructors. We quickly found the key limitation was data not on the subject matter, but on the student. To overcome it, he tutor needed [[Theory of Mind Is All You Need|a way to]] get to know *each* of its students deeply.
Honcho was born by running up against this challenge, building technology to solve it, and realizing all AI applications are going to need the same solutions. The promise of *generative* AI isn't one-size-fits-all products, but bespoke experiences in each moment for each user. The same limitation emerges--how well do you know your user?
So we believe Honcho will be a critical, table-stakes part of the AI app development stack.
Why? Because [[Humans like personalization|users will want]] their AI experiences to be personalized and app developers shouldn't be redundantly solving that problem.
But it's not intuitive for a few reasons:
- AI app builders are [[Machine learning is fixated on task performance|still focused on]] just getting general tasks to work
- LLMs' [[LLMs excel at theory of mind because they read|potential to personalize]] is still under-appreciated
- Historic examples of personalized apps usually just leverage our activity & engagement data
- Those examples tend target only base user desire, lead to addictive behavior, & have poor privacy records
Still, when interacting with an AI app, there's a sense that it *should* be getting to know us. In fact, we're often surprised when we realize it's not learning about us over time. And probably annoyed at having to start over.
Think about personalization here as more like the experience of close human companionship or white glove services than the attention hacking mechanisms of TikTok. There's [[Announcing Honcho's Private Beta#^xb6ef1|enormous potenial]] for more positive-sum use of user data and for aligning AI applications more closely with user needs and preferences[^2].
## How to Use Honcho
^cd2d3c
Honcho is first and foremost a **storage** framework. Think of it like an open source version of the OpenAI Assistants API. User `sessions` store both user and AI generated `messages` as well as any intermediate inferences you might want to store as `metamessages`:
```python
user_input = "Here's a message!"
ai_response = "I'm a helpful AI assistant!"
session.create_message(is_user=True, content=user_input)
session.create_message(is_user=False, content=ai_response)
```
But what about vectorDBs? Don't worry, Honcho has you covered there too. You can embed data and store them as `documents` in per-user vector DBs called `collections`:
```python
collection.create_document(content="The user is interested in AI")
```
Using Honcho as a storage mechanism allows you to **retrieve** rich insights via the user profiles it's building and managing on the backend. Your application's LLM can access [[Loose theory of mind imputations are superior to verbatim response predictions|theory-of-mind]] inference over those profiles via the *[[Introducing Honcho's Dialectic API|dialectic]]* API.
It's simple: just query in natural language using the `session.chat()` method:
```python
session.chat("What are the user's interests?")
```
There are a [[Introducing Honcho's Dialectic API#How It Works|ton of ways]] to use Honcho, this primer only scratches the surface[^3].
## What's Next for Honcho?
^ca46d7
Beyond improving our internal AI models so they can get to know users as richly as possible, we see three natural extensions in [[Announcing Honcho's Private Beta#^eb15f3|Honcho's future]]:
1. [[Announcing Honcho's Private Beta#^x2dd3b|Monitoring & Evaluation]] - developer tools to understand & assess the impact of personalization + machine learning tools to build personalized datasets
2. [[Announcing Honcho's Private Beta#^a84f44|User-Facing Controls]] - chat with *your* Honcho to direct how it manages & shares data + authenticate with Honcho to sign-in to AI apps
3. [[Announcing Honcho's Private Beta#^ebf071|Honcho Application Ecosystem]] - a network of apps contributing to & sharing Honcho data, user-owned & stored in confidential environments
And in just a few weeks, we'll be launching a demo platform where anyone can interact with (& eventually build) Honcho powered apps.
## Join the Beta
[Sign-up for the private beta](https://plasticlabs.typeform.com/honchobeta) and start building personalized experiences.
[Join Discord](https://discord.gg/plasticlabs), introduce yourself, and tell us what you're working on.
[Visit our open-source repo](https://github.com/plastic-labs/honcho) and get your hands dirty.
🫡
[^1]: There's also [an open source repo for Honcho](https://github.com/plastic-labs/honcho), so you can self-host a basic version--[join our Discord](https://discord.gg/plasticlabs) for support.
[^2]: If you want to go deeper on the philosophical or machine learning side, take some time to explore the [rest of the blog](https://blog.plasticlabs.ai).
[^3]: To get further into the technical weeds, head over to [our docs](https://docs.honcho.dev).

View File

@ -45,12 +45,14 @@ You need to discover your users' unmet needs so you know how your product should
Here's what the private beta currently includes, and what's on the way: Here's what the private beta currently includes, and what's on the way:
#### User-Centric Storage #### User-Centric Storage
^x15f37
Honcho allows you to [store](https://docs.honcho.dev/getting-started/architecture) `users`, `messages`, `sessions`, & `metamessages`. That is, you can effortlessly record each user interaction with you application, organized on a per-user basis, and the product of any intermediate steps in between user message and application response. Honcho allows you to [store](https://docs.honcho.dev/getting-started/architecture) `users`, `messages`, `sessions`, & `metamessages`. That is, you can effortlessly record each user interaction with you application, organized on a per-user basis, and the product of any intermediate steps in between user message and application response.
It also supports `documents` and `collections`. The former to store discrete user embeddings and the latter to organize them globally across sessions. These primitives are used by Honcho's personalization engine to begin modeling user identity based on each interaction. They can also be used to "bring you own" user data or context to be computed over and utilized by Honcho. It also supports `documents` and `collections`. The former to store discrete user embeddings and the latter to organize them globally across sessions. These primitives are used by Honcho's personalization engine to begin modeling user identity based on each interaction. They can also be used to "bring you own" user data or context to be computed over and utilized by Honcho.
#### Personalization Engine #### Personalization Engine
^x53717
Here's where the magic happens. Honcho leverages everything in storage to run theory of mind inference and automatically learn about each user. Here's where the magic happens. Honcho leverages everything in storage to run theory of mind inference and automatically learn about each user.
@ -59,6 +61,7 @@ The personalization engine both pulls out user desires, history, beliefs, emotio
Honcho is always updating user identity, so it's ready when you need it. Honcho is always updating user identity, so it's ready when you need it.
##### Dialectic API ##### Dialectic API
^ee4516
Our [[Introducing Honcho's Dialectic API|Dialectic API]] is how your app-side LLM interfaces with the Honcho-side agent sitting on top of each user identity. This is done in natural language. It's an AI-native endpoint for direct LLM-to-LLM communication. Our [[Introducing Honcho's Dialectic API|Dialectic API]] is how your app-side LLM interfaces with the Honcho-side agent sitting on top of each user identity. This is done in natural language. It's an AI-native endpoint for direct LLM-to-LLM communication.
@ -67,12 +70,13 @@ It allows you to inject personal context and social cognition directly into your
[[Introducing Honcho's Dialectic API#^57acc3|Here's an extended list of possible ways to use it]]. [[Introducing Honcho's Dialectic API#^57acc3|Here's an extended list of possible ways to use it]].
#### User-Specific Monitoring (coming soon...) #### User-Specific Monitoring (coming soon...)
^x2dd3b
Soon, Honcho will support a suite of tools to get the most out of our personalization platform. Soon, Honcho will support a suite of tools to get the most out of our personalization platform.
- **Visualization tools** - it's hard to grok and track everything going on within a session, we're building clean ways to visualize this an its relationship to all the background inference - **Visualization tools** - it's hard to grok and track everything going on within a session, we're building clean ways to visualize this an its relationship to all the background inference
- **Dialectic Playground** - take past sessions and run simulations predicting user behavior to see how things could have gone better or worse and how to optimize - **Dialectic Playground** - take past sessions and run simulations predicting user behavior to see how things could have gone better or worse and how to optimize
- **Evaluation & Benchmarking** - the state of theory of mind research is highly compelling, but [[Achieving SOTA on OpenToM with DSPy#^0b4f2e|we need practical, app & user specific evals]] - **Evaluation & Benchmarking** - the state of theory of mind research is highly compelling, but [[Achieving SOTA on OpenToM with DSPy#^0b4f2e|we need practical, app & user specific evals]]
@ -80,6 +84,8 @@ Soon, Honcho will support a suite of tools to get the most out of our personaliz
### The Future of Honcho ### The Future of Honcho
^eb15f3
At [Plastic Labs](https://plasticlabs.ai), we're dedicated to radically extending human agency and identity. That means giving AI superpowers to every individual. At [Plastic Labs](https://plasticlabs.ai), we're dedicated to radically extending human agency and identity. That means giving AI superpowers to every individual.
This only works in a world with a rich ecosystem of personalized agents--individually-aligned, highly distributed, and universally accessible. This only works in a world with a rich ecosystem of personalized agents--individually-aligned, highly distributed, and universally accessible.
@ -93,12 +99,13 @@ All that guides a roadmap including, but not limited to:
- **Per-user models** - understanding, representing, & updating the full breadth of user identity - **Per-user models** - understanding, representing, & updating the full breadth of user identity
- **A *network* of Honcho-powered apps** - agents can share user data, reducing overhead & onboarding, just-in-time personalization - **A *network* of Honcho-powered apps** - agents can share user data, reducing overhead & onboarding, just-in-time personalization
^ebf071
- **User owned data & confidential computing environments** - re-centralizing personal data around the person, then allowing approved applications to *compute-to* that data in a privacy preserving way - **User owned data & confidential computing environments** - re-centralizing personal data around the person, then allowing approved applications to *compute-to* that data in a privacy preserving way
- **User-facing controls** - empower users to curate their Honcho identities, authenticate with Honcho, and define sensitive data sharing policies in natural language - **User-facing controls** - empower users to curate their Honcho identities, authenticate with Honcho, and define sensitive data sharing policies in natural language ^a84f44
### Who Is This For? ### Who Is This For?
^xb6ef1
We want to build with diverse projects at all stages of development--from ideation to production. We want to build with diverse projects at all stages of development--from ideation to production.

View File

@ -51,6 +51,7 @@ Why is a dialectic API the right way to solve the problem of user context in LLM
Not only is it ideal from a development and design perspective, it's optimal for the particular task of personal context and user identity. Not only is it ideal from a development and design perspective, it's optimal for the particular task of personal context and user identity.
#### The DevEx Case #### The DevEx Case
^a14c2f
Our Dialectic API is single endpoint for everything personalization. Our Dialectic API is single endpoint for everything personalization.
@ -63,6 +64,7 @@ Further, when agents can communicate directly using natural language, there's no
However, this doesn't mean the developer now needs to be a prompting expert, fluent in all its esoterica. Honcho is an expert in personal context and theory of mind reasoning, so your prompts can be adaptive and ad hoc, and Honcho will figure out the rest. When you're ready, you can even offload the queries to your app-side LLM. However, this doesn't mean the developer now needs to be a prompting expert, fluent in all its esoterica. Honcho is an expert in personal context and theory of mind reasoning, so your prompts can be adaptive and ad hoc, and Honcho will figure out the rest. When you're ready, you can even offload the queries to your app-side LLM.
#### The ML Case #### The ML Case
^x7f7f8
Extra context improves user response generation, the more specific, the better. Focus on ML to crush your vertical, let Honcho personalize it by default. Extra context improves user response generation, the more specific, the better. Focus on ML to crush your vertical, let Honcho personalize it by default.

View File

@ -37,6 +37,7 @@ It's clear generative AI stands a good chance of democratizing this kind of acce
So how do we create successful learning agents that students will eagerly use without coercion? We think this ability lies latent in foundation models, but the key is eliciting it. So how do we create successful learning agents that students will eagerly use without coercion? We think this ability lies latent in foundation models, but the key is eliciting it.
## Eliciting Pedagogical Reasoning ## Eliciting Pedagogical Reasoning
^x527dc
The machine learning community has long sought to uncover the full range of tasks that large language models can be prompted to accomplish on general pre-training alone (the capability overhang). We believe we have discovered one such task: pedagogical reasoning. ^05bfd8 The machine learning community has long sought to uncover the full range of tasks that large language models can be prompted to accomplish on general pre-training alone (the capability overhang). We believe we have discovered one such task: pedagogical reasoning. ^05bfd8