Basic Telegram Agent

Gemini agent with session persistence on Telegram

Code

1from kern.agent import Agent
2from kern.db.sqlite import SqliteDb
3from kern.models.google import Gemini
4from kern.os.app import AgentOS
5from kern.os.interfaces.telegram import Telegram
6
7agent_db = SqliteDb(session_table="telegram_sessions", db_file="tmp/telegram_basic.db")
8
9telegram_agent = Agent(
10 name="Telegram Bot",
11 model=Gemini(id="gemini-2.5-pro"),
12 db=agent_db,
13 instructions=[
14 "You are a helpful assistant on Telegram.",
15 "Keep responses concise and friendly.",
16 "When in a group, you respond only when mentioned with @.",
17 ],
18 add_history_to_context=True,
19 num_history_runs=3,
20 add_datetime_to_context=True,
21 markdown=True,
22)
23
24agent_os = AgentOS(
25 agents=[telegram_agent],
26 interfaces=[
27 Telegram(
28 agent=telegram_agent,
29 reply_to_mentions_only=True,
30 )
31 ],
32)
33app = agent_os.get_app()
34
35if __name__ == "__main__":
36 agent_os.serve(app="basic: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 GOOGLE_API_KEY=your-google-api-key
3export APP_ENV=development

Install dependencies

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

Run Example

1python basic.py

Key Features

  • Telegram Integration: Responds to direct messages and group @mentions
  • Conversation History: Maintains context with last 3 interactions
  • Persistent Memory: SQLite database for session storage
  • Group Chat Support: Only responds when mentioned in groups
  • DateTime Context: Time-aware responses