Skip to main content

Veska

CI

A multi-agent AI framework built from scratch in Python. No LangChain, no CrewAI, no AutoGen — 100% custom-built for full control.

Install

pip install veska

Quick Start

from veska import Agent

agent = Agent(
    name="assistant",
    system_prompt="You are a helpful coding assistant.",
    model="claude-sonnet-4-6",
)

result = agent.run("Explain what a decorator is in Python")
print(result.output)

Add Tools

from veska import Agent, tool

@tool
def get_weather(city: str):
    return f"Weather in {city}: 72°F, sunny"

agent = Agent(
    name="weather-bot",
    system_prompt="You help users check the weather. Use the get_weather tool.",
    model="claude-sonnet-4-6",
    tools=[get_weather],
)

result = agent.run("What's the weather in Paris?")
print(result.output)

Structured Output

from veska import Agent

agent = Agent(
    name="reviewer",
    system_prompt="You review movies.",
    model="claude-sonnet-4-6",
    output_format={
        "title": str,
        "rating": float,
        "recommend": bool,
    }
)

result = agent.run("Review the movie Inception")
print(result.output["title"])      # "Inception"
print(result.output["rating"])     # 9.0

Streaming

result = agent.run("Write a haiku about coding", stream=True)

Multi-Agent System

from veska import Agent, Orchestrator

researcher = Agent(
    name="researcher",
    system_prompt="You research topics thoroughly.",
    model="claude-sonnet-4-6",
)

writer = Agent(
    name="writer",
    system_prompt="You write clear, engaging content.",
    model="claude-sonnet-4-6",
)

orchestrator = Orchestrator(
    model="claude-sonnet-4-6",
    agents=[researcher, writer],
    tools=["file_manager"],
)

result = orchestrator.run("Write a blog post about AI agents")
print(result.results)

Per-Agent Models

researcher = Agent(name="researcher", model="claude-sonnet-4-6")
writer = Agent(name="writer", model="gpt-4o")

Features

  • Multi-Agent Orchestration — Orchestrator breaks tasks into a dependency graph, runs them in parallel/sequential order
  • Multi-Model Support — Claude and OpenAI, configurable per agent
  • Unified Tool System — Pre-built, custom, and MCP tools. Just use @tool decorator
  • Streamingstream=True or stream=callback
  • Structured Output — Pass output_format dict, get validated responses
  • Memory System — Private memory per agent + shared memory pool
  • 3-Level Error Recovery — Auto-retry, agent-level fix, discussion room
  • Security Sandboxing — Agents sandboxed to their own territory
  • Extended Thinking — Optional per-agent thinking support
  • MCP Support — Connect external services via Model Context Protocol
  • General Purpose — Not locked to any use case

Requirements

  • Python 3.10+
  • anthropic, openai, pydantic

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veska-0.1.1.tar.gz (81.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veska-0.1.1-py3-none-any.whl (97.1 kB view details)

Uploaded Python 3

File details

Details for the file veska-0.1.1.tar.gz.

File metadata

  • Download URL: veska-0.1.1.tar.gz
  • Upload date:
  • Size: 81.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for veska-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4601bca92cda922ef98eb570c2f37b306e007281449246d817362c827baf44f0
MD5 70612ebe25bead4d68fdd8acddc04676
BLAKE2b-256 e67e98af6fbf1931e2aadbae5046af463ac7d2d9b9ee421044ff0fb698af7c8d

See more details on using hashes here.

File details

Details for the file veska-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: veska-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 97.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for veska-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1ed9f8c44995b8be90d565024f86884893679422afeb82f39fa65b95760c422b
MD5 b9bed8e64f301071787b1b7a6e152a66
BLAKE2b-256 29f766ecdcb78280b6f5f7b1e96ebb1609b2f83e962e884b2a294f0dba02960c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.2

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page