All notable changes to the Colang language and runtime will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- #673 Add support for new Colang 2 keyword
deactivate
. - #703 Add bot configuration as variable
$system.config
. - #709 Add basic support for most OpenAI and LLame 3 models.
- #712 Add interaction loop priority levels for flows.
- #717 Add CLI chat debugging commands.
- #669 Merged (and removed) utils library file with core library.
- #672 Fixes a event group match bug (e.g.
match $flow_ref.Finished() or $flow_ref.Failed()
) - #699 Fix issues with ActionUpdated events and user utterance action extraction.
This second beta version of Colang brings a set of improvements and fixes.
Language and runtime:
- #504 Add colang 2.0 syntax error details by @rgstephens.
- #533 Expose global variables in prompting templates.
- #534 Add
continuation on unhandled user utterance
flow to the standard library (llm.co
). - #554 Support for NLD intents.
- #559 Support for the
@active
decorator which activates flows automatically.
Other:
- #591 Unit tests for runtime exception handling in flows.
- #576 Make
if
/while
/when
statements compatible with python syntax, i.e., allow:
at the end of line. - #596 Allow
not
,in
,is
in generated flow names. - #578 Improve bot action generation.
- #594 Add more information to Colang syntax errors.
- #599 Runtime processing loop also consumes generated events before completion.
- #540 LLM prompting improvements targeting
gpt-4o
.
- #525 Fix string expression double braces.
- #531 Fix Colang 2 flow activation.
- #577 Remove unnecessary print statements in runtime.
- #593 Fix
match
statement issue. - #579 Fix multiline string expressions issue.
- #604 Fix tracking user talking state issue.
- #598 Fix issue related to a race condition.
- Standard library of flows:
core.co
,llm.co
,guardrails.co
,avatars.co
,timing.co
,utils.co
.
-
Syntax changes:
- Meta comments have been replaced by the
@meta
and@loop
decorators:# meta: user intent
->@meta(user_intent=True)
(also user_action, bot_intent, bot_action)# meta: exclude from llm
->@meta(exclude_from_llm=True)
# meta: loop_id=<loop_id>
->@loop("<loop_id>")
orwhen
->or when
- NLD instructions
"""<NLD>"""
->..."<NLD>"
- Support for
import
statement - Regular expressions syntax change
r"<regex>"
->regex("<regex>")
- String expressions change:
"{{<expression>}}"
->"{<expression>}"
- Meta comments have been replaced by the
-
Chat CLI runtime flags
--verbose
logging format improvements -
Internal event parameter renaming:
flow_start_uid
->flow_instance_uid
-
Colang function name changes:
findall
->find_all
, -
Changes to flow names that were previously part of
ccl_*.co
files (which are now part of the standard library):catch colang errors
->notification of colang errors
(core.co)catch undefined flows
->notification of undefined flow start
(core.co)catch unexpected user utterance
->notification of unexpected user utterance
(core.co)poll llm request response
->polling llm request response
(llm.co)trigger user intent for unhandled user utterance
->generating user intent for unhandled user utterance
(llm.co)generate then continue interaction
->llm continue interaction
(llm.co)track bot talking state
->tracking bot talking state
(core.co)track user talking state
->tracking user talking state
(core.co)track unhandled user intent state
->tracking unhandled user intent state
(llm.co)track visual choice selection state
->track visual choice selection state
(avatars.co)track user utterance state
->tracking user talking state
(core.co)track bot utterance state
-> No replacement yet (copy to your bot script)interruption handling bot talking
->handling bot talking interruption
(avatars.co)generate then continue interaction
->llm continue interaction
(llm.co)
Colang 2.0 represents a complete overhaul of both the language and runtime. Key enhancements include:
- A more powerful flows engine supporting multiple parallel flows and advanced pattern matching over the stream of events.
- A standard library to simplify bot development.
- Smaller set of core abstractions: flows, events, and actions.
- Explicit entry point through the main flow and explicit activation of flows.
- Asynchronous actions execution.
- Adoption of terminology and syntax akin to Python to reduce the learning curve for new developers.