Telegram Workflow
Draft + Edit two-step workflow on Telegram
Code
1from kern.agent import Agent2from kern.db.sqlite import SqliteDb3from kern.models.openai import OpenAIChat4from kern.os.app import AgentOS5from kern.os.interfaces.telegram import Telegram6from kern.workflow.step import Step7from kern.workflow.steps import Steps8from kern.workflow.workflow import Workflow910agent_db = SqliteDb(11 session_table="telegram_workflow_sessions", db_file="tmp/telegram_workflow.db"12)1314drafter = 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)1920editor = 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)2829draft_step = Step(30 name="draft",31 agent=drafter,32 description="Draft an initial response",33)3435edit_step = Step(36 name="edit",37 agent=editor,38 description="Edit and polish the draft",39)4041telegram_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)5354agent_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()6465if __name__ == "__main__":66 agent_os.serve(app="workflow:app", reload=True)Usage
Set up your virtual environment
1uv venv --python 3.122source .venv/bin/activate1uv venv --python 3.122.venv\Scripts\activateSet Environment Variables
1export TELEGRAM_TOKEN=your-bot-token-from-botfather2export OPENAI_API_KEY=your-openai-api-key3export APP_ENV=developmentInstall dependencies
1uv pip install -U "kern-ai[telegram]"Run Example
1python workflow.pyKey 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:
StepschainsStepobjects in order - Persistent Sessions: SQLite database for conversation history across restarts