Richard Palethorpe
77680c6fee
feat(ui): Add summary details of each observable
...
Signed-off-by: Richard Palethorpe <io@richiejp.com >
2025-04-26 11:00:11 +01:00
Ettore Di Giacinto
eb8663ada1
feat: local MCP server support ( #61 )
...
* wip
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Signed-off-by: mudler <mudler@localai.io >
* Add groups to mcpbox
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Signed-off-by: mudler <mudler@localai.io >
* Add mcpbox dockerfile and entrypoint
Signed-off-by: mudler <mudler@localai.io >
* Attach mcp stdio box to agent
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Signed-off-by: mudler <mudler@localai.io >
* Add to dockerfile
Signed-off-by: mudler <mudler@localai.io >
* Attach to config
Signed-off-by: mudler <mudler@localai.io >
* Attach to ui
Signed-off-by: mudler <mudler@localai.io >
* Revert "Attach to ui"
This reverts commit 088d0c47e87ee8f84297e47d178fb7384bbe6d45.
Signed-off-by: mudler <mudler@localai.io >
* add one-time process, attach to UI the mcp server json configuration
Signed-off-by: mudler <mudler@localai.io >
* quality of life improvements
Signed-off-by: mudler <mudler@localai.io >
* fixes
Signed-off-by: mudler <mudler@localai.io >
* Make it working, expose MCP prepare script to UI
Signed-off-by: mudler <mudler@localai.io >
* Add container image to CI builds
* Wire mcpbox to tests
* Improve setup'
* Not needed anymore, using tests
Signed-off-by: mudler <mudler@localai.io >
* fix: do not override actions
Signed-off-by: mudler <mudler@localai.io >
* chore(tests): fix env var
Signed-off-by: mudler <mudler@localai.io >
---------
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Signed-off-by: mudler <mudler@localai.io >
2025-04-24 16:39:20 +02:00
Richard Palethorpe
ce997d2425
fix: Handle state on agent restart and update observables ( #75 )
...
Keep some agent start across restarts, such as the SSE manager and
observer. This allows restarts to be shown on the state page and also
allows avatars to be kept when reconfiguring the agent.
Also observable updates can happen out of order because SSE manager has
multiple workers. For now handle this in the client.
Finally fix an issue with the IRC client to make it disconnect and
handle being assigned a different nickname by the server.
Signed-off-by: Richard Palethorpe <io@richiejp.com >
2025-04-23 15:29:06 +02:00
Ettore Di Giacinto
56cd0e05ca
chore: better defaults for parallel jobs ( #76 )
...
* chore: better defaults for parallel jobs
Signed-off-by: mudler <mudler@localai.io >
* chore(tests): add timeout
---------
Signed-off-by: mudler <mudler@localai.io >
2025-04-23 00:12:44 +02:00
Ettore Di Giacinto
25bb3fb123
feat: allow the agent to perform things concurrently ( #74 )
...
* feat: allow the agent to perform things concurrently
Signed-off-by: mudler <mudler@localai.io >
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* collect errors
Signed-off-by: mudler <mudler@localai.io >
---------
Signed-off-by: mudler <mudler@localai.io >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-04-22 16:49:28 +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