ask-agent 0.25.3 → 0.25.4
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 +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/ask/agent/definition.rb +12 -0
- data/lib/ask/agent/session.rb +12 -3
- data/lib/ask/agent/version.rb +1 -1
- data/lib/ask/agent.rb +1 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3703e22ceaf07962231c1cc08751e635d202a3dcb2bf7a0134ee3c1acbeeb975
|
|
4
|
+
data.tar.gz: d013b9b6a4d188dc71dd6c267388c1b36d83be5b43c0967d73b8cb10843d2123
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7bf19be96f3344b84b0c8ee7c2079e3eb1ad0a2655c26e5075652a863f66c1c47816d6b4418ba3f29b79b3722e8cf924bedac9aa9965da4099009b4993877b7b
|
|
7
|
+
data.tar.gz: f214e8356c0e55be0aba092d81c0a0ac79d57b79abf41ce1f2e59db45a73a8ac51fcd0566d6335931a4d68292cba894b3240d4dbda4175c9238ba6f7fc7d4639
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## [0.25.4] - 2026-08-05
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
- **`skills_disclosure` opt-out for progressive skill disclosure.** Sessions
|
|
6
|
+
auto-inject the `load_skill` tool by default; agents with a fixed tool
|
|
7
|
+
surface (e.g. voice receptionists) can declare `skills_disclosure false`
|
|
8
|
+
in their definition (or pass `skills_disclosure: false` to
|
|
9
|
+
`Session.new`) to keep the tool payload minimal and deterministic.
|
|
10
|
+
|
|
1
11
|
## [0.25.3] - 2026-08-04
|
|
2
12
|
|
|
3
13
|
### Fixed
|
data/lib/ask/agent/definition.rb
CHANGED
|
@@ -92,6 +92,18 @@ module Ask
|
|
|
92
92
|
end
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
+
# Set or get the progressive skill disclosure flag. When enabled
|
|
96
|
+
# (default), sessions include the load_skill tool so the model can
|
|
97
|
+
# pull in skills on demand. Voice/UI agents with a fixed tool
|
|
98
|
+
# surface can disable it to keep the payload minimal.
|
|
99
|
+
def skills_disclosure(value = :__no_value__)
|
|
100
|
+
if value == :__no_value__
|
|
101
|
+
_config.key?(:skills_disclosure) ? _config[:skills_disclosure] : true
|
|
102
|
+
else
|
|
103
|
+
_config[:skills_disclosure] = value
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
95
107
|
# Set an arbitrary Session option. Accepts any key that
|
|
96
108
|
# Ask::Agent::Session.new understands.
|
|
97
109
|
#
|
data/lib/ask/agent/session.rb
CHANGED
|
@@ -21,12 +21,14 @@ module Ask
|
|
|
21
21
|
compactor: nil, hooks: {}, state: nil, persistence: nil,
|
|
22
22
|
id: nil, system_prompt: nil, parallel_tools: true,
|
|
23
23
|
reflector: nil, telemetry: true, meta_agent: nil,
|
|
24
|
-
agent_dir: nil, evaluator: nil, audit_log: nil,
|
|
24
|
+
agent_dir: nil, evaluator: nil, audit_log: nil,
|
|
25
|
+
skills_disclosure: true, **chat_options)
|
|
25
26
|
@id = id || SecureRandom.uuid
|
|
26
27
|
@agent_dir = agent_dir
|
|
27
28
|
@max_turns = max_turns
|
|
28
29
|
@max_tool_retries = max_tool_retries
|
|
29
30
|
@parallel_tools = parallel_tools
|
|
31
|
+
@skills_disclosure = skills_disclosure
|
|
30
32
|
@event_handlers = { all: [] }
|
|
31
33
|
@running = false
|
|
32
34
|
@deleted = false
|
|
@@ -356,13 +358,20 @@ module Ask
|
|
|
356
358
|
tool.is_a?(Class) ? tool.new : tool
|
|
357
359
|
end
|
|
358
360
|
# Always include the load_skill tool for progressive skill disclosure,
|
|
359
|
-
# unless
|
|
360
|
-
|
|
361
|
+
# unless disabled by the agent (voice agents keep a minimal tool
|
|
362
|
+
# surface) or the test framework is loaded (test mode keeps tools
|
|
363
|
+
# deterministic)
|
|
364
|
+
if skills_disclosure_enabled?
|
|
361
365
|
resolved << Skills::LoadSkillTool.new(registry: @skills_registry) unless resolved.any? { |t| t.name == "load_skill" }
|
|
362
366
|
end
|
|
363
367
|
resolved
|
|
364
368
|
end
|
|
365
369
|
|
|
370
|
+
# Whether progressive skill disclosure is active for this session.
|
|
371
|
+
def skills_disclosure_enabled?
|
|
372
|
+
@skills_disclosure && !(defined?(Ask::Agent::Test) && Ask::Agent::Test)
|
|
373
|
+
end
|
|
374
|
+
|
|
366
375
|
def build_compactor(config)
|
|
367
376
|
global = Ask::Agent.configuration
|
|
368
377
|
compactor = Compactor.new(
|
data/lib/ask/agent/version.rb
CHANGED
data/lib/ask/agent.rb
CHANGED
|
@@ -170,6 +170,7 @@ module Ask
|
|
|
170
170
|
session_opts[:provider] = config[:provider] if config[:provider]
|
|
171
171
|
session_opts[:max_turns] = config[:max_turns] if config[:max_turns]
|
|
172
172
|
session_opts[:parallel_tools] = config[:parallel_tools] if config.key?(:parallel_tools)
|
|
173
|
+
session_opts[:skills_disclosure] = config[:skills_disclosure] if config.key?(:skills_disclosure)
|
|
173
174
|
|
|
174
175
|
# Pass arbitrary session options
|
|
175
176
|
if config[:options]
|