rails-agent-stack 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/workflows/README.md +16 -0
- data/.github/workflows/ci.yml +32 -0
- data/.gitignore +8 -0
- data/.rspec +3 -0
- data/AGENTS.md +18 -0
- data/CHANGELOG.md +40 -0
- data/Gemfile +15 -0
- data/MIT-LICENSE +21 -0
- data/README.md +228 -0
- data/Rakefile +8 -0
- data/app/assets/images/rails_agents/kip-logo.png +0 -0
- data/app/assets/images/rails_agents/kip-waving.png +0 -0
- data/app/assets/stylesheets/rails_agents/application.css +411 -0
- data/app/controllers/rails_agents/application_controller.rb +25 -0
- data/app/controllers/rails_agents/connect_controller.rb +36 -0
- data/app/controllers/rails_agents/dashboard_controller.rb +70 -0
- data/app/controllers/rails_agents/handshake_controller.rb +55 -0
- data/app/controllers/rails_agents/open_wire_inbound_controller.rb +153 -0
- data/app/controllers/rails_agents/pulls_controller.rb +42 -0
- data/app/controllers/rails_agents/registrations_controller.rb +96 -0
- data/app/controllers/rails_agents/schema_controller.rb +123 -0
- data/app/controllers/rails_agents/sessions_controller.rb +76 -0
- data/app/controllers/rails_agents/tool_bridge_controller.rb +67 -0
- data/app/views/layouts/rails_agents/application.html.erb +18 -0
- data/app/views/rails_agents/dashboard/show.html.erb +139 -0
- data/app/views/rails_agents/registrations/new.html.erb +83 -0
- data/app/views/rails_agents/sessions/new.html.erb +73 -0
- data/app/views/rails_agents/shared/_auth_brand.html.erb +20 -0
- data/config/routes.rb +34 -0
- data/docs/AGENTS.md +220 -0
- data/docs/PRD.md +89 -0
- data/docs/assets/hero-banner.png +0 -0
- data/examples/support/agent.rb +14 -0
- data/examples/support/channels/.keep +0 -0
- data/examples/support/evals/smoke.yml +4 -0
- data/examples/support/knowledge/shipping.md +1 -0
- data/examples/support/memory.rb +3 -0
- data/examples/support/prompt.md +9 -0
- data/examples/support/skills/.keep +0 -0
- data/examples/support/tools/.keep +0 -0
- data/exe/rails-agents +6 -0
- data/lib/generators/rails_agents/agent/agent_generator.rb +80 -0
- data/lib/generators/rails_agents/agent/templates/agent.rb.tt +14 -0
- data/lib/generators/rails_agents/agent/templates/agent_database.rb.tt +42 -0
- data/lib/generators/rails_agents/agent/templates/channels/slack.rb.tt +8 -0
- data/lib/generators/rails_agents/agent/templates/evals/smoke.yml.tt +4 -0
- data/lib/generators/rails_agents/agent/templates/imports.yml.tt +9 -0
- data/lib/generators/rails_agents/agent/templates/memory.rb.tt +6 -0
- data/lib/generators/rails_agents/agent/templates/prompt.md.tt +10 -0
- data/lib/generators/rails_agents/agent/templates/prompt_database.md.tt +14 -0
- data/lib/generators/rails_agents/install/INSTALL +10 -0
- data/lib/generators/rails_agents/install/install_generator.rb +72 -0
- data/lib/generators/rails_agents/install/templates/AGENTS.md.tt +46 -0
- data/lib/generators/rails_agents/install/templates/initializer.rb.tt +8 -0
- data/lib/generators/rails_agents/install/templates/library_README.md.tt +28 -0
- data/lib/generators/rails_agents/install/templates/library_manifest.yml.tt +5 -0
- data/lib/generators/rails_agents/install/templates/rails_agents_autoload.rb.tt +10 -0
- data/lib/rails-agent-stack.rb +4 -0
- data/lib/rails_agents/background_agent.rb +15 -0
- data/lib/rails_agents/base.rb +294 -0
- data/lib/rails_agents/chat_agent.rb +15 -0
- data/lib/rails_agents/cli.rb +245 -0
- data/lib/rails_agents/client.rb +216 -0
- data/lib/rails_agents/configuration.rb +41 -0
- data/lib/rails_agents/creation_agent.rb +10 -0
- data/lib/rails_agents/credentials_writer.rb +38 -0
- data/lib/rails_agents/engine.rb +19 -0
- data/lib/rails_agents/knowledge_agent.rb +10 -0
- data/lib/rails_agents/library_imports.rb +163 -0
- data/lib/rails_agents/local_auth.rb +56 -0
- data/lib/rails_agents/local_sync.rb +113 -0
- data/lib/rails_agents/monitoring_agent.rb +10 -0
- data/lib/rails_agents/open_wire_adapter.rb +31 -0
- data/lib/rails_agents/operations_agent.rb +10 -0
- data/lib/rails_agents/railtie.rb +14 -0
- data/lib/rails_agents/tasks.rake +8 -0
- data/lib/rails_agents/version.rb +5 -0
- data/lib/rails_agents/workflow_agent.rb +11 -0
- data/lib/rails_agents.rb +57 -0
- data/rails-agent-stack.gemspec +49 -0
- data/rails-agents.code-workspace +25 -0
- data/spec/generators/agent_generator_spec.rb +36 -0
- data/spec/rails_agents/base_spec.rb +202 -0
- data/spec/rails_agents/client_spec.rb +121 -0
- data/spec/rails_agents/configuration_spec.rb +55 -0
- data/spec/rails_agents/library_imports_spec.rb +80 -0
- data/spec/rails_agents/local_sync_spec.rb +63 -0
- data/spec/rails_agents/taxonomy_spec.rb +52 -0
- data/spec/spec_helper.rb +27 -0
- metadata +229 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 83dde44cc5a68ee22c237736bd5992f64baf5b474e1ef7e3615244277988060f
|
|
4
|
+
data.tar.gz: 407a7cc7dc2fdde847babc4e948f38f7028d8121bb3142a9804058c366fcb58d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 520d19cb9bee5584270474f80b77518b99f81f4cec77c8d03603716dae2ef988007cf5b5474fb0150369aba473f6a00cfd1301259238fb8e267412bad36ff8e4
|
|
7
|
+
data.tar.gz: ccfacfe644d0facb1b2730b90c5877cecdde11c06b5d471a6ae5aa7d24cf48464a0aacae36e5ea5d362df8b1051e95702048d0a8bf42e2ed83c253968d833d71
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# GitHub Actions
|
|
2
|
+
|
|
3
|
+
| Workflow | Trigger | Purpose |
|
|
4
|
+
|----------|---------|---------|
|
|
5
|
+
| `ci.yml` | push/PR to `main` | RSpec + gem build |
|
|
6
|
+
|
|
7
|
+
This repo is the **Ruby gem** (`rails-agent-stack`). It has **no Hetzner deploy** — customers install from GitHub:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem "rails-agent-stack", github: "Tiny-Bubble-Company/rails-agents"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Production sites deploy from sibling repos:
|
|
14
|
+
|
|
15
|
+
- [`rails-agents-cloud`](https://github.com/Tiny-Bubble-Company/rails-agents-cloud) → rails-agent.com
|
|
16
|
+
- [`rails-agents-ops`](https://github.com/Tiny-Bubble-Company/rails-agents-ops) → ops.rails-agent.com
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
# Gem repo — no Hetzner deploy. Cloud/ops deploy from their own Actions on push to main.
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ci-rails-agents-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
name: Build gem
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Set up Ruby
|
|
26
|
+
uses: ruby/setup-ruby@v1
|
|
27
|
+
with:
|
|
28
|
+
ruby-version: "3.3"
|
|
29
|
+
bundler-cache: true
|
|
30
|
+
|
|
31
|
+
- name: Build gem
|
|
32
|
+
run: gem build rails-agent-stack.gemspec
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/AGENTS.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
**Start here** when using Cursor, Claude Code, or another external coding agent with Rails Agent.
|
|
4
|
+
|
|
5
|
+
Full onboarding guide: **[docs/AGENTS.md](docs/AGENTS.md)**
|
|
6
|
+
|
|
7
|
+
Quick start:
|
|
8
|
+
|
|
9
|
+
1. `bin/rails generate rails_agents:install` → open `/agents` and connect workspace
|
|
10
|
+
2. `bin/rails generate rails_agents:agent my_agent --type knowledge --database`
|
|
11
|
+
3. Attach BYOK credentials in cloud dashboard; reference as `credential: :company_openai` in `agent.rb`
|
|
12
|
+
4. `bundle exec rails-agents sync my_agent` → test/deploy/monitor in `/agents`
|
|
13
|
+
|
|
14
|
+
Four taxonomy types: **Knowledge**, **Workflow**, **Operations**, **Monitoring**.
|
|
15
|
+
|
|
16
|
+
Capabilities: **Tools**, **Skills**, **Packages** (Skills.sh / APM / Smithery), **Connectors**, **Knowledge**, plus workspace **Library** reuse.
|
|
17
|
+
|
|
18
|
+
Run responses: prefer `result.output_text` (Markdown) and optional `result.output_data` — see [docs/AGENTS.md](docs/AGENTS.md#run-response-schema-integrate-into-product) and https://rails-agent.com/docs/run-response.
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `rails-agent-stack` will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.2.0] - Unreleased
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Documentation-first onboarding (AGENTS.md); removed Kip / chat-authoring positioning.
|
|
10
|
+
- Four product-facing agent taxonomy types: Knowledge, Workflow, Operations, Monitoring.
|
|
11
|
+
- BYOK model DSL: `model :name, provider:, credential:` with cloud credential references.
|
|
12
|
+
- Generator `--type` and `--database` for database-connected Knowledge agents.
|
|
13
|
+
- Company subscription + pass-through usage + 1% service fee pricing model.
|
|
14
|
+
- Deprecated cloud pull bridge in embed UI; `rails-agents pull` retained for compatibility.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `KnowledgeAgent`, `OperationsAgent`, and `MonitoringAgent` classes; the legacy output-focused class remains loadable for compatibility.
|
|
19
|
+
- `docs/AGENTS.md` canonical guide for external coding agents.
|
|
20
|
+
|
|
21
|
+
## [0.1.1] - 2026-08-02
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Depend on published `open-wire` (`~> 0.1`) from RubyGems instead of a local path.
|
|
26
|
+
- Re-release after yanked `0.1.0` on RubyGems.
|
|
27
|
+
|
|
28
|
+
## [0.1.0] - 2026-07-18
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Initial release of the `rails-agent-stack` gem.
|
|
33
|
+
- Mountable Rails Engine at `/agents` with cloud dashboard proxy UI.
|
|
34
|
+
- `RailsAgents::Base` DSL — model, memory, knowledge, tools, skills, channels.
|
|
35
|
+
- Cloud HTTP client (`Net::HTTP`) for runs, deploys, channels, knowledge sync, logs, traces, evals.
|
|
36
|
+
- Thor CLI (`rails-agents`) — install, new, run, deploy, logs, traces, evals.
|
|
37
|
+
- Generators — `rails_agents:install`, `rails_agents:agent`.
|
|
38
|
+
- Configuration block with ENV defaults.
|
|
39
|
+
- Example support agent under `examples/support/`.
|
|
40
|
+
- RSpec coverage for Base, Client, and Configuration.
|
data/Gemfile
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gemspec
|
|
6
|
+
|
|
7
|
+
# open-wire comes from RubyGems via the gemspec (`~> 0.1`).
|
|
8
|
+
# Override locally with: OPEN_WIRE_GEM_PATH=/path/to/open-wire/ruby bundle install
|
|
9
|
+
if (path = ENV["OPEN_WIRE_GEM_PATH"]) && !path.empty? && File.directory?(path)
|
|
10
|
+
gem "open-wire", path: path
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
gem "rake", "~> 13.0"
|
|
14
|
+
gem "rspec", "~> 3.13"
|
|
15
|
+
gem "webmock", "~> 3.23"
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rails Agent
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://rails-agent.com">
|
|
3
|
+
<img src="https://rails-agent.com/og-image.jpg" alt="Rails Agent — fullstack AI agents for Ruby on Rails" width="720" />
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<h1 align="center">Rails Agent</h1>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<strong>The most advanced agentic platform for Ruby on Rails.</strong><br />
|
|
11
|
+
Build Rails AI agents in your repo. Test, deploy, and monitor at <code>/agents</code>.
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://rails-agent.com"><img src="https://img.shields.io/badge/rails--agent.com-docs-C2410C?style=flat-square" alt="Docs" /></a>
|
|
16
|
+
<a href="https://github.com/Tiny-Bubble-Company/rails-agents"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT" /></a>
|
|
17
|
+
<a href="https://rails-agent.com/docs/getting-started"><img src="https://img.shields.io/badge/Ruby-3.2%2B-CC342D?style=flat-square&logo=ruby&logoColor=white" alt="Ruby 3.2+" /></a>
|
|
18
|
+
<a href="https://rails-agent.com/docs/getting-started"><img src="https://img.shields.io/badge/Rails-7%2B-D30001?style=flat-square&logo=rubyonrails&logoColor=white" alt="Rails 7+" /></a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="docs/AGENTS.md"><strong>AGENTS.md</strong></a>
|
|
23
|
+
·
|
|
24
|
+
<a href="https://rails-agent.com/docs/getting-started">Getting started</a>
|
|
25
|
+
·
|
|
26
|
+
<a href="https://rails-agent.com/docs/coding-agents">Coding agents</a>
|
|
27
|
+
·
|
|
28
|
+
<a href="https://cloud.rails-agent.com">Cloud</a>
|
|
29
|
+
</p>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## About
|
|
34
|
+
|
|
35
|
+
[Rails Agent](https://rails-agent.com) is the fullstack **Rails agent framework** for production **Ruby on Rails agents**. Define instructions, tools, skills, packages, knowledge, channels, memory, and evals as files in your app — then use the mounted `/agents` dashboard to connect BYOK credentials, attach guardrails, ship channels, and observe cost.
|
|
36
|
+
|
|
37
|
+
If you are searching for a **Rails AI agents** stack, an **ActiveAgent alternative**, or a **RubyLLM alternative**, Rails Agent is built for the full lifecycle: author in Git, run in the cloud, integrate responses into your product.
|
|
38
|
+
|
|
39
|
+
**Website:** [rails-agent.com](https://rails-agent.com)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Why Rails Agent (vs RubyLLM & ActiveAgent)
|
|
44
|
+
|
|
45
|
+
Rails Agent is a better alternative to library-only LLM wrappers when you need agents that ship with your Rails app — not just chat completions.
|
|
46
|
+
|
|
47
|
+
| | **Rails Agent** | RubyLLM | ActiveAgent |
|
|
48
|
+
|--|-----------------|---------|-------------|
|
|
49
|
+
| **Scope** | Fullstack agentic platform (build → deploy → monitor) | LLM client / chat helpers | Agent abstractions in Rails |
|
|
50
|
+
| **Source of truth** | `app/agents/` directories in your repo | Application code calling the gem | Ruby classes / generators |
|
|
51
|
+
| **Dashboard** | Mounted `/agents` (test, deploy, traces, cost) | — | Limited / app-owned |
|
|
52
|
+
| **BYOK credentials** | Cloud-managed references (`credential: :company_openai`) | Env / config in app | App-managed |
|
|
53
|
+
| **Build surface** | Instructions, tools, connectors, channels, skills, packages, knowledge, memory, guardrails | Prompts + API calls | Tools / prompts (varies) |
|
|
54
|
+
| **Playbooks & Library** | Workspace reuse + proven scaffolds | — | — |
|
|
55
|
+
| **Channels** | Open-Wire Slack / Teams, web, cron, API | — | App-wired |
|
|
56
|
+
| **Ops** | Budget, guardrails, evals, Monitor | Caller responsibility | Caller responsibility |
|
|
57
|
+
| **Best for** | Production **Rails AI agents** end-to-end | Thin LLM access | Lightweight agent objects |
|
|
58
|
+
|
|
59
|
+
Positioning in one line: **most advanced agentic platform for Ruby on Rails** — git-native agents with cloud runtime, integrations, and production controls.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Features
|
|
64
|
+
|
|
65
|
+
### Build (agent tabs)
|
|
66
|
+
|
|
67
|
+
| Capability | What you get |
|
|
68
|
+
|------------|----------------|
|
|
69
|
+
| **Instructions** | `prompt.md` system prompt — reviewed in Git |
|
|
70
|
+
| **Tools** | Ruby methods over your ActiveRecord models |
|
|
71
|
+
| **Connectors** | OAuth SaaS (Sheets, Notion, HubSpot, …) from the dashboard |
|
|
72
|
+
| **Channels** | Slack & Microsoft Teams via **Open-Wire**, web chat, cron, API |
|
|
73
|
+
| **Skills** | Composable multi-step behaviors |
|
|
74
|
+
| **Packages** | Install from Skills.sh / Microsoft APM / Smithery |
|
|
75
|
+
| **Knowledge** | Docs + database grounding for RAG-style answers |
|
|
76
|
+
| **Memory** | Conversation memory (Mem0-backed), on by default |
|
|
77
|
+
| **Guardrails** | Budget, model access, prompt injection, sensitive info |
|
|
78
|
+
|
|
79
|
+
### Platform
|
|
80
|
+
|
|
81
|
+
- **Playbooks** — proven scaffolds (instructions + tools + skills) you customize locally
|
|
82
|
+
- **Library** — share tools, skills, packages, knowledge, and connectors across agents (`app/agents_library/` + `imports.yml`)
|
|
83
|
+
- **Budget** — per-agent / policy spend limits alongside usage monitoring
|
|
84
|
+
- **Monitor** — runs, traces, evals, and cost in `/agents`
|
|
85
|
+
- **BYOK** — attach OpenAI, Anthropic, and other provider keys in cloud; reference them in Ruby with no secrets in Git
|
|
86
|
+
- **Open-Wire** — Slack and Teams channel transport over `open-wire/1`
|
|
87
|
+
- **Composio email** — email connectors for inbox workflows
|
|
88
|
+
- **Evals** — golden cases under `evals/` before deploy
|
|
89
|
+
- **Deploy** — `rails-agents sync` → `deploy` → production traffic
|
|
90
|
+
- **Coding-agent docs** — Cursor, Codex, and Claude Code follow [AGENTS.md](docs/AGENTS.md) and [Coding agents](https://rails-agent.com/docs/coding-agents)
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Install
|
|
95
|
+
|
|
96
|
+
```ruby
|
|
97
|
+
# Gemfile
|
|
98
|
+
gem "rails-agent-stack", github: "Tiny-Bubble-Company/rails-agents"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
bundle install
|
|
103
|
+
bin/rails generate rails_agents:install
|
|
104
|
+
bin/dev # → http://localhost:3000/agents
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Connect your company workspace at `/agents`, then scaffold a database Knowledge agent:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
bin/rails generate rails_agents:agent store_assistant --type knowledge --database
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Zeitwerk:** fresh installs add `config/initializers/rails_agents_autoload.rb` so `app/agents/` and `app/agents_library/` are agent assets, not application namespaces.
|
|
114
|
+
|
|
115
|
+
External coding agents (Cursor, Claude Code, Codex): start with **[docs/AGENTS.md](docs/AGENTS.md)**.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Quick start
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
bundle exec rails-agents run store_assistant "Where is order ORD-DEMO-1001?"
|
|
123
|
+
bundle exec rails-agents sync store_assistant
|
|
124
|
+
bundle exec rails-agents deploy store_assistant
|
|
125
|
+
bundle exec rails-agents logs store_assistant
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```ruby
|
|
129
|
+
class StoreAssistant < RailsAgents::KnowledgeAgent
|
|
130
|
+
model :gpt_5_mini, provider: :openai, credential: :company_openai
|
|
131
|
+
memory :conversation, provider: :mem0, recall: 5
|
|
132
|
+
knowledge_from "knowledge/**/*"
|
|
133
|
+
|
|
134
|
+
tool :lookup_order do |order_number:|
|
|
135
|
+
Order.find_by(number: order_number)&.as_json(only: %i[number status total_cents])
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`:company_openai` is a **cloud credential reference** — not a local env var. Enable managed memory from **Build → Memory**. Pass a stable `session_id` to `.run` so recall stays scoped per product user.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Agent directory
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
app/agents/store_assistant/
|
|
148
|
+
├── agent.rb # RailsAgents::KnowledgeAgent subclass
|
|
149
|
+
├── prompt.md # System prompt
|
|
150
|
+
├── imports.yml # Optional workspace Library attachments
|
|
151
|
+
├── tools/ # Optional extracted tools
|
|
152
|
+
├── skills/ # Composable behaviors
|
|
153
|
+
├── packages/ # Registry-installed capabilities
|
|
154
|
+
├── memory.rb # Memory config
|
|
155
|
+
├── knowledge/ # RAG files
|
|
156
|
+
├── connectors/ # External connection manifests
|
|
157
|
+
├── channels/ # Slack, Teams, web, API, …
|
|
158
|
+
└── evals/ # Smoke / regression cases
|
|
159
|
+
|
|
160
|
+
app/agents_library/
|
|
161
|
+
├── tools/
|
|
162
|
+
├── skills/
|
|
163
|
+
├── packages/
|
|
164
|
+
├── knowledge/
|
|
165
|
+
└── connectors/
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Keep one-off work inside the agent. Move stable capabilities to `app/agents_library/` when another agent should reuse them, then reference via `imports.yml`. `rails-agents sync` includes imported Library files in the runtime bundle without duplicating shared source in Git.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Agent taxonomy
|
|
173
|
+
|
|
174
|
+
| Type | Main purpose | Example |
|
|
175
|
+
|------|--------------|---------|
|
|
176
|
+
| Knowledge | Understand and answer | Order support from Rails data |
|
|
177
|
+
| Workflow | Execute predictable processes | Refund approval |
|
|
178
|
+
| Operations | Coordinate unpredictable real-world work | Incident coordination |
|
|
179
|
+
| Monitoring | Observe changes and respond | Inventory watcher |
|
|
180
|
+
|
|
181
|
+
Generator: `--type knowledge|workflow|operations|monitoring` and `--database` for DB-connected Knowledge scaffolds.
|
|
182
|
+
|
|
183
|
+
**Integrate responses:** every run returns `output_text` (Markdown), optional `output_data`, and typed `items` — same shape for every LLM. Guide: [rails-agent.com/docs/run-response](https://rails-agent.com/docs/run-response).
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Configuration
|
|
188
|
+
|
|
189
|
+
```ruby
|
|
190
|
+
# config/initializers/rails_agents.rb
|
|
191
|
+
RailsAgents.configure do |config|
|
|
192
|
+
config.api_key = ENV["RAILS_AGENTS_API_KEY"] # platform key
|
|
193
|
+
config.project_id = ENV["RAILS_AGENTS_PROJECT_ID"]
|
|
194
|
+
end
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Provider keys live in the cloud dashboard → Model credentials (BYOK). Never commit them.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Pricing
|
|
202
|
+
|
|
203
|
+
| | |
|
|
204
|
+
|--|--|
|
|
205
|
+
| **Subscription** | Fixed **company** plan (production workspaces) |
|
|
206
|
+
| **Usage** | Provider + infrastructure at **pass-through cost** |
|
|
207
|
+
| **Service fee** | **1%** on metered usage (transparent line item) |
|
|
208
|
+
|
|
209
|
+
Details: [rails-agent.com/pricing](https://rails-agent.com/pricing)
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Development
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
bundle install
|
|
217
|
+
bundle exec rspec
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Local path testing: sibling app `rails-agents-boilerplate`.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## License
|
|
225
|
+
|
|
226
|
+
MIT — [MIT-LICENSE](MIT-LICENSE)
|
|
227
|
+
|
|
228
|
+
[rails-agent.com](https://rails-agent.com) · [AGENTS.md](docs/AGENTS.md) · [Getting started](https://rails-agent.com/docs/getting-started)
|
data/Rakefile
ADDED
|
Binary file
|
|
Binary file
|