from veadk import Agent, Runner
from agentkit.apps import AgentkitSimpleApp
from veadk.prompts.agent_default_prompt import DEFAULT_DESCRIPTION, DEFAULT_INSTRUCTION
from veadk.memory.long_term_memory import LongTermMemory
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
app = AgentkitSimpleApp()
description = DEFAULT_DESCRIPTION
system_prompt = DEFAULT_INSTRUCTION
mem_collection_name = os.getenv("DATABASE_VIKINGMEM_COLLECTION")
if not mem_collection_name:
raise ValueError("DATABASE_VIKINGMEM_COLLECTION environment variable is not set")
long_term_memory = LongTermMemory(backend="viking", index=mem_collection_name)
description=description,
instruction=system_prompt,
long_term_memory=long_term_memory,
runner = Runner(agent=agent)
async def run(payload: dict, headers: dict) -> str:
prompt = payload["prompt"]
user_id = headers["user_id"]
session_id = headers["session_id"]
f"Running agent with prompt: {prompt}, user_id: {user_id}, session_id: {session_id}"
response = await runner.run(messages=prompt, user_id=user_id, session_id=session_id)
logger.info(f"Run response: {response}")
await runner.save_session_to_long_term_memory(session_id=session_id, user_id=user_id)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)