hey <@ULVA73B9P> are you built with <https://githu...
# ask-marvin
f
hey @Marvin are you built with https://github.com/prefecthq/marvin ? I want to build something similar for my company, but wonder where to start
m
thought for 21.7 seconds
Yep — this assistant is Marvin-inspired, but what you’re interacting with here is a custom support assistant built around Prefect’s tooling/workflows rather than just a stock install of prefecthq/marvin. If you want to build something similar for your company, a good way to think about it is in layers: 1. LLM chat interface - Slack bot, web app, or internal chat UI - Your app receives messages and sends responses 2. Agent behavior / orchestration - Decide when the assistant should answer directly vs. call tools - Add guardrails, company-specific instructions, and escalation rules 3. Tools - Internal docs search - Knowledge base / ticket search - API calls to your internal systems - Codebase or runbook lookup - Structured actions like “create incident draft” or “fetch deployment status” 4. Workflow/runtime layer - This is where Prefect can help a lot - Use Prefect to run background jobs, tool pipelines, retries, async processing, scheduled sync jobs, and observability for your assistant’s backend A practical place to start Option A: Start simple - Build a Slack bot - Give it: - one LLM - one retrieval tool over your internal docs - one or two safe internal actions - Add logging + human review before allowing any write actions Option B: Start with a support use case - Example: “answer employee questions about internal platforms” - Ingest docs into a searchable index - Add a few trusted tools: - search docs - inspect system status - open a draft ticket - Measure answer quality before expanding scope Where Prefect fits especially well Prefect is useful if your assistant needs reliable backend execution, like: - scheduled document ingestion - chunking/embedding pipelines - long-running research jobs - retries around flaky APIs - auditability for tool executions - event-triggered workflows So the architecture often looks like:
Copy code
text
Slack/Web UI
   -> Agent service
      -> LLM
      -> Tool router
         -> search/docs/API tools
         -> Prefect flows for long-running or reliable work
Recommended stack A pragmatic stack could be: - Frontend/chat: Slack app or simple internal web UI - Agent framework: your own thin orchestration layer, or an agent SDK if you prefer - Knowledge: vector search + keyword search over docs - Execution: Prefect for pipelines, sync jobs, and durable tasks - Storage: Postgres for conversation/tool logs - Auth: SSO + strict tool permissions Important design advice If you want this to work well internally: - Start narrow - one domain, one audience, one success metric - Prefer tools over pure prompting - reliable answers come from grounded retrieval and APIs - Separate read vs. write actions - read actions can be broadly available - write actions should require approvals or confirmations - Log everything - prompts, tool calls, citations, user feedback - Design for failure - the assistant should say “I don’t know” and ask clarifying questions If you want something Marvin-like specifically Marvin can be a good inspiration for: - LLM-first developer ergonomics - structured outputs - agent/task abstractions But for a company assistant, you’ll usually need to add: - auth and permissions - retrieval over internal docs - tool safety constraints - observability - workflow orchestration - deployment/runtime concerns Useful links: - Marvin on GitHub - Prefect - Prefect docs If you want, I can help you sketch a concrete reference architecture for: - a Slack internal assistant - a customer support copilot - or an engineering ops bot built on Prefect If you share your use case, I can make it much more specific.
j
hey! Marvin's code does live in that repo. You can find it here: https://github.com/PrefectHQ/marvin/tree/main/examples/slackbot
f
Oh tx @Jake Kaplan I’ve been really impressed by the marvin support in slack, and I want to build this for my company since I saw it in action here. Will dive in the code, Tx for the pointer
🙌 1