TikTok AI Agent Intern Interview Experience

A TikTok AI Agent software engineering intern technical screen covering agent evaluation, tool-call debugging, systems fundamentals, and directed-graph coding.

TikTokSoftware Engineer Intern, AI AgentUpdated Sep 12, 20262 min read
中文
Share

TikTok | Software Engineer Intern, AI Agent | Technical Screen | Aug 2026

The interviewer asked first whether I spoke Chinese, and the rest of the screen was in Chinese. After a brief introduction we went straight into questions, moving between core systems knowledge, agent engineering, and a graph problem. The two agent questions I remember most were about choosing a useful metric and tracing a tool call that failed. The coding problem came near the end.

Fundamentals

We started with virtual memory: what it is for, and whether virtual memory can be larger than physical RAM. The discussion touched on paging inactive memory to storage and the OS and MMU managing the mapping. There was also a question about the TCP three-way handshake. I walked through SYN, SYN-ACK, and ACK and what the handshake establishes.

Agent evaluation and debugging

One scenario described three agents with different reliability and asked how I would choose between precision, recall, and F1. The useful part was spelling out the cost of false positives versus false negatives in the task. There was not one metric that made sense without that trade-off.

Another question was how to trace an agent that fails or throws an exception while calling an external tool. We discussed carrying trace IDs through the chain, recording the relevant inputs and outputs, capturing exception status, and being able to inspect retries. It was an engineering-debugging question more than a framework trivia question.

Coding: directed graph paths and cycles

Given a directed graph, hard-coded as an adjacency list, I was asked to find paths from a start node to an end node, then enumerate cycles. I used DFS with a path stack and backtracking for the paths, and got that part running. For cycle detection, a node already on the current recursion stack signals a cycle. To avoid returning the same cycle in multiple rotations, I described emitting it only when traversal started from its smallest-numbered node.

That was the main coding discussion. Afterwards it was my turn to ask questions.