AI teammates for your community.
Match community members to new launches and posts in their space, and draft intro messages for the best two matches.
Build your AI teammate in 4 steps.
See how a community teammate connects members, interests, launches, and introductions while people approve every outreach.
Connect your systems.
Connectors stream your tools into memory. Models, sandboxes, and devices are independent layers — text, image, speech, and more, credentials gateway-side. Flip the tabs to wire each one.
Connectors ↗Model your business.
Declare the people, business objects, and relationships your agent needs. Every fact from the connectors above converges on the right record, so any teammate reads the same picture.
Memory ↗Define the work.
A trigger — a schedule, or reactive to connector events — plus a plain-language prompt. Once defined it runs unprompted: scans memory, matches the trigger, and surfaces the work with the evidence attached.
Behaviors ↗“Match community members to new launches and posts in their space, and draft intro messages for the best two matches.”
Talk to your teammate everywhere.
Delegate in chat — Slack, Teams, WhatsApp, the API, or MCP. The agent proposes with buttons; you review, edit, and approve. Approving triggers a run that hands the work off to the right person.
Platforms ↗Matches ready · Sarah
- Asked for intros in embeddings infra
- Devon shipped a similar eval harness
- Mira posted an MCP auth breakdown
Drafted intros to Devon and Mira for Sarah. Review before I queue them:
A framework for AI teammates you own.
Not hand-rolled scripts. Not a rented employee. An open-source backend — connectors, shared memory, sandboxed execution, and observability in one — for teammates that watch, remember, and act. Yours to self-host and scope per person. See how it compares →
Everything an agent runs on.
Four swappable runtime layers — inference, execution, memory, and connectors — with evals, deployment, and observability built in. Replace any runtime layer without touching the others.







The same agent, in code.
The use case above is one project: connections, entity types, behaviors, and agent configuration. Inspect each piece or let your coding agent generate it.
import {
connectorFromFile,
defineAgent,
defineConfig,
defineEntityType,
defineRelationshipType,
defineBehavior,
reactionFromFile,
secret,
} from "@lobu/cli/config";
import type DiscoursePostsConnector from "./discourse-posts.connector.ts";
import type opportunityMatcherReaction from "./opportunity-matcher.reaction.ts";
const agentCommunity = defineAgent({
id: "agent-community",
name: "agent-community",
description:
"Discover aligned members, explain why they should meet, and draft warm introductions",
dir: ".",
providers: [
{
id: "anthropic",
model: "claude/sonnet-4-5",
key: secret("ANTHROPIC_API_KEY"),
},
],
network: {
allowed: [
"github.com",
".github.com",
".githubusercontent.com",
"registry.npmjs.org",
".npmjs.org",
],
},
});
// entity types and relationships defined here…
const opportunityMatcher = defineBehavior({
agent: agentCommunity,
slug: "opportunity-matcher",
name: "Opportunity matcher",
triggers: [{ kind: "schedule", cron: "0 */12 * * *" }],
notification: { priority: "normal" },
tags: ["community", "matching"],
minCooldownSeconds: 300,
reaction: reactionFromFile<typeof opportunityMatcherReaction>(
"./opportunity-matcher.reaction.ts"
),
prompt:
"Monitor connected profiles, newsletters, websites, and member updates for new launches, posts, hiring signals, funding news, and project changes. Identify which members are likely to care, explain why, and queue approved intro or outreach drafts.\n",
});
export default defineConfig({
connectors: [
connectorFromFile<typeof DiscoursePostsConnector>(
"./discourse-posts.connector.ts"
),
],
org: "agent-community",
orgName: "Agent Community",
orgDescription:
"Discover aligned members, explain why they should meet, and draft warm introductions",
agents: [agentCommunity],
entities: [match, post, topic],
relationships: [interestedIn, introducedTo, matchesWith, writesAbout],
behaviors: [opportunityMatcher],
});Explore agent workflows.
Each example shows the sources, the memory, and the action for one AI teammate. Same loop (connect, watch, act) pointed at a different job.
Tracks account health, rollout progress, and renewal signals across the customer base.
Reviews incoming contracts, summarizes risk, and surfaces missing protections before sign-off.
Reconciles data across systems, explains variance, and prepares recurring reporting runs.
Declarative. Yours. In your repo.
Every teammate above is a lobu.config.ts — desired state you version, review, and own.lobu validate checks it, lobu applyships it, lobu run boots it. No magic, no lock-in.
Local, self-hosted, or managed.
The same project runs on your laptop, in your cloud, or fully managed by lobu. Your data and controls stay wherever you need them.
Run in your cloud.
Docker, a cloud VM, or Kubernetes when data and controls need to stay with you.
Let lobu run it.
The same project with managed isolation, secrets, and upgrades, nothing to operate.
Questions a technical buyer asks first.
Latest blog posts
The Context Layer Is an Event Store
Tasman says no product can build your context layer because the content doesn't exist. Half right. The governed why is a versioned, access-controlled event store that mirrors the warehouse instead of replacing it — and I built the Kelder scenario to find where that holds and where it doesn't.
Read post →The Agent Loop Is the New SaaS
The business logic SaaS sold you is now an agent loop that watches your data and acts. Here is how to build and own one with Lobu.
Read post →Shopify's Aquifer, in the Open
Shopify treats an agent's corpus as the compounding asset. Lobu keeps the signal—not the chat—and makes that architecture work across companies.
Read post →