Skip to main content

coreouto

coreouto

A minimal, extensible agent library for Python.

Built on five philosophies: minimalism, extensibility, explicitness, fragmentation, conciseness.

The whole library reduces to one idea: an agent is called with a message, runs an internal loop, and returns its response when the provider's end-of-turn signal classifies as END — the text of that turn becomes the final answer. The exact field and value depend on the provider: Anthropic's stop_reason (end_turn, max_tokens, stop_sequence, refusal), OpenAI Chat Completions' finish_reason (stop, length, content_filter), OpenAI Responses' status (failed, cancelled, incomplete:content_filter), Google Gemini's finishReason (MAX_TOKENS, SAFETY, ...). To output text without ending the loop (e.g. share progress before calling more tools), the model calls the continue_loop tool. Everything else — providers, tools, presets, hooks, multi-agent — is an opt-in extension.

import os

import coreouto as co
from coreouto.providers.openai import OpenAIProvider

@co.register_tool("search")
def search(query: str) -> str:
    """Search the web for `query`."""
    return f"<results for {query}>"

co.register_provider("minimax", OpenAIProvider(
    api_key=os.environ["MINIMAX_API_KEY"],
    base_url="https://api.minimax.io/v1",
))

preset = co.register_agent_preset(
    "researcher", model="MiniMax-M3", provider="minimax",
    system_prompt="You are a research assistant.",
    tools=["search"],
)
response = co.Agent(preset.to_config()).call_sync("Find me recent news about fusion energy.")
print(response.content)

Install

pip install coreouto
# with providers
pip install coreouto[openai]
pip install coreouto[anthropic]
pip install coreouto[google]
pip install coreouto[all]

Documentation

See docs/ for the full documentation set:

License

Apache 2.0 — see LICENSE.

Download files

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

Source Distribution

coreouto-0.6.3.tar.gz (89.4 kB view details)

Uploaded Source

Built Distribution

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

coreouto-0.6.3-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file coreouto-0.6.3.tar.gz.

File metadata

  • Download URL: coreouto-0.6.3.tar.gz
  • Upload date:
  • Size: 89.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coreouto-0.6.3.tar.gz
Algorithm Hash digest
SHA256 c27f9233deee300c3609de9dd5f49cf4c51d3649b4d2895f7c9c17cd9b2731ac
MD5 aa247d80b59d980d8092286eb5a69982
BLAKE2b-256 dd244443a737cecc06ea2fe7ff86ee206fa7d387d3ab04d97480ffcf32bce058

See more details on using hashes here.

Provenance

The following attestation bundles were made for coreouto-0.6.3.tar.gz:

Publisher: publish.yml on llaa33219/coreouto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coreouto-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: coreouto-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 33.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coreouto-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5ec5a2138aba75de6b0089b3c7a6fb6fab88da648c2a1cdd86793429bda3450c
MD5 b151a043c2f520d71d1dee7f69d42be8
BLAKE2b-256 b064bd954bad625b4bacd9a716161a42f69b0cc0f251f7c04ea4cc7f1f7f4536

See more details on using hashes here.

Provenance

The following attestation bundles were made for coreouto-0.6.3-py3-none-any.whl:

Publisher: publish.yml on llaa33219/coreouto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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