Observed since 20 Oct, 21:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Core framework for multi-agent systems
Lightweight framework for multi-agent systems with optional LangChain support.
A small, extensible package to register, orchestrate and implement agents that process tasks in a coordinated way.
agent-core-framework0.1.6pyproject.toml.Install from PyPI:
pip install agent-core-framework
Install from the repository (editable mode):
git clone https://github.com/msalsas/agent-core-framework.git
cd agent-core-framework
pip install -e .
from agent_core_framework import BaseAgent, AgentResponse, AgentTask, MultiAgentOrchestrator
class MyAgent(BaseAgent):
def __init__(self, name: str):
super().__init__(name)
# declare the task types this agent can handle
self.supported_tasks = ["simple"]
def process(self, task: AgentTask) -> AgentResponse:
# Simple implementation: return success with data and the agent name
return AgentResponse(success=True, data={"result": "ok"}, agent_name=self.name, task_id=task.id)
orchestrator = MultiAgentOrchestrator()
my_agent = MyAgent("my-agent")
orchestrator.register_agent(my_agent)
# Create a task using AgentTask
task = AgentTask(type="simple", payload={"value": 42})
response = orchestrator.process_task(task)
print(response.json())
This example shows the basic idea: implement process in agents, register them into a MultiAgentOrchestrator, and process tasks with process_task.
BaseAgent — Base class to implement agents. Implement process(self, task) and provide name in the constructor.AgentResponse — Standard response structure: success: bool, data: dict, error: Optional[str], agent_name: str.AgentTask — Representation of the task sent to an agent (use AgentTask(type=..., payload=...)).MultiAgentOrchestrator — Orchestrator to register agents (register_agent(agent)) and process tasks (process_task(task)).ServiceRegistry — Central registry for agents/services (if applicable).See the source code under agent_core_framework/ for exact names and signatures.
The project is designed to allow adapters that wrap LLMs or prompt chains. To integrate LangChain:
process method.MultiAgentOrchestrator like any other agent.This makes it easy to combine LLMs with programmatic logic and orchestration across multiple agents.
Dependencies are declared in pyproject.toml. Use your project's chosen tool to install them:
poetry install
poetry run pytest -q
pip install -e . # installs the package; does not install dev deps from pyproject
pip install pytest # install pytest separately
pytest -q
If your workflow uses another tool (pip-tools, pipx, tox, etc.), use the corresponding commands to install dev dependencies before running pytest.
(There are tests in the tests/ folder — run pytest to check them.)
This repository already includes a GitHub Actions workflow at .github/workflows/publish.yml that builds distributions and publishes to PyPI when a git tag matching v*.*.* is pushed (for example v0.1.0). The workflow expects a repository secret named PYPI_API_TOKEN containing a PyPI API token.
Quick notes:
v0.1.0.pypa/gh-action-pypi-publish@release/v1 uploads using username __token__ and the token as the password.pyproject.toml and the action installs build and twine.You mentioned you already created and set the secret with gh secret set PYPI_API_TOKEN --body "...". Good — with that in place you can publish by creating and pushing a tag.
To publish (create tag and push):
git tag v0.1.0
git push origin v0.1.0
After the push the workflow will run and, if successful, upload the package to PyPI and create a GitHub Release.
Local test publish (recommended first on TestPyPI):
python -m pip install --upgrade build twine
python -m build
python -m twine upload --repository testpypi -u __token__ -p "pypi-XXXXXXXXXXXXXXXXXXXX" dist/*
python -m twine upload -u __token__ -p "pypi-XXXXXXXXXXXXXXXXXXXX" dist/*
Notes:
twine, the username must be exactly __token__ and the token value serves as the password.If you prefer not to paste tokens on the command line, set TWINE_PASSWORD or use a .pypirc file with the token (but never commit secrets).
Troubleshooting common issues:
vX.Y.Z format.name in pyproject.toml exactly (agent-core-framework).feature/my-change or fix/my-bug.MIT — see the LICENSE file.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.6 | 28 Nov 2025 | 7 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 21:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7adfdb227c56cf87b2b2a91f29e566102e7474f6cf7213d8758a967f4453a42e