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 model calls the finish tool — the content argument of the finish call becomes the final answer. If the model's turn ends without a finish call (the model "thinks it's done" but didn't say so explicitly), the loop injects a confirmation user message and re-prompts; the model's next turn either calls finish (terminate) or calls more tools (continue). Unrecoverable provider terminations (token cap, refusal, content filter, server-side failure) still end the loop without finish. 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:
- Philosophy — the five principles
- Quickstart
- Agent
- Providers
- Tools
- Presets
- Hooks
- Multi-agent
- System prompts — the default prompt and how to write your own
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file coreouto-0.7.2.tar.gz.
File metadata
- Download URL: coreouto-0.7.2.tar.gz
- Upload date:
- Size: 95.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
370b88685594c1faff7af811781db777d30ae7280e874985d505ba3954bcc0fd
|
|
| MD5 |
4eb6ce0bb45a80965723f036d9f3a9d2
|
|
| BLAKE2b-256 |
b7ed0a60e4ec3d970545ed3994f4c89ede03307fb12202c8d2399d9464f0ed88
|
Provenance
The following attestation bundles were made for coreouto-0.7.2.tar.gz:
Publisher:
publish.yml on llaa33219/coreouto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
coreouto-0.7.2.tar.gz -
Subject digest:
370b88685594c1faff7af811781db777d30ae7280e874985d505ba3954bcc0fd - Sigstore transparency entry: 1869801047
- Sigstore integration time:
-
Permalink:
llaa33219/coreouto@51d06ddd9e657a10c07bd1656ae198b40d4e57ac -
Branch / Tag:
refs/tags/v0.7.2 - Owner: https://github.com/llaa33219
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@51d06ddd9e657a10c07bd1656ae198b40d4e57ac -
Trigger Event:
push
-
Statement type:
File details
Details for the file coreouto-0.7.2-py3-none-any.whl.
File metadata
- Download URL: coreouto-0.7.2-py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ce138444e901b87d1e5bc92f859a345d315f3d817b968eae4fe88b31f715943
|
|
| MD5 |
65557fc36c8264588295c7351cd0a400
|
|
| BLAKE2b-256 |
c32e0e243782bcb16e3059d6bcb7a446c8db9079f915f8a5e56dcb783136ff8e
|
Provenance
The following attestation bundles were made for coreouto-0.7.2-py3-none-any.whl:
Publisher:
publish.yml on llaa33219/coreouto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
coreouto-0.7.2-py3-none-any.whl -
Subject digest:
5ce138444e901b87d1e5bc92f859a345d315f3d817b968eae4fe88b31f715943 - Sigstore transparency entry: 1869801127
- Sigstore integration time:
-
Permalink:
llaa33219/coreouto@51d06ddd9e657a10c07bd1656ae198b40d4e57ac -
Branch / Tag:
refs/tags/v0.7.2 - Owner: https://github.com/llaa33219
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@51d06ddd9e657a10c07bd1656ae198b40d4e57ac -
Trigger Event:
push
-
Statement type: