Telegram Workflow

Draft + Edit two-step workflow on Telegram

Code

1from kern.agent import Agent
2from kern.db.sqlite import SqliteDb
3from kern.models.openai import OpenAIChat
4from kern.os.app import AgentOS
5from kern.os.interfaces.telegram import Telegram
6from kern.workflow.step import Step
7from kern.workflow.steps import Steps
8from kern.workflow.workflow import Workflow
9
10agent_db = SqliteDb(
11 session_table="telegram_workflow_sessions", db_file="tmp/telegram_workflow.db"
12)
13
14drafter = Agent(
15 name="Drafter",
16 model=OpenAIChat(id="gpt-4o-mini"),
17 instructions="Draft a response to the user's message. Be helpful and informative.",
18)
19
20editor = Agent(
21 name="Editor",
22 model=OpenAIChat(id="gpt-4o-mini"),
23 instructions=[
24 "Review and polish the draft for clarity and conciseness.",
25 "Keep it short and suitable for a Telegram message.",
26 ],
27)
28
29draft_step = Step(
30 name="draft",
31 agent=drafter,
32 description="Draft an initial response",
33)
34
35edit_step = Step(
36 name="edit",
37 agent=editor,
38 description="Edit and polish the draft",
39)
40
41telegram_workflow = Workflow(
42 name="Telegram Draft-Edit Workflow",
43 description="A two-step workflow that drafts and then edits responses for Telegram",
44 steps=[
45 Steps(
46 name="draft_and_edit",
47 description="Draft then edit a response",
48 steps=[draft_step, edit_step],
49 )
50 ],
51 db=agent_db,
52)
53
54agent_os = AgentOS(
55 workflows=[telegram_workflow],
56 interfaces=[
57 Telegram(
58 workflow=telegram_workflow,
59 reply_to_mentions_only=True,
60 )
61 ],
62)
63app = agent_os.get_app()
64
65if __name__ == "__main__":
66 agent_os.serve(app="workflow:app", reload=True)

Usage

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Set Environment Variables

1export TELEGRAM_TOKEN=your-bot-token-from-botfather
2export OPENAI_API_KEY=your-openai-api-key
3export APP_ENV=development

Install dependencies

1uv pip install -U "kern-ai[telegram]"

Run Example

1python workflow.py

Key Features

  • Two-Step Pipeline: Drafter writes an initial response, Editor polishes it
  • Workflow on Telegram: The Workflow (not individual agents) is passed to the Telegram interface
  • Sequential Steps: Steps chains Step objects in order
  • Persistent Sessions: SQLite database for conversation history across restarts