Commit Graph

66 Commits

Author SHA1 Message Date
mudler
672463b860 collect errors
Signed-off-by: mudler <mudler@localai.io>
2025-04-22 15:53:00 +02:00
Ettore Di Giacinto
0698e16768 Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-22 12:09:24 +02:00
mudler
7fcd5b86b9 feat: allow the agent to perform things concurrently
Signed-off-by: mudler <mudler@localai.io>
2025-04-22 12:08:54 +02:00
Ettore Di Giacinto
c4618896cf chore: default to gemma-3-12b-it-qat (#60)
* chore: default to gemma-3-12b-it-qat

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* fix: simplify tests to run faster

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-04-22 11:44:42 +02:00
Richard Palethorpe
b5a12a1da6 feat(ui): Structured observability/status view (#40)
* refactor(ui): Make message status SSE name more specific

Signed-off-by: Richard Palethorpe <io@richiejp.com>

* feat(ui): Add structured observability events

Signed-off-by: Richard Palethorpe <io@richiejp.com>

---------

Signed-off-by: Richard Palethorpe <io@richiejp.com>
2025-04-18 17:32:43 +02:00
Richard Palethorpe
77189b6114 fix(test): Encourage LLM to plan multiple searches (#36)
Signed-off-by: Richard Palethorpe <io@richiejp.com>
2025-04-14 17:35:19 +02:00
mudler
601dba3fc4 chore(tests): try to be more expressive
Signed-off-by: mudler <mudler@localai.io>
2025-04-14 16:08:54 +02:00
mudler
00ab476a77 chore(tests): try to be more extensive in timeouts
Signed-off-by: mudler <mudler@localai.io>
2025-04-14 12:37:31 +02:00
Ettore Di Giacinto
60c249f19a chore: cleanup, identify goal from conversation when evaluting achievement (#29)
* chore: cleanup, identify goal from conversation when evaluting achievement

Signed-off-by: mudler <mudler@localai.io>

* change base cpu model

Signed-off-by: mudler <mudler@localai.io>

* this is not necessary anymore

Signed-off-by: mudler <mudler@localai.io>

* use 12b

Signed-off-by: mudler <mudler@localai.io>

* use openthinker, it's smaller

* chore(tests): set timeout

Signed-off-by: mudler <mudler@localai.io>

* Enable reasoning in some of the tests

Signed-off-by: mudler <mudler@localai.io>

* docker compose unification, small changes

Signed-off-by: mudler <mudler@localai.io>

* Simplify

Signed-off-by: mudler <mudler@localai.io>

* Back at arcee-agent as default

Signed-off-by: mudler <mudler@localai.io>

* Better error handling during planning

Signed-off-by: mudler <mudler@localai.io>

* Ci: do not run jobs for every branch

Signed-off-by: mudler <mudler@localai.io>

---------

Signed-off-by: mudler <mudler@localai.io>
2025-04-12 21:01:01 +02:00
Ettore Di Giacinto
5105b46f48 Add Github reviewer and improve reasoning (#27)
* Add Github reviewer and improve reasoning

* feat: improve action picking

Signed-off-by: mudler <mudler@localai.io>

---------

Signed-off-by: mudler <mudler@localai.io>
2025-04-11 21:57:19 +02:00
Ettore Di Giacinto
dd4fbd64d3 fix(pick_action): improve action pickup by using only the assistant thought process (#25)
* fix(pick_action): improve action pickup by using only the assistant thought process

Signed-off-by: mudler <mudler@localai.io>

* fix: improve templates

Signed-off-by: mudler <mudler@localai.io>

---------

Signed-off-by: mudler <mudler@localai.io>
2025-04-10 21:45:04 +02:00
Ettore Di Giacinto
c2ec333777 Enlarge timeout window 2025-04-09 21:59:18 +02:00
mudler
bc7f6f059c Reply when skipping loops 2025-04-09 19:49:39 +02:00
mudler
0eb68b6c20 feat: add loop detection
Signed-off-by: mudler <mudler@localai.io>
2025-04-09 19:13:41 +02:00
mudler
cb15f926e8 fix(tests): wait for API to be available
Signed-off-by: mudler <mudler@localai.io>
2025-04-09 15:26:53 +02:00
Ettore Di Giacinto
5111738b3b Wait for API to be ready 2025-04-08 22:45:15 +02:00
Ettore Di Giacinto
e7111c6554 Rename 2025-04-08 22:18:32 +02:00
Richard Palethorpe
4c40e47e8d chore(prompts): Rename Prompt blocks to Dynamic prompts 2025-04-01 14:36:33 +01:00
Ettore Di Giacinto
c1dcda42ae fix: re-enable nested plannings (#117)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-30 22:18:15 +02:00
Ettore Di Giacinto
dff678fc4e feat(job): add finalizers and save conversation after job is result is released (#114)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-30 18:43:28 +02:00
Ettore Di Giacinto
c940141e61 fix: make new_conversation to work (#112)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-29 00:21:00 +01:00
Ettore Di Giacinto
906b4ebd76 feat: add retries to pickAction
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-28 22:04:04 +01:00
Ettore Di Giacinto
0644daa477 feat: retrials (#110)
* feat(jobs): rework next actions

Also attempt to retry when failing at generating parameters

Signed-off-by: mudler <mudler@localai.io>

* feat(retries): add retries for common operations

Signed-off-by: mudler <mudler@localai.io>

---------

Signed-off-by: mudler <mudler@localai.io>
2025-03-28 21:27:34 +01:00
mudler
8ac6f68568 fix(multi-agent): do not allow to call ourselves
Signed-off-by: mudler <mudler@localai.io>
2025-03-28 16:51:07 +01:00
Ettore Di Giacinto
08f5417e96 go fmt 2025-03-27 23:06:33 +01:00
Ettore Di Giacinto
f67ebe8c7a Update agent.go 2025-03-27 00:15:52 +01:00
Ettore Di Giacinto
6ace4ab60d Expire jobs if context is canceled 2025-03-27 00:13:26 +01:00
Ettore Di Giacinto
6e888f6008 Move action context to the job
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-26 22:37:25 +01:00
Ettore Di Giacinto
5cd0eaae3f fix: mixed fixups and enhancements (#107)
* chore(Makefile): build react dist if missing

Signed-off-by: mudler <mudler@localai.io>

* fix(planning): don't loose results

Signed-off-by: mudler <mudler@localai.io>

* fix(slack): track user messages when writing on channel

Signed-off-by: mudler <mudler@localai.io>

---------

Signed-off-by: mudler <mudler@localai.io>
2025-03-26 17:05:59 +01:00
Ettore Di Giacinto
fb20bbe5bf Allow slack bots to initiate conversations
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-25 22:58:59 +01:00
mudler
e26b55a6a8 Add tests 2025-03-25 17:58:59 +01:00
mudler
ca3420c791 fixup silly mistake
Signed-off-by: mudler <mudler@localai.io>
2025-03-25 17:25:59 +01:00
mudler
abd6d1bbf7 Do not allow to recursively follow plan actions
Signed-off-by: mudler <mudler@localai.io>
2025-03-25 16:59:13 +01:00
Ettore Di Giacinto
d0cfc4c317 feat: track conversations inside connectors (#92)
* switch to observer pattern

Signed-off-by: mudler <mudler@localai.io>

* keep conversation history in telegram and slack

* generalize with conversation tracker

---------

Signed-off-by: mudler <mudler@localai.io>
2025-03-25 16:31:03 +01:00
Ettore Di Giacinto
53c1554d55 fix: do not track an internal currentConversation (#91)
It is prone to races, and does not really track all conversations for
each job

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-25 00:36:09 +01:00
mudler
75a8d63e83 Finish moving types 2025-03-23 21:57:09 +01:00
Ettore Di Giacinto
c1ac7b675a feat(api): add endpoint to create group of dedicated agents (#79)
Signed-off-by: mudler <mudler@localai.io>
2025-03-22 18:44:22 +01:00
Ettore Di Giacinto
abb3ffc109 feat: track plan action when is being executed, also tests (#72)
* feat: track plan action when is being executed, also tests

* Update core/agent/agent_test.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update core/agent/actions.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-21 16:32:24 +01:00
Ettore Di Giacinto
e5e238efc0 fix(planning): correctly generate a valid JSON schema (#71)
Signed-off-by: mudler <mudler@localai.io>
2025-03-21 15:47:34 +01:00
Ettore Di Giacinto
33483ab4b9 feat(planning): enable agent planning (#68)
* feat(planning): Allow the agent to plan subtasks

Signed-off-by: mudler <mudler@localai.io>

* feat(planning): enable planning toggle in the webui

Signed-off-by: mudler <mudler@localai.io>

* feat(planning): take in consideration the overall goal

Signed-off-by: mudler <mudler@localai.io>

* Update core/action/plan.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: mudler <mudler@localai.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-21 12:28:11 +01:00
Ettore Di Giacinto
638eedc2a0 fix: correctly stop agents
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-20 22:46:54 +01:00
Ettore Di Giacinto
86d3596f41 Add more logging 2025-03-20 22:35:55 +01:00
Ettore Di Giacinto
e32a569796 try to fixup tests, enable e2e (#53)
* try to fixup tests, enable e2e

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Generate JSON character data with tools

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Rework generation of character

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Simplify text

Signed-off-by: mudler <mudler@localai.io>

* Relax some test constraints

Signed-off-by: mudler <mudler@localai.io>

* Fixups

* Properly fit schema generation

* Swap default model

* ci fixups

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Signed-off-by: mudler <mudler@localai.io>
2025-03-18 23:28:02 +01:00
Ettore Di Giacinto
33b5b8c8f4 feat(agent): add MCP integration (#50)
* feat(agent): add MCP integration

Signed-off-by: mudler <mudler@localai.io>

* Update core/agent/mcp.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Hook MCP Server configuration to creation and setting mask

* Allow to specify a bearer token

* Small fixups

---------

Signed-off-by: mudler <mudler@localai.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-15 23:25:03 +01:00
mudler
0b71d8dc10 feat: make slack process images 2025-03-09 23:34:49 +01:00
mudler
bc60dde94f Enable more logging, only describe image once when walking history
Signed-off-by: mudler <mudler@localai.io>
2025-03-09 23:34:20 +01:00
mudler
3827ebebdf feat: add capability to understand images
Signed-off-by: mudler <mudler@localai.io>
2025-03-08 17:54:35 +01:00
Ettore Di Giacinto
7492a3ab3b Change env vars to be more meaningful 2025-03-05 22:19:07 +01:00
Ettore Di Giacinto
d288755444 Automatically save all conversations 2025-03-04 22:22:16 +01:00
Ettore Di Giacinto
d714c4f80b Page restyling 2025-03-03 23:08:58 +01:00