{"id":28996410,"url":"https://github.com/gamemaker1/fcan","last_synced_at":"2025-06-25T05:09:25.561Z","repository":{"id":295295722,"uuid":"989729045","full_name":"gamemaker1/fcan","owner":"gamemaker1","description":"A framework that empowers Ollama LLM agents in A2A networks with function calling.","archived":false,"fork":false,"pushed_at":"2025-05-28T16:14:50.000Z","size":37,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T03:06:07.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gamemaker1.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-24T17:48:15.000Z","updated_at":"2025-05-28T16:14:53.000Z","dependencies_parsed_at":"2025-05-24T18:49:43.836Z","dependency_job_id":null,"html_url":"https://github.com/gamemaker1/fcan","commit_stats":null,"previous_names":["gamemaker1/fcan"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gamemaker1/fcan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamemaker1%2Ffcan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamemaker1%2Ffcan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamemaker1%2Ffcan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamemaker1%2Ffcan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gamemaker1","download_url":"https://codeload.github.com/gamemaker1/fcan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamemaker1%2Ffcan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261808073,"owners_count":23212694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-25T05:09:23.942Z","updated_at":"2025-06-25T05:09:25.551Z","avatar_url":"https://github.com/gamemaker1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Function Calling A2A Network\n\n\u003e A framework that empowers Ollama LLM agents in A2A networks with function calling.\n\n## Overview\n\nIn its current state, this project is a prototype that tries to make the most\nof function calling in A2A agents. It implements the A2A protocol (minus stuff\nlike streaming responses and input/output negotiation), and sets up LLM agents\nwith system prompts that enable function calling.\n\nCurrently, the prompts for the LLM agents have been written and tested with\nGemma 3 models (4B and 27B) running offline with [`ollama`](https://github.com/ollama/ollama)\nto talk to the LLMs, it should be easy to add support for other models in the\nfuture.\n\nThe next steps for this project involve adding an orchestration agent, which\ndiscovers and delegates tasks to the correct agents based on their skills as\nadvertised in their agent cards. This agent may be an `A2AServer` itself, and\nthe delegation of tasks may be done via function calls.\n\n## Getting Started\n\nTo get started with this, clone the repository:\n\n```bash\ngit clone https://github.com/gamemaker1/fcan\n```\n\nThe project uses [`mise`](https://github.com/jdx/mise) for tools and\n[`uv`](https://github.com/astral-sh/uv) for package management. If you do not\nhave `mise` installed, make sure you have the tools in [`mise.toml`](mise.toml)\ninstalled on your system.\n\nMake sure you also have [`ollama`](https://github.com/ollama/ollama) up and\nrunning on your machine, with the `gemma3` model downloaded.\n\n## Examples\n\n\u003e The instructions for running the examples are given in the respective readmes.\n\nThe [`multi-turn`](examples/multi-turn) example demonstrates how a multi-turn\nconversation with an agent takes place via the A2A protocol, with the agent\nmaking use of the functions provided to it and requesting input from the user\nwhen it is not provided.\n\nThe [`multi-agent`](examples/multi-agent) example demonstrates how to setup\nand run multiple agents on different ports. It is incomplete, since it needs\nan orchestration agent to tie it all together.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgamemaker1%2Ffcan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgamemaker1%2Ffcan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgamemaker1%2Ffcan/lists"}