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, pause_turn, refusal), OpenAI Chat Completions' finish_reason (stop, length, content_filter), OpenAI Responses' status (failed, cancelled, incomplete), 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.2.tar.gz (86.8 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.2-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: coreouto-0.6.2.tar.gz
  • Upload date:
  • Size: 86.8 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.2.tar.gz
Algorithm Hash digest
SHA256 a815a72e3772520c48f6ce9919f4be184c9b6066d8b7b713e97d325d31f6f964
MD5 97de0c8e06c47474bba4096571f27386
BLAKE2b-256 5d2e142cbb74cfb21b67d5a23310302178da6bd5279012e432c9405d1b928d68

See more details on using hashes here.

Provenance

The following attestation bundles were made for coreouto-0.6.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: coreouto-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 33.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 68b74907761c0887cd9426f5a5a6e4de832c0d27d7599955426decdb98b745be
MD5 4ee87d076928d370f2e6d28ab20f219b
BLAKE2b-256 675cd06fbb4ba2d6d97d627b8af18f267816b237cca9c981b5369b6792d1f7b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for coreouto-0.6.2-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