VisvoAI Docs

When not to use this

Honest scoping — what VisvoAI is not

visvoai-core

If you want hundreds of integrations, chains, and a batteries-included ecosystem, use LangChain/LangGraph directly — that's what they're for. visvoai-core is deliberately not a framework: no datastore, no web layer, no auth, no document loaders, no retriever abstractions, no chain composition DSL. It is the ~1,000-line agent↔tools loop every agent product ends up writing — a soft step cap, a tool lifecycle, retrieval for large tool fleets, and a handful of subclass hooks — already hardened by two real consumers, and nothing more.

Use it when you're building a product on the loop and want the sharp edges (recursion deaths, runaway rounds, tool sprawl, lifecycle plumbing) already filed down. Don't use it if what you actually need is the wider LangChain ecosystem's breadth of integrations — layer visvoai-core's loop underneath that ecosystem's tools instead, or skip it and use LangGraph raw if you're not building a product with the concerns above.

visvoai-ai

If you've already committed to exactly one provider and don't need cost visibility, model choice, or a normalized reasoning control, a raw provider SDK (or langchain-openai / langchain-anthropic / langchain-google-genai directly) is simpler and has one fewer layer between you and the vendor. visvoai-ai earns its keep specifically at the moment you support choice — multiple providers, visible per-call costs, or reasoning controls that need to work the same way regardless of which model is selected. If "call one model I already chose" is the whole requirement forever, this package is overhead you don't need.

visvoai-ai also does not attempt one-shot generate/embed calls as a first-class surface — Provider.build() returns a BaseChatModel for the agent loop; embedding and one-shot generation are out of scope by design (a consumer needing them adds methods on a subclass).

Forking instead of depending

Both packages are MIT-licensed — forking is legitimate. Before forking: most "I need to change the behavior" cases are covered by the extension seams documented on this site (AgentRuntime's hooks, a custom Provider), and staying a dependency means you keep receiving upstream fixes. Fork when you need to change the loop's shape in ways the hooks genuinely don't reach — and if you hit that wall, it's worth filing an issue first; it may turn out to be the next hook rather than a fork.

On this page